Повернуть маркер вдоль линии внутри многоугольника - карты - PullRequest
0 голосов
/ 19 декабря 2018

Я работаю с полигонами (может быть нерегулярно) на картах.Мне нужно показать метку в центре многоугольника.Я использую маркер для этикетки, и я выяснил центр.

Проблема в том, что мне нужно повернуть метку так, чтобы метка была как можно больше внутри многоугольника.Мне нужно выровнять его по линии, поэтому я подумал, чтобы найти наклон линии и повернуть метку вдоль загар, обратный наклону.Ниже приведен фрагмент кода, который я пробовал.

//(startLat, startLon) and (endLat, endLon)
var dy= (endLon - startLon);
var dx= (endLat - startLat); 
var angle = Math.Atan(dy/ dx);

Это наклон формулы строки.

Но это не приводит к получению правильного результата.Угол кажется неправильным.Когда я поворачиваю метку вдоль этого угла, кажется, что это слишком много поворота.Я не понимаю, где я иду не так.Это неправильно, потому что я пытаюсь найти наклон линии, но на самом деле это дуга?Но я думаю, что поскольку это небольшая дуга на большой сфере, ее можно рассматривать как линию.

Кто-нибудь может указать, где я иду не так и как мне этого добиться?

Текущее положение метки

enter image description here

Обязательное положение метки

enter image description here

...