代码之家  ›  专栏  ›  技术社区  ›  A. M.

当我在一个页面上有几个google地图时(在chrome、safari和ie中),控件不起作用

  •  1
  • A. M.  · 技术社区  · 15 年前

    我有一个页面,显示用户选择的位置列表,对于每个位置,它还显示带有指向地址的标记的地图。

    在firefox和opera中一切都很好,但在safari、chrome和ie中,控件(缩放、移动、地图选项、比例)只显示在页面上的一个或两个地图中(通常只显示最后一个地图)。对于其他人,只有一个带有标记的地图图像(我也不能通过拖动它来移动地图,它就像一个静态图像)。

    我检查了,这不是一个z索引(或其他类型的css)的问题,控件没有隐藏。用来保存控件的div是空的。

    每个地图的代码如下所示:

    var map_x = null;
    
    if (GBrowserIsCompatible()) {
        var mapObjx = document.getElementById("mapx");
        if (mapObjx != "undefined" && mapObjx != null) {
            map_x = new GMap2(document.getElementById("mapx"));
            map_x.setCenter(new GLatLng(40.728444, -73.992117), 14, G_NORMAL_MAP);
            map_x.addControl(new GLargeMapControl());
            map_x.addControl(new GMapTypeControl());
            var point = new GLatLng(40.7284440,-73.9921169);
            var marker = createMarker(point,"","<div id=\"gmapmarker\"><\/div>", 0,"");
            map_x.addOverlay(marker);
        }
    } else {
        alert("Sorry, the Google Maps API is not compatible with this browser.");
    }
    

    我试过很多方法,似乎在添加每个新映射之前在代码中造成一点延迟会提高工作映射的数量,但不会超过3或4个(同样,这不是一个真正的解决方案,因为页面上可能有很多映射,这会导致加载太慢)。

    1 回复  |  直到 15 年前
        1
  •  0
  •   A. M.    15 年前

    嗯,这感觉很傻。页面上包含的外部脚本是由php生成的,来自maps.google.com的脚本包含了两次。在我纠正了这个问题之后,所有的浏览器似乎都能正常工作。

    推荐文章