我正在使用 npm 包圆到多边形,我编写了以下代码来返回一个大致类似于圆的多边形。
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的比例。所以它永远不会是一个更接近圆形的形状。
有任何问题,还是应该故意这样做?
@Vikas Kumar,这似乎是一个棘手的问题。我怀疑圆到多边形对坐标进行排序的方式和谷歌地图 API 的方式是相反的,至少基于文档。你可以尝试一件事。将 lon、lat(例如 (77,28((馈送到圆形到多边形 api,然后在获得输出时,反转它们(例如,(28,77((并馈送到谷歌地图 api。
npm 中包的描述是这样说的:
GeoJSON 规范不支持圆圈。如果您希望创建一个 表示圆的区域,最好的办法是创建一个多边形 这大致接近圆。在数量限制内 边变得无限,您的多边形将匹配一个圆。
@Vikas库马尔,我只是在看它。我注意到圆到多边形 API 的使用存在错误。我认为这就是您面临的问题的原因。请反转调用本身中的坐标。
而不是
let coordinates = [28.612484207825005, 77.23574939044147]; //lat, lng
尝试
let coordinates = [77.23574939044147, 28.612484207825005]; //lng, lat