gis - 如何从 mapbox 矢量平铺源中了解图层类型
问题描述
给定一个 Mapbox 瓦片源和一个图层名称,我怎么知道这个图层的类型是(点、线、多边形)?
在将图层添加到地图之前,我想提前知道要素类型(使用map.addLayer
)
if (layer-type 'point'){
// for point only
map.addLayer({
type: circle
}
} else {
// for both lineString and polygon
map.addLayer({
type: line
}
}
解决方案
我想办法解决这个问题。
参考 https://docs.mapbox.com/mapbox-gl-js/example/multiple-geometries/
从一个 GeoJSON 源添加多个几何图形,
关键是:
您为点、线、多边形添加所有 3 层,每层具有 3 个不同的 layer-id,您仅对该类型使用过滤器
map.addLayer(
"type": fill
"filter": ["==", "$type", "Polygon"]
)
map.addLayer(
"type": line
"filter": ["==", "$type", "LingString"]
)
map.addLayer(
"type": Circle, // or symbol
"filter": ["==", "$type", "Point"]
)
我有一个完整的代码: https ://github.com/hoogw/arcgis_viewer/blob/master/public/javascripts/pbf/mapbox_common_share.js
推荐阅读
- cuda - 为 GPU 编译 Darknet 时出现分段错误
- swift - 如何使滑块值保留一位小数?
- c# - 当 PInvoke C/C++ DLL 调用退出 (-1) 时 C# 主机应用程序关闭;
- jquery - 检查是否选择了选项
- java - Spark 无法将 JSON Integer 映射到 Java Integer
- r - 从 stpm2-object 中提取基线危害
- vuetify.js - 如何在 vuetify 表单中添加调用 API 的自定义验证?
- django - 如何在 django 模型中使用用户名作为字符串?
- java - HK2:从子定位器访问 RunLevel 范围内的服务
- angular - 使用 Angular 自定义验证器确认密码