我希望有一个方程来计算地球规范平面地图投影的每个缩放级别,给定标记的尺寸,地图标记可以放置而不重叠的最小间距(以米为单位) 。唉,我不是数学家。任何人?
例如: 缩放等级5(相当远,约为大陆等级),标记变暗:30x30 = 80000米
答案 0 :(得分:1)
使用半正公式计算地图上两点之间的距离。然后根据您的缩放/地图上的图钉大小来应用最小距离。
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;
}