Google只会映射方向渲染器完全匹配

时间:2013-07-23 03:32:23

标签: google-maps-api-3 jquery-gmap3

我正在使用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必须是完全匹配的参数

1 个答案:

答案 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