Google Maps API:在绘制路线时会产生零结果或无效请求

时间:2014-01-08 09:42:06

标签: javascript google-maps google-maps-api-3

我正在尝试根据从数据库收到的坐标绘制路线。但不知怎的,我无法画画。我得到ZERO RESULTSINVALID REQUEST ..我想要绘制的路线是TRANSIT路线。我在哪里发现了一些类似的问题(Link)在网站中得到解决,但给出的解决方案是在参数中添加departure timearrival time。这是一个公认的答案。我尝试的相同目前无法正常工作。我已经发布了我尝试过的代码。 以下是坐标:

19.1860640243063 72.9759523272514
19.1902699 73.023094
19.2178474133021 73.086293040406
19.2354157727173 73.1302742969937

请帮忙。

 load : function(response) 
        {
            for(var i=0;i<response.length;i++)
            {
                if(response[i].linkData!='undefined')
                {
                 link=response[i].linkData;
                 var lastPos=(response.length-1);
                 linkDes=response[lastPos].linkData;    
                 var linkDes=link.split(" ");       
                 var linkValue=link.split(" ");                                          
                 var latDes= parseFloat(linkDes[0]);                
                 var longDes= parseFloat(linkDes[1]);           
                 var lat = parseFloat(linkValue[0]);  //convert string to float                 
                 var lon = parseFloat(linkValue[1]);  //convert string to float             
                 if(count==0)
                 {   
                   var source=new google.maps.LatLng(lat, lon); 
                   count++;
                 }  
                 if(i!=0 )  
                 {
                     geoLatLong=new google.maps.LatLng(lat, lon); 
                      count++;
                 }
                 if(i!=response.length-1)
                 {
                     geoLatLong=new google.maps.LatLng(lat, lon);   
                 }
                 if(latDes!="" && longDes!="")
                  {         
                     var destination=new google.maps.LatLng(latDes, longDes); 
                  }
                  if(count>1 && count<=response.length-1) 
                  {
                   geoLatLongArray.push(geoLatLong);   
                  }

                }
            }
            for(var i=0;i<geoLatLongArray.length;i++)
            {
              waypts.push({location:geoLatLongArray[i],stopover:true}); 
            }
            var request = {
                    origin: source,
                    destination: destination,
                    waypoints: waypts,
                   optimizeWaypoints: true,

                    travelMode: google.maps.DirectionsTravelMode.TRANSIT,
                    transitOptions: 
                    {
                     departureTime: new Date()   
                    }
                };
                directionsService.route(request, function(response, status) {
                  if (status == google.maps.DirectionsStatus.OK) {
                    directionsDisplay.setDirections(response);
                  } else {
                    alert("directions response "+status);
                  }
                });
        }

2 个答案:

答案 0 :(得分:0)

根据v3 API Docs

google.maps.TravelMode.TRANSIT

是正确的语法。

答案 1 :(得分:0)

我有类似的问题。我将原点设置为地址字段(而不是坐标)后修复了它。仅当原点和目的地都是坐标时,此问题仍然存在。

您可以使用Reverse Geocode API将坐标转换为地址,然后将转换后的地址传递给原点/目的地。