Mapbox:在底图上只显示一个国家?

Mapbox: show only one country on base map?

我正在使用 Mapbox GL JS。有什么办法可以让我的基础层看起来像 Mapbox Light 示例,但只显示英国吗?

我假设我会使用 Mapbox Studio 构建我自己的基础层,但我在 Studio 中看不到任何按国家/地区过滤的方法。

如果那不可能,有什么方法可以只在英国显示标签,而将其他国家/地区显示为填充多边形? (根据 this unanswered question。)

遗憾的是,在为图层选择数据源时无法按特定地理位置进行过滤。如果您使用 Mapbox 的图块,它们将始终覆盖整个星球。

可以使用 map.setMaxBounds 方法 (https://www.mapbox.com/mapbox-gl-js/api/#Map#setMaxBounds) 将地图限制在某个(矩形)范围内。这可能工作得相当好,因为你想将视图限制在英国,但可能不合适,具体取决于你想将视图限制到的几何形状。

作为解决方法,您可以创建一个数据集并添加一个覆盖整个星球的多边形,但您希望在地图中显示的范围除外。然后将此数据集添加到您的样式中作为最顶层,并使用您希望地图中的空 space 看起来像什么来设置样式。

  • this SO 答案中也提出了解决方法,如果您只能获得英国的地图(SO 答案给出了 link,但对于德国)你可以 将它们作为数据集上传到 Mapbox ,将其导出到 tilesets,然后 到地图作为图层。删除所有其他图层

  • 您还可以在 Mapbox 中设置单个国家/地区的样式 工作室参考 this 教程。其他国家/地区仍会显示,但您可以设置地图样式以突出显示英国

有一个选项可让您仅突出显示一个国家/地区。但缺点是,您会丢失所有图层和瓷砖级别的细节。这里是linkhttps://www.mapbox.com/videos/how-to/map-a-single-country-in-mapbox-studio/.

但是,如果您想包括瓷砖详细信息以及整个世界地图,但在该地图中只有一个或两个或自定义数量的国家突出显示,那么,从上面的 link Natural Earth 下载压缩包ne_10m_admin_0_countries 的文件并上传。

返回您的地图样式,而不是制作空白地图样式。在您的当前地图中再添加一层ne_10m_admin_0_countries。 Select 过滤器选项中的国家(与视频中显示的方式相同)。并改变它的不透明度。就是这样。

希望对您有所帮助。祝你有美好的一天。