【问题标题】:Google Maps Geocoder not giving results谷歌地图地理编码器没有给出结果
【发布时间】:2011-07-05 06:58:46
【问题描述】:

我正在使用 Google Maps V3 API 并使用其地理编码器对地图上用户点击的点进行反向地理编码。

在 DOM 完全加载时加载地理编码功能

$(function() {
reverse_geocode(40.714224,-73.961452);

});

进行反向地理编码的函数

function reverse_geocode(lat,lng) {

    var geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(10,-10);
    geocoder.geocode({'latLng': latlng}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            alert('asdasd');
        } else {
             alert("Geocoder failed due to: " + status);
        }
    }); 

}

如果我在页面第一次加载时调用reverse_geocode 函数,一切正常并且alert() 被调用。

但是,如果我调用reverse_geocode() 仅在地图上右键单击然后在 div 上单击鼠标触发,使用下面的代码,什么都不会发生!知道出了什么问题吗?

google.maps.event.addListener(map, "rightclick", function(event) {
                //some code not shown
                $("#info_rightclick_top").click(function(e) {

                    info_ok_handleclick();
                });
            });


function info_ok_handleclick() {
            $("#info_ok").click(function(e) {
                var lat = marker_search_location.getPosition().lat();
                var lng = marker_search_location.getPosition().lng();
                var latlng = lat + "_" + lng;



                reverse_geocode(10,-10);

                // some code hidden
            });

【问题讨论】:

  • 这里的事件处理程序太多了。您的 info_ok_handlerclick()。附加另一个处理程序,因此您需要在调用反向地理编码功能之前单击 3 次。理论上,您只需要 2 个事件侦听器 - 1 个用于右键单击(假设用于显示菜单的功能)和一个 #info_ok 处理程序来进行地理编码。您的 info_ok 处理程序不需要包装在函数中,只需放入 document.ready jquery 块...

标签: php javascript jquery google-maps google-maps-api-3


【解决方案1】:

使用下面的代码,您可以按关键字搜索位置。

        <?php
         include_once("include/GoogleMap.php");
         include_once("include/JSMin.php");
         $mapcity="India";
         $mapdesc="description about this map";
         $MAP_OBJECT = new GoogleMapAPI(); 
         $MAP_OBJECT->_minify_js = isset($_REQUEST["min"])?FALSE:TRUE;

         $MAP_OBJECT->addMarkerByAddress($mapcity,"Map name", $mapdesc);
         $MAP_OBJECT->enableStreetViewControls();
        ?>
        <html>
        <head>
        <?=$MAP_OBJECT->getHeaderJS();?>
        <?=$MAP_OBJECT->getMapJS();?>
        </head>
        <body>
        <?=$MAP_OBJECT->printOnLoad();?>
        <?=$MAP_OBJECT->setMapType(ROADMAP);?>
        <?=$MAP_OBJECT->printMap();?>
        <?=$MAP_OBJECT->printSidebar();?>
        </body>
        </html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-22
    • 2015-10-21
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2011-08-12
    • 2012-04-10
    • 2013-07-29
    相关资源
    最近更新 更多