how to measure distance between two point on map and get map scale ?
mojtabadarzi opened this issue · 1 comments
mojtabadarzi commented
how to measure distance between two point on map and get map scale ?
hamid commented
I've used the following function to measure the distance in Kilometer
distance(lat1, lon1, lat2, lon2, unit = "K") {
if ((lat1 == lat2) && (lon1 == lon2)) {
return 0;
}
else {
var radlat1 = Math.PI * lat1 / 180;
var radlat2 = Math.PI * lat2 / 180;
var theta = lon1 - lon2;
var radtheta = Math.PI * theta / 180;
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
if (dist > 1) {
dist = 1;
}
dist = Math.acos(dist);
dist = dist * 180 / Math.PI;
dist = dist * 60 * 1.1515;
if (unit == "K") { dist = dist * 1.609344 }
if (unit == "N") { dist = dist * 0.8684 }
return dist;
}
}
but if you want to calculate the only distance (ex for sorting) you could use :
Math.hypot(lat2-lat1, lng2-lng1)
(see )
Map scale? ...
I don't know ... and I will be happy to know it and relation of scale(Kilometer) and map zoom