我想测量两个地方之间的道路距离,条件是地点的纬度和经度。
我的基于JavaScript / Java的自定义应用程序将由离线用户使用。
我认为在这种情况下无法使用Google地图API。我需要免费服务。 arcgis提供这个设施??
任何帮助或指南都将受到赞赏..
答案 0 :(得分:1)
我认为这对你有用,假设你有两点的经纬度:
var rad = function(x) {
return x * Math.PI / 180;
};
var getDistance = function(p1, p2) {
var R = 6371; // Earth’s mean radius in meter
var dLat = rad(p2.lat() - p1.lat());
var dLong = rad(p2.lng() - p1.lng());
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) *
Math.sin(dLong / 2) * Math.sin(dLong / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return parseInt(d); // returns the distance in km
};