给定一个点,比如[-75.343,39.984],我如何找到半径5公里内的所有特征/标记?我正在使用turf.js,所以我将使用他们的circle()
函数来生成关于点的圆。
这个可行吗?
const center = [-75.343, 39.984];
const radius = 5;
const options = {steps: 10, units: 'kilometers', properties: {foo: 'bar'}};
const circle = turf.circle(center, radius, options);
}
const features = map.queryRenderedFeatures(
circle,
{ filter: {["within", circle] : true} }
);
我希望找到圆圈内的所有特征,并能够将它们存储在数组或数据库中,以便进一步处理,如访问特征的lat/lng等。
谢谢你的帮助!
使用queryRenderedFeatures
,您将能够获得实际上在视口中(可见)的功能。如果你的源数据是GeoJSON,你可以使用querySourceFeatures
,所以它会看你所有的源特性:
const filteredFeatures = map.querySourceFeatures('routes', {
filter: ['within', circle]
});