使用params(latLng)调用calcRoute时未定义路径 - Google Maps

时间:2015-01-06 06:50:08

标签: google-maps google-maps-api-3 map-directions

我需要在点击时将传递参数调用calcRoute(),我正在做的是:

function calcRoute(source,destt) {
  var start = new google.maps.LatLng(source);
  var end = new google.maps.LatLng(destt);
  var request = {
    origin:start,
    destination:end,
    travelMode: google.maps.TravelMode.DRIVING
  };
  directionsService.route(request, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(result);
    } 
  });
}

点击活动:

$('#go').click(function(){
  var from= "24.942834,67.121237";
  var to = "24.944908,67.124491";
  calcRoute(from,to);
});

它将使用ZERO_RESULT

返回状态

当我在calcRoute()中硬编码lat n lng时,它工作正常,即

var start = new google.maps.LatLng(24.942834,67.121237);
var end = new google.maps.LatLng(24.944908,67.124491);

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

直接字符串无法用作LatLng对象,您必须将"24.942834,67.121237"转换为google.maps.LatLng才能使其正常工作。

$('#go').click(function(){
          var from= new google.maps.LatLng(24.942834,67.121237);// convert it to latlng object
          var to = new google.maps.LatLng(24.944908,67.124491);
          calcRoute(from,to);
        });

如果您有"24.942834,67.121237",那么您可以像这样使用它:

var str="24.942834,67.121237";
var latlng=str.split(',')

var to = new google.maps.LatLng(parseFloat(latlng[0]), parseFloat(latlng[1]));