Javascript 谷歌方向路线标记在中点 如何在渲染路径中间添加一个可点击的标记,然后显示一个带有自定义数据的信息窗口,因为信息窗口不能直接添加到方向渲染器? function loadRoute0() { var request0 = { origin: new google.maps.LatLng(46.56300788, 15.62779705), destination: new google.maps.LatLng(46.55953332, 15.62616729), travelMode: google.maps.TravelMode.WALKING }; directionsService.route(request0, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { var renderer = new google.maps.DirectionsRenderer({ polylineOptions: { strokeColor: "#00FF00" }, suppressMarkers: true, map: map }); renderer.setDirections(result); } }); }
我读到我们可以使用step,但我不确定如何实现它Javascript 谷歌方向路线标记在中点 如何在渲染路径中间添加一个可点击的标记,然后显示一个带有自定义数据的信息窗口,因为信息窗口不能直接添加到方向渲染器? function loadRoute0() { var request0 = { origin: new google.maps.LatLng(46.56300788, 15.62779705), destination: new google.maps.LatLng(46.55953332, 15.62616729), travelMode: google.maps.TravelMode.WALKING }; directionsService.route(request0, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { var renderer = new google.maps.DirectionsRenderer({ polylineOptions: { strokeColor: "#00FF00" }, suppressMarkers: true, map: map }); renderer.setDirections(result); } }); },javascript,google-maps,google-maps-api-3,directions,Javascript,Google Maps,Google Maps Api 3,Directions,我读到我们可以使用step,但我不确定如何实现它 marker.setPosition(myRoute.steps[i].start_location); 要计算路线的中点,请执行以下操作: 捕获从方向服务返回的整个路线 代码片段: 函数loadRoute0(){ 变量请求0={ 来源:新google.maps.LatLng(46.56300788,15.62779705), 目的地:新google.maps.LatLng(46.55953332,15.62616729), trave
marker.setPosition(myRoute.steps[i].start_location);
要计算路线的中点,请执行以下操作:
函数loadRoute0(){
变量请求0={
来源:新google.maps.LatLng(46.56300788,15.62779705),
目的地:新google.maps.LatLng(46.55953332,15.62616729),
travelMode:google.maps.travelMode.WALKING
};
路由(请求0,函数(结果,状态){
if(status==google.maps.directionstatus.OK){
var renderer=new google.maps.directionsrender({
多段线选项:{
strokeColor:#00FF00
},
对,,
地图:地图
});
设置方向(结果);
polyline.setPath([]);
var route=result.routes[0];
var path=result.routes[0]。概述\u路径;
var legs=result.routes[0]。legs;
对于(i=0;i总时间为:”+(totalTime/60).toFixed(2)+“分钟”;
}
功能路线(百分比){
变量距离=(百分比/100)*总距离;
风险值时间=(百分比/100)*总时间/60.toFixed(2);
如果(!标记){
marker=createMarker(polyline.GetPointAtDistance(距离),“时间:”+time,“中点”);
}否则{
marker.setPosition(折线.GetPointAtDistance(距离));
marker.setTitle(“时间:+time”);
}
google.maps.event.trigger(标记“click”);
}
函数createMarker(板条、标签、html){
var contentString=''+label+'
'+html;
var marker=new google.maps.marker({
位置:latlng,
地图:地图,
标题:标签,
zIndex:Math.round(latlng.lat()*-100000)计算路线中点:
捕获从方向服务返回的整个路线
代码片段:
函数loadRoute0(){
变量请求0={
来源:新google.maps.LatLng(46.56300788,15.62779705),
目的地:新google.maps.LatLng(46.55953332,15.62616729),
travelMode:google.maps.travelMode.WALKING
};
路由(请求0,函数(结果,状态){
if(status==google.maps.directionstatus.OK){
var renderer=new google.maps.directionsrender({
多段线选项:{
strokeColor:#00FF00
},
对,,
地图:地图
});
设置方向(结果);
polyline.setPath([]);
var route=result.routes[0];
var path=result.routes[0]。概述\u路径;
var legs=result.routes[0]。legs;
对于(i=0;i总时间为:”+(totalTime/60).toFixed(2)+“分钟”;
}
功能路线(百分比){
变量距离=(百分比/100)*总距离;
风险值时间=(百分比/100)*总时间/60.toFixed(2);
如果(!标记){
marker=createMarker(polyline.GetPointAtDistance(距离),“时间:”+time,“中点”);
}否则{
marker.setPosition(折线.GetPointAtDistance(距离));
马克
polyline.setPath([]);
var route = result.routes[0];
var path = result.routes[0].overview_path;
var legs = result.routes[0].legs;
for (i = 0; i < legs.length; i++) {
var steps = legs[i].steps;
for (j = 0; j < steps.length; j++) {
var nextSegment = steps[j].path;
for (k = 0; k < nextSegment.length; k++) {
polyline.getPath().push(nextSegment[k]);
}
}
}
function computeTotalDistance(result) {
totalDist = 0;
totalTime = 0;
var myroute = result.routes[0];
for (i = 0; i < myroute.legs.length; i++) {
totalDist += myroute.legs[i].distance.value;
totalTime += myroute.legs[i].duration.value;
}
putMarkerOnRoute(50);
totalDist = totalDist / 1000.
document.getElementById("total").innerHTML = "total distance is: " + totalDist + " km<br>total time is: " + (totalTime / 60).toFixed(2) + " minutes";
}
function putMarkerOnRoute(percentage) {
var distance = (percentage / 100) * totalDist;
var time = ((percentage / 100) * totalTime / 60).toFixed(2);
if (!marker) {
marker = createMarker(polyline.GetPointAtDistance(distance), "time: " + time, "marker");
} else {
marker.setPosition(polyline.GetPointAtDistance(distance));
marker.setTitle("time:" + time);
}
}