【问题标题】:Google maps API: Cannot read property '__e3_' of undefinedGoogle 地图 API:无法读取未定义的属性“__e3_”
【发布时间】:2011-08-14 16:29:19
【问题描述】:

这是我要添加的监听器 -

var map;
    var geocoder;
    function initialize() {
        var myOptions = {
          zoom: 8,
          center: new google.maps.LatLng(22, 88),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
    }
    //google.maps.event.addDomListener(window, 'load', initialize);
    google.maps.event.addListener(map, 'click', function(event) {
        geocoder = new google.maps.Geocoder();
        geocoder.geocode( { 'latLng': event.latLng}, function(results, status) {

            if (status == google.maps.GeocoderStatus.OK) {
                alert(results);
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });
    });

但它在控制台中生成此错误 -

Uncaught TypeError: Cannot read property '__e3_' of undefined
Ke
Ie
R.addListener
(anonymous function)

尝试搜索。但没有解决方案。

【问题讨论】:

  • 你找到什么了吗?我有同样的问题

标签: javascript google-maps-api-3


【解决方案1】:

将你的监听器移动到初始化函数中。

【讨论】:

    【解决方案2】:

    仅用一小部分代码很难分辨,但这听起来像是找不到“地图”。

    您的地图变量不是全局变量,或者该代码以某种方式可访问,或者地图不是用以下方式创建的:

    map = new google.maps.Map(....)
    

    在您尝试添加新的点击侦听器之前。

    【讨论】:

    • map 是全球性的。我用完整的代码更新了这个问题。看看吧。
    【解决方案3】:

    我不知道这对您来说是否是个问题,因为我们没有看到您链接到谷歌地图库的代码部分,但我刚刚发现我收到此错误的原因来自试图包含“可视化”库。幸运的是,我不再需要使用它了。

    我有这个:

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry,visualization&sensor=true"></script>
    

    并将其更改为:

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=true"></script>
    

    我不再收到 e3 错误。

    顺便说一句,这个错误对我来说并不一致,我无法弄清楚 如何 复制它。我不得不坐在那里一遍又一遍地点击刷新,直到错误发生。

    我希望这对某人有所帮助。

    【讨论】:

      【解决方案4】:

      异步加载数据时会发生这种情况。您可以通过将 document.ready 代码包含到 ajaxStop 函数中来避免这种情况

      $().ready(function() {
          $(document).ajaxStop(function () {
              /* your code here ?*/
          });
      });
      

      【讨论】:

      • 这与问题有什么关系?
      【解决方案5】:

      在我的情况下,全局映射变量已在初始化程序中被覆盖,但我想在另一个函数中使用该全局变量,这导致了问题。

      【讨论】:

        【解决方案6】:

        是的,其次... map 变量必须在使用之前在外部声明。由于谷歌地图监听器找不到它。

        【讨论】:

        • 这应该作为评论添加,而不是答案。
        • 有时用户的声誉太低而无法发表评论,所以他们所能做的就是添加答案
        【解决方案7】:

        这样的?

        var lati,longt; //contains latitude and longitude
        
        func newLatLOng(){
          get new value of latLong
          initMap();
        
        }
        
        var map = 0;
        function initMap() {
            if (map ===0)
            {
             //load first time
                    lati= 28.5072216;
                    longt= 77.4971153;
                    map = new google.maps.Map(document.getElementById('map'), {
                            center: {lat: lati, lng: longt},
                            zoom: 13
                    });
            }else
            {
                    var geolocation = { lat:lati, 
                                    lng: longt };
                    google.maps.event.trigger(map, 'resize');
                    map.setCenter(geolocation);
            }
        

        【讨论】:

          【解决方案8】:

          在我的情况下google.maps.event.addListener(marker, 'click', function() { 标记变量未定义。因此错误。可能对某人有用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-02-19
            • 2014-05-23
            • 2016-03-05
            • 2021-06-25
            • 1970-01-01
            • 1970-01-01
            • 2021-11-11
            • 1970-01-01
            相关资源
            最近更新 更多