Уравнение минимального интервала маркера карты - PullRequest
0 голосов
/ 23 марта 2012

Я хотел бы иметь уравнение для расчета, на каждый уровень масштабирования на канонической плоской проекции карты, какое минимальное расстояние (в метрах), на которое маркер карты может быть размещен без наложения, учитывая размеры маркера,Увы, я не математик.Любой желающий?

Например: Уровень масштабирования 5 (довольно далеко, около уровня континента), яркость маркера: 30x30 = 80000 метров

1 Ответ

1 голос
/ 23 марта 2012

Используйте формулу haversine для расчета расстояния между двумя точками на карте.Затем просто примените минимальное расстояние в зависимости от масштаба / размера ваших булавок на карте.

function haversine(lat1, lon1, lat2, lon2) {
    var R = 6371000; // m
    var dLat = (lat2-lat1)* Math.PI / 180;
    var dLon = (lon2-lon1)* Math.PI / 180;
    var lat1 = lat1* Math.PI / 180;
    var lat2 = lat2* Math.PI / 180;

    var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    var d = R * c;
    return d;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...