我正在使用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 。因此,它永远不会是更接近圆形的形状。
有什么问题,还是应该有意这样做?
答案 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