Javascript 在谷歌地图中显示沿点行驶的距离

Javascript 在谷歌地图中显示沿点行驶的距离,javascript,maps,Javascript,Maps,此演示链接 我在谷歌地图上显示点,如上所述 我想计算沿路径行驶的距离 不是按起点和终点计算,而是按行程路径计算 如何使用谷歌计算距离 我使用了计算距离的例子 html{ 身高:100% } 身体{ 身高:100%; 边际:0px; 填充:0px } #地图画布{ 身高:100%; } var g=google.maps; 函数初始化(){ var latlng=新的g.latlng(62.397,12.644); 变量myOptions={ 缩放:4, 中心:拉特林, mapTypeId

此演示链接

我在谷歌地图上显示点,如上所述

我想计算沿路径行驶的距离

不是按起点和终点计算,而是按行程路径计算

如何使用谷歌计算距离

我使用了计算距离的例子


html{
身高:100%
}
身体{
身高:100%;
边际:0px;
填充:0px
}
#地图画布{
身高:100%;
}
var g=google.maps;
函数初始化(){
var latlng=新的g.latlng(62.397,12.644);
变量myOptions={
缩放:4,
中心:拉特林,
mapTypeId:g.mapTypeId.ROADMAP
};
var map=newg.map(document.getElementById(“map_canvas”),myOptions;
registerMapDragHandler(映射);
}
函数注册表pdraghandler(aMap){
var-map=aMap;
g、 addListener(映射,'click',函数(事件){
CreateLineBeingDrawled(映射,事件latLng);
});
函数CreateLineBeingDrawled(地图、pos){
var line=新的g.多段线({map:map,path:[pos,pos]});
g、 addListener(映射'mousemove',函数(事件){
line.getPath().setAt(1,event.latLng);
});
g、 addListener(行“单击”,函数(事件){
g、 clearListeners(映射'mousemove');
g、 clearListeners(行“单击”);
createMarkersForLine(地图、线);
});
函数createMarkersForLine(地图、线){
var startMarker=createMarker(行,0);
var endMarker=createMarker(第1行);
startMarker.nextMarker=endMarker;
endMarker.previousMarker=startMarker;
}
函数createMarker(直线、路径位置){
var position=line.getPath().getAt(pathPos);
var marker=newg.marker({map:map,position:position,visible:true,flat:true,draggable:true,raiseOnDrag:false});
//标记函数
marker.getPathIndex=函数(){
if(this.previousMarker!=null){
返回此.previousMarker.getPathIndex()+1;
}否则{
返回0;
}
}
marker.startDrag=功能(位置){
如果(!marker.previousMarker | |!marker.nextMarker){
line.getPath().insertAt(marker.getPathIndex(),pos);
var newMarker=createMarker(line,marker.getPathIndex());
if(marker.nextMarker){
newMarker.previousMarker=标记;
newMarker.nextMarker=marker.nextMarker;
newMarker.nextMarker.previousMarker=newMarker;
marker.nextMarker=newMarker;
}否则{
newMarker.nextMarker=标记;
newMarker.previousMarker=marker.previousMarker;
newMarker.previousMarker.nextMarker=newMarker;
marker.previousMarker=newMarker;
}
}
}
marker.beingdrable=函数(){
line.getPath().setAt(marker.getPathIndex(),marker.getPosition());
}
//听众
g、 addListener(标记'dragstart',函数(事件){
标记开始标记(事件标记);
});
g、 addListener(标记“拖动”,函数(事件){
marker.beingdrawing();
});
g、 addListener(标记,'click',函数(事件){
var length=g.geometry.spherical.computeLength(line.getPath())/1000;
var infoWindow=新的g.infoWindow(
{
内容:“
  • 线路长度:+length.toFixed(2)+”km
  • ”+ 纬度:“+marker.getPosition().lat().toFixed(6)+””+ 经度:“+marker.getPosition().lng().toFixed(6)+”
” }); 信息窗口。打开(地图、标记); }); 返回标记; } } }

如果我在本例中添加googlelibraryjs,它会给出一个错误,即加载了多个google库

若我并没有包括这个库,它会给出一个错误,计算长度并没有定义

我想集成计算到我提供的演示链接的距离的功能。

谢谢

这是您的修改版

您必须将以下内容添加到html中

<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=false&v=3.3">
愿这对你有用

<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=false&v=3.3">
polyline = new google.maps.Polyline(polylineoptns);
var length = google.maps.geometry.spherical.computeLength(polyline.getPath());
alert(length);