Javascript 使用google map api计算两个位置之间的距离

Javascript 使用google map api计算两个位置之间的距离,javascript,google-maps,Javascript,Google Maps,我需要计算并打印从当前位置到给定目的地的距离。据我所知,我可以通过谷歌地图api实现这一点 所以,我将只通过目的地的位置和api将地图以及距离 因为我已经在google上配置并获得了下面的链接,我无法理解如何使用它,但在下面的url中,我正在传递源和目标,但我不想传递源,它应该以当前位置作为源 可以在网页上打印距离吗 以下是一个如何做到这一点的示例: 代码: 小提琴示例(更新): 如果要在页面上打印,我建议使用标准输出方法: document.getElementById("demo").inn

我需要计算并打印从当前位置到给定目的地的距离。据我所知,我可以通过谷歌地图api实现这一点

所以,我将只通过目的地的位置和api将地图以及距离

因为我已经在google上配置并获得了下面的链接,我无法理解如何使用它,但在下面的url中,我正在传递源和目标,但我不想传递源,它应该以当前位置作为源

可以在网页上打印距离吗


以下是一个如何做到这一点的示例:

代码:

小提琴示例(更新)

如果要在页面上打印,我建议使用标准输出方法:

document.getElementById("demo").innerHTML = distanceTwoPoints(p1,p2)+" Km";
以下是文档中关于它的说明:

两点之间的距离是最短路径的长度 在他们之间。这种最短路径称为测地线。球面上的所有 测地线是大圆的线段。要计算这个距离, 调用ComputeDistanceBeween(),将两个LatLng对象传递给它


看起来您正在寻找一个新的解决方案,但因为:

但我不想传递源,它应该是当前的 位置作为源

下面是页面中的修改示例,演示了如何为Directions服务指定当前位置

函数initMap(){
var directionsService=新的google.maps.directionsService;
var directionsDisplay=新建google.maps.DirectionsRenderer;
var map=new google.maps.map(document.getElementById('map'){
缩放:7,
中心:{纬度:41.85,液化天然气:-87.65}
});
方向显示.setMap(地图);
var printRoute=函数(){
计算显示路线(方向服务、方向显示);
};
getCurrentLocation(函数(loc){
如果(loc!=null){
document.getElementById('startInner')。value=loc.toString();
document.getElementById('start').innerHTML='Current location';
地图设置中心(loc);
}
否则{
document.getElementById('start').innerHTML='CurrentLocation not found';
document.getElementById('btnCalc')。disabled=true;
}  
});
document.getElementById('btnCalc')。addEventListener('click',printRoute);
}
函数calculateAndDisplayRoute(方向服务、方向显示){
方向服务.路线({
来源:document.getElementById('startInner')。值,
目标:document.getElementById('end')。值,
travelMode:google.maps.travelMode.DRIVING
},功能(响应、状态){
if(status==google.maps.directionstatus.OK){
方向显示。设置方向(响应);
}否则{
window.alert('由于'+状态,指示请求失败);
}
});
}
函数getCurrentLocation(完成){
//尝试W3C地理定位(首选)
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
var location=new google.maps.LatLng(position.coords.lation,position.coords.longitude);
完成(位置);
},函数(){
完整(空);
});
}
否则{
完整(空);
}
}
html,正文{
身高:100%;
保证金:0;
填充:0;
}
#地图{
身高:100%;
}
#浮动面板{
位置:绝对位置;
顶部:10px;
左:25%;
z指数:5;
背景色:#fff;
填充物:5px;
边框:1px实心#999;
文本对齐:居中;
字体系列:“Roboto”,“sans-serif”;
线高:30px;
左侧填充:10px;
}

开始:
当前位置
完:
打印路线

您想要行驶距离(公路)还是直线距离(如乌鸦飞行)?感谢eugen.的可能重复。但是LatLng()中有什么,我将在哪里给出值(源和目标)?LatLng()是一个点的纬度和经度(如x和y坐标)。您总是可以在html标记中给出值。@sumit我不应该帮这么多,但请查看更新的fiddle。
document.getElementById("demo").innerHTML = distanceTwoPoints(p1,p2)+" Km";