Mapbox:在底图上只显示一个国家?
Posted
技术标签:
【中文标题】Mapbox:在底图上只显示一个国家?【英文标题】:Mapbox: show only one country on base map? 【发布时间】:2017-07-23 19:54:57 【问题描述】:我正在使用 Mapbox GL JS。有什么办法可以让我的基础层看起来像 Mapbox Light 示例,但只显示英国?
我假设我会使用 Mapbox Studio 来构建我自己的基础层,但我在 Studio 中看不到任何按国家/地区过滤的方法。
如果这不可能,有什么方法可以只在英国显示标签,而将其他国家显示为填充多边形? (根据this unanswered question。)
【问题讨论】:
Filter out Country with Mapbox的可能重复 【参考方案1】:有一个选项可让您仅突出显示一个国家/地区。但缺点是,您会丢失所有图层和图块级别的细节。这是链接https://www.mapbox.com/videos/how-to/map-a-single-country-in-mapbox-studio/。
但是,如果您想包含瓷砖详细信息以及整个世界地图,但在该地图中仅突出显示一两个或自定义数量的国家,则从 Natural Earth 的上述链接下载 ne_10m_admin_0_countries 的压缩文件并上传。
回到你的地图样式,而不是制作一个空白的。在您的当前地图中添加另一层 ne_10m_admin_0_countries。在过滤器选项中选择国家(与视频中显示的方式相同)。并改变它的不透明度。就是这样。
希望对您有所帮助。祝你有美好的一天。
【讨论】:
【参考方案2】:this SO 答案中也提出了解决方法,如果您只能获得英国的地图(SO 答案提供了链接,但对于德国),您可以 将它们作为数据集上传到 Mapbox ,将其导出到图块集,然后 将地图作为图层。删除所有其他图层
您还可以在 Mapbox 中为单个国家/地区设置样式 工作室参考this 教程。其他国家/地区仍会显示,但您可以设置地图样式以突出显示英国
【讨论】:
【参考方案3】:很遗憾,在为图层选择数据源时,无法按特定地理位置进行过滤。如果您使用 Mapbox 的图块,它们将始终覆盖整个星球。
可以使用map.setMaxBounds
方法(https://www.mapbox.com/mapbox-gl-js/api/#Map#setMaxBounds) 将地图限制在某个(矩形)范围内。由于您希望将视图限制在英国,因此这可能工作得相当好,但根据您希望将视图限制到的几何形状,这可能不合适。
作为一种解决方法,您可以创建一个数据集并添加一个多边形,该多边形覆盖整个星球,除了您希望在地图中显示的范围。然后以您的样式添加此数据集作为最顶层的图层,并使用您希望地图中空白区域的样式对其进行样式设置。
【讨论】:
你知道在哪里可以找到一个覆盖整个星球的多边形吗? 我的意思是,你知道覆盖整个星球的多边形的坐标是多少吗? [[180, 90], [-180, 90], [-180, -90], [-180, 90]] 应该覆盖地球。以上是关于Mapbox:在底图上只显示一个国家?的主要内容,如果未能解决你的问题,请参考以下文章
ArcGIS Pro 2.8.0:将 XY 数据转换为 shapefile