ユーザーの方向を表示するために DirectionRenderer(gmap3) を使用しています。問題は、完全一致が見つからない場合でも一致が表示されることです。例: SomeFakePlace, myRealCity は、SomeFakePlace と一致しなくても myRealCity と一致します。
そのため、代わりに市の中心部からその場所への道順が表示されます。行き先固定(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 ではなく、方向レンダラー サービスのせいだと思います。完全に一致させるには、何らかのパラメーターが必要であると確信しています