如何解决我可以使用 Mapbox 突出显示特定河流吗?
是否可以在 Mapbox 中突出显示河流?
我想看看世界,看到一个特定河流的列表,就像在纸质地图上用黄色标记突出显示一样。当我放大时,亮点会变得更加精确,并最终与河流的实际几何形状一致,或者至少沿着一条与河岸等距的线......
这可能吗?
我知道我可以在特定的地理坐标上绘制任何我想要的东西,但我不知道如何从 Mapbox 中提取河流几何图形来计算我的荧光笔笔划的路径......
或者,对于其他提供商来说,这种事情可能会更容易些?人们通常如何处理这种事情?
解决方法
据我所知,没有办法通过名称等属性突出显示 Mapbox 与水相关的图层中的特定河流。但是,如果您希望根据大小/突出度过滤要素,则可以使用 Mapbox 水道图层上的“类”或“类型”属性来过滤要素。这至少可以让您根据类型(即河流、溪流、运河等)过滤/设置特征样式。
另一种方法是将 Mapbox 平台之外的空间数据整合在一起,然后将其作为您自己的 tilset 或数据集引入 Mapbox。当我想突出显示特定河流(即只显示里奥格兰德河、阿肯色州和科罗拉多河)时,我在使用 National Hydrography Dataset 之前已经这样做了(这仅适用于美国)。我将 NHD 带入我的桌面 GIS 应用程序 (QGIS),将特征过滤到那些河流,将过滤后的特征导出为 GeoJSON,然后上传到 Mapbox 并在 Mapbox Studio 中完成所有所需的样式。
希望这有帮助!我一直在为您可能感兴趣的 Mapbox 编写一系列指南。以下是一些链接:
,您可以尝试以下方法:
-
在 Mapbox Streets 矢量瓦片集中使用 the
waterway
line layer 并设置过滤器以仅显示river
要素类型。这将在低缩放级别显示所有河流,但由于这是一个线图层,它不会在高(接近地面)缩放级别显示河流的宽度。在更高的缩放级别将图层设置为 0 不透明度,使其消失。 -
在更高的缩放级别,您可以在 Mapbox Streets 矢量瓦片集中使用 the
water
polygon layer,但它包括海洋、河流、湖泊、池塘、水库和喷泉,所有这些都被粉碎成一个简单的未分化的多边形层,合并形状:
无法过滤或突出显示特定水体或其部分子集。
如果您想隔离一个特定的水道(例如只有 Rio Grande),您需要自己导入该数据 as @tylerben suggests。
- 如果您喜欢冒险,可以尝试使用
mask
in Turf.js 隐藏water
图层中距离waterway
河流中心线超过 10 英里的要素层。
您可以在 the core tilesets documentation 中了解有关 Mapbox 地图数据的更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。