簡體   English   中英

如何在mapbox中獲取圓的wkt

[英]How to get the wkt of circle in mapbox

我試圖在地圖框中獲取圓圈的 wkt。 但不確定如何在地圖框中獲取圓的 geojson。 我想我可以使用以下示例順便說一句,問題是 geojson。

var bounds = turf.bbox(markers);

請幫我!

我使用geojson制作了繪制圓圈的功能。

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
    }
});

並且可以使用wellknown獲得wkt。

wellknown.stringify(c.data.features[0].geometry)

也許它運作良好。

GeoJSON 不支持圓圈。 您可以查看規范,但不支持 Circles,因此 Mapbox 也不支持它們。

來源: http : //geojson.org/geojson-spec.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM