只需显示两点之间的距离(KM)
Simply display distance in KM between two points
我找不到一个简单的答案,所以到此为止。
我正在从wordpress的帖子中获取纬度和经度坐标。我把它们放在一个数组中,以这样初始化我的标记(忽略超时和其他事情,我只想让标记按1下降。):
function initMarkers(){
for (i = 0; i < locations.length; i++) {
setTimeout(function(y){
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[y][2], locations[y][1]),
map: map,
animation: google.maps.Animation.DROP,
icon: iconMarker
})
gmarkers.push(marker);//Adds the marker object to array
//console.log(gmarkers[i].getPosition());
},500 * i, i);// end setTimeout
}// end for
}
这毫无问题。请注意,我将标记对象添加到"gmarkers"中,以便最终能够使用其参数。
此时,地图出现,标记下降,并且没有错误。
我还将用户的地理位置存储在"userPos"中。
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
/*var userPos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);*/
userPos = google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
现在我的问题来了。如何获取从用户位置到每个标记的距离?
我尝试过各种各样的东西,比如同步的"computeDistanceBetween",但它给我的未定义变量带来了错误,显然可能存在同步问题等等。。。(这将解释未定义的变量)。
有简单的解决方案吗?
计算两点之间大圆距离的一种方法是使用haversine公式。
您可以通过以下操作获得距离(脚本中的d变量):
Number.prototype.toRad = function() {
return this * Math.PI / 180;
}
var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();
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;
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- d3中堆栈函数和嵌套函数之间的差异
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 操作放置在画布上的元素之间的连接
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- jquery在表单之间切换
- Nodejs API控制器,用于在API之间切换
- 如何在aspx页面之间传递参数
- 在索引.html和应用.js [node.js] 之间共享变量
- 什么是&&在没有if的行中的变量之间
- DOM元素和angular元素之间的主要区别是什么
- 只需显示两点之间的距离(KM)