我试图在地图框中获取圆圈。但不确定如何在地图框中获取圆的geojson。 我以为我可以使用以下示例btw问题是geojson。
var bounds = turf.bbox(markers);
请帮助我!
答案 0 :(得分:1)
我使用 geojson 制作了绘制圆圈的功能。
TypeError: person.getName is not a function
上述功能的重点是点变量。
功能的用法。
var createGeoJSONCircle = function(center, radiusInKm, points) {
if(!points) points = 64;
var coords = {
latitude: center[1],
longitude: center[0]
};
var km = radiusInKm;
var ret = [];
var distanceX = km/(111.320*Math.cos(coords.latitude*Math.PI/180));
var distanceY = km/110.574;
var theta, x, y;
for(var i=0; i<points; i++) {
theta = (i/points)*(2*Math.PI);
x = distanceX*Math.cos(theta);
y = distanceY*Math.sin(theta);
ret.push([coords.longitude+x, coords.latitude+y]);
}
ret.push(ret[0]);
return {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [ret]
}
}]
}
};
};
并且可以使用众所周知的知识。
var c = createGeoJSONCircle([-93.6248586, 41.58527859], 50);
map.addSource("polygon", createGeoJSONCircle([-93.6248586, 41.58527859], 50));
var cc = map.addLayer({
"id": "polygon",
"type": "fill",
"source": "polygon",
"layout": {},
"paint": {
"fill-color": "blue",
"fill-opacity": 0.6
}
});
也许它运作良好。
答案 1 :(得分:0)
GeoJSON不支持Circles。您可以查看规范,但不支持Circles,因此Mapbox也不支持它们。