Mapbox 获取选定瓷砖的坐标设置瓷砖(通过表达式)

Mapbox 获取选定瓷砖的坐标设置瓷砖(通过表达式),mapbox,tile,mapbox-gl-js,Mapbox,Tile,Mapbox Gl Js,我可以使用表达式查找并更改向量瓷砖集的属性,例如: map.setPaintProperty('my-shp', 'fill-opacity', [ 'match', ['get', 'NO'], 13708, 1, /* else */ 0 ]); let features = map.queryRenderedFeatures({ layers: ['my-shp'] }); let filtered = features.filter(feature =&

我可以使用表达式查找并更改向量瓷砖集的属性,例如:

map.setPaintProperty('my-shp', 'fill-opacity', [
    'match',
    ['get', 'NO'],
    13708, 1,
    /* else */ 0
]);
let features = map.queryRenderedFeatures({ layers: ['my-shp'] });
let filtered = features.filter(feature => {
    return feature.properties.NO === 13708;
});

console.log(filtered);
我想知道是否有一种方法可以使用表达式获得tileset项的精确坐标

抱歉,如果我对术语(瓷砖集/瓷砖项目)有错误,请随时更正。谢谢



为了澄清,使用上述表达式,我可以更改tileset项的不透明度,其中
NO
13708
。我的问题是,有没有一种方法可以获得tileset项目的横向/纵向坐标,其中编号为
13708

您可以迭代所有渲染的特征并测试“NO”属性,然后返回该特征的坐标。若要获取需要使用的所有渲染特征,请执行以下操作。特性遵循GeoJSON结构

例如:

map.setPaintProperty('my-shp', 'fill-opacity', [
    'match',
    ['get', 'NO'],
    13708, 1,
    /* else */ 0
]);
let features = map.queryRenderedFeatures({ layers: ['my-shp'] });
let filtered = features.filter(feature => {
    return feature.properties.NO === 13708;
});

console.log(filtered);

您可能是指“功能”而不是“tileset项”。“精确坐标”是指lat/lon还是屏幕上的像素位置?可能是-我的意思是我添加了一个平铺集,使用表达式我可以显示它随表达式改变的不透明度。我需要lat/lon坐标,以便我可以使用flytohm,我认为更新您的问题,以真正阐明您试图解决的实际问题会很有帮助。您特别要求的(表达式中的坐标)可能不是您实际需要的。@SteveBennett我已对该问题进行了编辑。希望现在更清楚了,如果你能告诉我,我将不胜感激。你到底想用这个特性的纵横比做什么?