Я работаю с полигонами (может быть нерегулярно) на картах.Мне нужно показать метку в центре многоугольника.Я использую маркер для этикетки, и я выяснил центр.
Проблема в том, что мне нужно повернуть метку так, чтобы метка была как можно больше внутри многоугольника.Мне нужно выровнять его по линии, поэтому я подумал, чтобы найти наклон линии и повернуть метку вдоль загар, обратный наклону.Ниже приведен фрагмент кода, который я пробовал.
//(startLat, startLon) and (endLat, endLon)
var dy= (endLon - startLon);
var dx= (endLat - startLat);
var angle = Math.Atan(dy/ dx);
Это наклон формулы строки.
Но это не приводит к получению правильного результата.Угол кажется неправильным.Когда я поворачиваю метку вдоль этого угла, кажется, что это слишком много поворота.Я не понимаю, где я иду не так.Это неправильно, потому что я пытаюсь найти наклон линии, но на самом деле это дуга?Но я думаю, что поскольку это небольшая дуга на большой сфере, ее можно рассматривать как линию.
Кто-нибудь может указать, где я иду не так и как мне этого добиться?
Текущее положение метки
Обязательное положение метки