为什么节点“从圆到多边形”模块返回椭圆/椭圆而不是像圆的形状?

时间:2018-09-27 12:31:57

标签: javascript node.js google-maps npm geojson

我正在使用npm软件包circle-to-polygon,并编写了以下代码以返回近似像圆形的多边形。

const circleToPolygon = require('circle-to-polygon');

let coordinates = [28.612484207825005, 77.23574939044147]; //lat, lng

let radius = 311;      
let numberOfEdges = 32;    
let polygon = circleToPolygon(coordinates, radius, numberOfEdges);

let coords = polygon.coordinates;

当我使用座标并使用Google Maps JS API创建多边形时,它显示出类似椭圆的形状(两个末端相距很远,两个末端相距很近,希望您能理解)。

实际上,可以说的距离差异大约为 4:1 。因此,它永远不会是更接近圆形的形状。

有什么问题,还是应该有意这样做?

3 个答案:

答案 0 :(得分:0)

npm中的软件包描述如下:

  

GeoJSON规范不支持圆。如果您想创建一个   代表圆圈的区域,最好的选择是创建一个多边形   大致近似于圆。在数量限制   边变得无限大,您的多边形将匹配一个圆。

答案 1 :(得分:0)

@Vikas Kumar,这似乎是一个棘手的问题。我怀疑圆形到多边形排序坐标的方式与Google Maps API的相反,至少基于文档。您可以尝试一件事。将lon,lat(例如(77,28))馈入圆到多边形api,然后在获得输出时,将它们反转(例如(28,77))并馈给google maps api。

答案 2 :(得分:0)

@Vikas Kumar,我只是再次看着它。我注意到在使用圆到多边形API时出错。我认为这是您面临问题的原因。请调出通话本身的坐标。

代替

let coordinates = [28.612484207825005, 77.23574939044147]; //lat, lng

尝试

let coordinates = [77.23574939044147, 28.612484207825005]; //lng, lat