我正在使用DirectionRenderer(gmap3)来显示用户指示。问题是它显示匹配,即使它找不到完全匹配。例如:SomeFakePlace,myRealCity将匹配myRealCity,即使它与SomeFakePlace不匹配。
所以它显示了从城市中心到这个地方的方向。目的地是固定的(myLatLng)
我希望它返回null,如果找不到,则不显示路由。我有适当的错误显示来处理。
$("#map-canvas-single").gmap3({
getroute:{
options:{
origin:$("#directions-from").val(),
destination:myLatlng,
travelMode: google.maps.DirectionsTravelMode.DRIVING
},
callback: function(results){
console.log(results);
var point= results.routes[0].overview_path[0]
window.directionMarker = new google.maps.Marker({
position: new google.maps.LatLng(point.jb,point.kb),
title:$("#directions-from").val(),
//icon:"http://maps.google.com/mapfiles/ms/icons/<?php if($this->listing->type=="pg"):?>green<?php else: ?>purple<?php endif;?>-dot.png"
});
window.directionMarker.setMap($(this).gmap3("get"));
if(!results)
noty({text:"Place not found!",type:"error"});
else
{
$(this).gmap3({
directionsrenderer:{
container: $("#directions-container"),
id:"directions",
options:{
directions:results,
suppressMarkers :true //<<Look here>>
}
}
});
}
}
}
});
代码工作正常。我认为这是方向渲染器服务的错误,而不是gmaps。我确信htere必须是完全匹配的参数
答案 0 :(得分:2)
我不熟悉Google Maps API,但我要做的是对源地址执行地理编码查找并找到lat,lng。您通常会获得具有置信水平的坐标,因此您可以获得一个低于该阈值的最小阈值。
https://developers.google.com/maps/documentation/geocoding/
另外,不要忘记mapquest。
http://developer.mapquest.com/web/products/dev-services/geocoding-ws