Google地图会在侦听器中进行地理编码

时间:2011-10-11 10:03:19

标签: javascript google-maps

我不知道为什么r1变量未定义。 'latLng':mEvent.latLng 在其他功能上正常工作......

<!-- API V3 --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

...

.....

...

google.maps.event.addListener(map, 'click', function(mEvent) {

            var geo1 = new google.maps.Geocoder();
            geo1.geocode( { 'latLng': mEvent.latLng }, function(results, status) {
                if ( status == google.maps.GeocoderStatus.OK )
                {
                    var r1 = results[0].formatted_address;
                }
                else
                {
                    var r1 = '?';
                }
            });

            //do things with mEvent.latLng and r1...

1 个答案:

答案 0 :(得分:1)

变量r1很可能是未定义的,因为它超出了范围。你需要稍微移动它的声明。 E.g:

google.maps.event.addListener(map, 'click', function(mEvent) {

        var geo1 = new google.maps.Geocoder();
        var r1;
        geo1.geocode( { 'latLng': mEvent.latLng }, function(results, status) {
            if ( status == google.maps.GeocoderStatus.OK )
            {
                r1 = results[0].formatted_address;
            }
            else
            {
                r1 = '?';
            }
        });

        //do things with mEvent.latLng and r1...

如果您仍然发现某些问题,请使用Firebug(在Firefox中)或在其他浏览器中内置调试程序。你可以插入“调试器”;调试器处于活动状态时停止在某行的关键字。然后,您将能够检查可用的变量。