Javascript Mapbox图层具有重复ID
我正在用Mapbox GL JS构建一个web应用程序,它使用Mapbox studio tilesets将层添加为Choropleth。但是,当我访问该层时,多个功能似乎接收到相同的ID 这里提到这是由于我的数据,但数据集中没有ID字段: 以下是项目示例: 每当城镇悬停时,它都会改变颜色,但是由于有多个城镇具有相同的ID,因此多个区域会亮起,而不仅仅是悬停的区域 编辑: 当我运行以下代码时:Javascript Mapbox图层具有重复ID,javascript,mapbox,mapbox-gl-js,Javascript,Mapbox,Mapbox Gl Js,我正在用Mapbox GL JS构建一个web应用程序,它使用Mapbox studio tilesets将层添加为Choropleth。但是,当我访问该层时,多个功能似乎接收到相同的ID 这里提到这是由于我的数据,但数据集中没有ID字段: 以下是项目示例: 每当城镇悬停时,它都会改变颜色,但是由于有多个城镇具有相同的ID,因此多个区域会亮起,而不仅仅是悬停的区域 编辑: 当我运行以下代码时: const filtered = map.querySourceFeatures('gemee
const filtered = map.querySourceFeatures('gemeentes-src', {
sourceLayer: 'townships-0u4ffk',
filter: ['>=', ['id'], 0]
});
它清楚地表明,有多个功能具有相同的id,没有id超过249。几乎就好像有一个250上限,新功能又从0开始。添加源代码时,您可以使用选项
promoteId
根据属性为功能分配唯一ID
例如():
我不知道为什么,但JSBin只是为我呈现了一个白色页面。我可以看到它正在获取Mapbox资源,但没有显示任何内容。谢谢!应该说
“promoteId”:{“original”:“country”}
“original”这里是一个“源层”
const filtered = map.querySourceFeatures('gemeentes-src', {
sourceLayer: 'townships-0u4ffk',
filter: ['>=', ['id'], 0]
});
map.addSource('counties', {
"type": "vector",
"url": "mapbox://mapbox.82pkq93d",
"promoteId": {"original": "COUNTY"}
});
...
map.setFeatureState({
source: 'counties',
sourceLayer: 'original',
id: 'Marin County' // reference a feature by a county name for feature-state
}, {hover: true});