mapbox - 从矢量切片源对几何图形进行操作
问题描述
在 MapBox 地图中加载矢量切片源时,我想在显示某些几何图形之前对其进行操作。但是,我不确定这是否可能,如果可以,更不用说如何完成了。
例如,我想创建一个获取 OpenStreetMap 瓦片数据的 MapBox 源。但在此数据显示为图层之前,我需要过滤掉所有没有标签"landuse='industrial'" 的土地利用特征。之后,剩余的几何图形应该增长(可能通过 TurfJS?)用户指定的距离。
我希望在纯客户端应用程序中解决这个问题,因为我已经尝试过使用附带的后端服务器并发现它不合适。因此,如果有人能指出我正确的方向,将不胜感激!
解决方案
这是可能的,但相当复杂。一种有效的方法:
- 将矢量切片源添加到样式。
- 为您修改的数据添加一个 GeoJSON 源,并添加一个图层来显示它。
- 向事件或类似事件添加处理程序
sourcedata
,以便在用户平移新数据到达时触发。 - 在触发器中,调用
querySourceData
以查找与您的查询匹配的所有几何图形。 - 然后使用 Turf(或
buffer()
或lineOffset
)扩展每个多边形的大小。 - 使用 .将生成的多边形添加到额外的图层中
setData()
。
性能会很差,但是通过一些缓存和选择性的数据再生,你可能会得到一些有用的东西。
推荐阅读
- ruby - Encoding::UndefinedConversionError using Omniauth in Gitlab 13.5.3 with Laravel Passport - macOS 上的本地开发与 Docker
- python - 如何在python中使用Beautiful Soup 4从属性data-content =“”的按钮中提取数据或数字,如下所示
- node.js - 加载 NodeJS 文件后服务器返回错误 503
- pandas - pandas 读取带有特定分隔符的 .txt 文档
- python - 如何用 Django 解决“无反向匹配”
- php - Slim 框架中的未定义索引
- google-apps-script - 为什么我的 GOOGLEFINANCE 公式的结果总是一样的?
- javascript - Firebase JavaScript 如何将数据库中的所有字段显示到 HTML 文件中
- excel - 3 种颜色代码 - 使用 pandas 条件格式化 Excel 单元格
- excel - 如何使用 VBA 确定将数据从一个工作表粘贴到另一个工作表的位置?