Javascript 如何获得可拖动的航路点&x27;谷歌方向结果中的位置

Javascript 如何获得可拖动的航路点&x27;谷歌方向结果中的位置,javascript,google-maps-api-3,Javascript,Google Maps Api 3,洛卡西亚酒店 html{ 字体系列:Arial、Helvetica、无衬线字体; 字体大小:15px; 身高:100%; } 身体{ 身高:100%; 宽度:100%; 保证金:0; 填充:0; } /*开始上下文菜单的样式*/ .上下文菜单{ 背景色:白色; 边框:1px纯色灰色; } .上下文菜单项{ 填充:3px6px; } .上下文菜单项:悬停{ 背景色:#中交; } .context\u菜单\u分隔符{ 背景颜色:灰色; 高度:1px; 保证金:0; 填充:0; } /*上下文菜单的结


洛卡西亚酒店
html{
字体系列:Arial、Helvetica、无衬线字体;
字体大小:15px;
身高:100%;
}
身体{
身高:100%;
宽度:100%;
保证金:0;
填充:0;
}
/*开始上下文菜单的样式*/
.上下文菜单{
背景色:白色;
边框:1px纯色灰色;
}
.上下文菜单项{
填充:3px6px;
}
.上下文菜单项:悬停{
背景色:#中交;
}
.context\u菜单\u分隔符{
背景颜色:灰色;
高度:1px;
保证金:0;
填充:0;
}
/*上下文菜单的结束样式*/
#映射容器{
身高:100%;
}
函数initMap(){
var map=new google.maps.map(document.getElementById('map\u container'){
缩放:4,
中心:{
lat:-24.345,
液化天然气:134.46
}//澳大利亚。
});
var directionsService=新的google.maps.directionsService;
var directionsDisplay=新建google.maps.DirectionsRenderer({
真的,
地图:地图,
面板:document.getElementById('右面板')
});
directionsDisplay.addListener('directions\u changed',function(){
ComputeTotalInstance(directionsDisplay.getDirections());
});
显示路线(“华盛顿州珀斯”、“新南威尔士州悉尼”、方向服务、,
方向显示);
}
功能显示路线(起点、终点、服务、显示){
服务路线({
来源:来源,,
目的地:目的地,
航路点:[{
地点:南非阿德莱德
}, {
地点:“新南威尔士州布罗克山”
}],
travelMode:‘驾驶’,
避免收费:正确
},功能(响应、状态){
如果(状态=='OK'){
显示。设置方向(响应);
}否则{
警报('由于:'+状态而无法显示方向);
}
});
}
函数ComputeTotalInstance(结果){
var合计=0;
var route=result.routes[0];
对于(var ij=0;ij
您路线的每条航段都是一组步骤,在您提交的情况下,每条航段都对应于一个站点(起点、航路点、目的地)之间的方向

  • 航段[0]
    从珀斯到阿德莱德
  • 支腿[1]
    从阿德莱德到布罗克山
  • 航段[2]
    从断山到悉尼
因此,通过航路点
道具中不会有任何内容

如果您不希望将航路点视为真正的停靠点,则需要在航路点中设置
停靠点:false
。然后,您将获得为每个航段(如果有多个航段)填充的
via_航路点
属性

然后,您可以通过_航路点
迭代
,并获得坐标

lat
lng
是方法,而不是属性,因此需要调用它们,例如:

let firstWaypointLat = result.routes[0].legs[0].via_waypoints[0].lat();
以下示例介绍如何获取航路点坐标:

函数initMap(){
var map=new google.maps.map(document.getElementById('map-canvas'){
缩放:4,
中心:{
lat:-24.345,
液化天然气:134.46
}//澳大利亚。
});
var directionsService=新的google.maps.directionsService;
var directionsDisplay=新建google.maps.DirectionsRenderer({
真的,
地图:地图,
面板:document.getElementById('右面板')
});
directionsDisplay.addListener('directions\u changed',function(){
ComputeTotalInstance(directionsDisplay.getDirections());
});
显示路线(“华盛顿州珀斯”、“新南威尔士州悉尼”、方向服务、,
方向显示);
}
功能显示路线(起点、终点、服务、显示){
服务路线({
来源:来源,,
目的地:目的地,
航路点:[{
地点:南非阿德莱德,
中途停留:错误
}, {
地点:“新南威尔士州布罗克山”,
中途停留:错误
}],
travelMode:‘驾驶’,
避免收费:正确
},功能(响应、状态){
如果(状态=='OK'){
显示。设置方向(响应);
}否则{
警报('由于:'+状态而无法显示方向);
}
});
}
函数ComputeTotalInstance(结果){
让leg=result.routes[0]。legs[0];

对于(设i=0;iYou也可以通过拖动可拖动路线上的一个白色圆形图标来获取
via_航路点
。正如geocodezip已经指出的那样,如果您将建议的路线拖动到另一条路径上,就会填充
via_航路点
,这正是我遇到的问题。总之,帮助我的是的提示e> lat
lng
是函数(我现在也可以从调试器中看到这些函数-我不是javascript或web开发中的“本地人”),谢谢!
let firstWaypointLat = result.routes[0].legs[0].via_waypoints[0].lat();