Почему модуль node Circle to Polygon возвращает овал / эллипс вместо формы, такой как круг?

Я использую пакет 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, она показала форму овала (2 конца были очень далеко друг от друга, два очень близко, надеюсь вы понимаете).

Фактически, разница в расстояниях, можно сказать, составляет примерно отношение 4: 1. Так что это никогда не форма ближе к кругу.

Есть ли какие-то проблемы, или это должно быть сделано намеренно?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
144
3

Ответы 3

В описании пакета в npm сказано так:

The GeoJSON spec does not support circles. If you wish to create an area that represents a circle, your best bet is to create a polygon that roughly approximates the circle. In the limit of the number of edges becoming infinite, your Polygon will match a circle.

Я читал это. Это не значит, что он будет иметь форму эллипса или овала. Это даст вам многоугольник, похожий на круг. Даже если вы используете бесконечные края, это только повысит гладкость, а не общую форму.

Vikas 27.09.2018 14:42

Эта ссылка может предоставить объяснение: forbes.com/sites/startswithabang/2016/02/27/…

PaW 27.09.2018 14:47

@Vikas Kumar, это, кажется, непростой вопрос. Я подозреваю, что способ упорядочивания координат из круга в многоугольник и API карт Google противоположны, по крайней мере, на основе документации. Вы можете попробовать одно. Подайте lon, lat (например, (77,28)) в api из круга в многоугольник, а затем, когда вы получите результат, измените их (например, (28,77)) и подайте в api карт Google.

@ Викас Кумар, я просто смотрел на это снова. Я заметил ошибку в использовании API-интерфейса для преобразования круга в многоугольник. Я думаю, что это причина проблемы, с которой вы столкнулись. Пожалуйста, поменяйте координаты в самом звонке.

вместо того

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

пытаться

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

Другие вопросы по теме