我需要在点击时将传递参数调用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);
感谢您的帮助。
答案 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]));