0

我需要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);

谢谢你的帮助。

4

1 回答 1

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]));
于 2015-01-06T07:01:09.057 回答