获取所选 tileset 瓦片的坐标(通过表达式)

Get coordinate of selected tileset tile (by expression)

我能够使用表达式查找和更改矢量切片集的属性,例如:

map.setPaintProperty('my-shp', 'fill-opacity', [
    'match',
    ['get', 'NO'],
    13708, 1,
    /* else */ 0
]);

我想知道是否有办法使用表达式获取 tileset 项目的精确坐标?

抱歉,如果我的术语有误(tileset/tile 项),请随时纠正我。谢谢


澄清一下,使用上面的表达式,我可以更改 NO13708 的 tileset 项目的不透明度。我的问题是,有没有办法获取 NO 为 13708 的 tileset 项目的 lat/long 坐标?

您可以遍历所有呈现的功能并测试 "NO" 属性 然后 return 此功能的坐标。要获得所有渲染功能,您需要使用 queryRenderedFeatures。特征遵循 GeoJSON 结构。

例如:

let features = map.queryRenderedFeatures({ layers: ['my-shp'] });
let filtered = features.filter(feature => {
    return feature.properties.NO === 13708;
});

console.log(filtered);