Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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 谷歌方向路线标记在中点 如何在渲染路径中间添加一个可点击的标记,然后显示一个带有自定义数据的信息窗口,因为信息窗口不能直接添加到方向渲染器? 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

我读到我们可以使用step,但我不确定如何实现它

 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);
      }
    }