mapkit-android-demo icon indicating copy to clipboard operation
mapkit-android-demo copied to clipboard

Неправильная отрисовка многоугольника

Open vkatzyn opened this issue 1 year ago • 6 comments

Версия: 4.3.1-full

Если две последовательные входящие в Polygon точки имеют значения долготы с разным знаком, то линия между ними может быть проведена не по кратчайшему пути, а по наибольшему – через всю карту. Например, точки [65.0000, -179.9999] и [65.0000, 179.9999]. Они находятся очень близко друг к другу, но линия между ними будет проведена через всю карту. На скриншотах примеры подобного поведения. telegram-cloud-photo-size-2-5415835009161479828-y telegram-cloud-photo-size-2-5415835009161479829-y

vkatzyn avatar May 17 '23 13:05 vkatzyn

Пожалуйста, пришлите нам минимальный собранный пример, демонстрирующий описанную ситуацию. Вы можете выложить его проектом на GitHub, прикрепить к переписке в архиве или загрузить на Яндекс Диск и указать ссылку.

Мы постараемся помочь.

YandexMapKit avatar May 18 '23 07:05 YandexMapKit

mapkitpolygonbugexample.zip Перед запуском нужно указать API ключ в классе TheApplication. Ожидаемое поведение – отрисовка на карте зелёного квадрата с вершинами в точках: (65.0, 179.0); (66.0, 179.0); (66.0, -179.0); (65.0, -179.0). Полученное поведение:

vkatzyn avatar May 18 '23 10:05 vkatzyn

Если нужна именно сборка – предоставьте API ключ для MapKit

vkatzyn avatar May 18 '23 10:05 vkatzyn

Спасибо за детальное описание.

Постараемся исправить ситуацию в ближайших обновлениях API, однако, обозначить какие-либо сроки мы пока не можем. Подождите, пожалуйста!

YandexMapKit avatar May 28 '23 08:05 YandexMapKit

Ожидаемое поведение – отрисовка на карте зелёного квадрата с вершинами в точках: (65.0, 179.0); (66.0, 179.0); (66.0, -179.0); (65.0, -179.0).

Точки с широтой 179 и -179 довольно далеко друг от друга находятся на числовой прямой, поэтому они лежат на противоположных краях мира. Если хочется перейти через 180 долготу кратчайшим путём, так стоит это сделать явным образом, а именно указать координаты прямоугольника "(65.0, 179.0); (66.0, 179.0); (66.0, 181.0); (65.0, 181.0)".

uncerso avatar Jul 19 '23 11:07 uncerso

Если хочется перейти через 180 долготу кратчайшим путём, так стоит это сделать явным образом, а именно указать координаты прямоугольника "(65.0, 179.0); (66.0, 179.0); (66.0, 181.0); (65.0, 181.0)".

Спасибо, это работает. Но надеюсь, что всё же будет исправление, которое позволит получить желаемый результат со значениями в пределах (-180; 180).

vkatzyn avatar Jul 19 '23 13:07 vkatzyn