map-ir/mapir-react-native-sdk

how to measure distance between two point on map and get map scale ?

mojtabadarzi opened this issue · 1 comments

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