谷歌地图 - 放大Chrome 21时磁贴不显示 - IE9 / FF11 OK



如果您导航到此页面并在 Chrome 21 中切换到"地图"视图,然后平移和缩放,则磁贴似乎不会绘制。 在开发工具中进行的更仔细调查表明,根本没有尝试下载磁贴。 奇怪的是,也没有错误或记录的消息。

仍然陌生 - 此页面在IE9和FF11和14中完美运行。

想法?

编辑:也许还有一些额外的细节 - 当我平移时,有许多图像添加到"资源"选项卡中,其中包含 http://maps.googleapis.com/maps/gen_204?... 据我所知,这些都返回 HTTP 状态 204 - 没有内容。 在其中一个正常运行的浏览器中,同样的事情会发生,但这紧随其后的是从 URL 加载磁贴数据,例如 http://mt0.googleapis.com/vt?lyrs=m@182176386&src=apiv3&hl=en-AU&x=472&y=293&z=9&s=Galil&style=api%7Csmartmaps - 除了在 Chrome 中不会发生这种情况。

IE的开发工具说该图像的启动器(mt0)是img.src属性更改 - 表明某些JS已正确设置img元素的src以获取磁贴。那么为什么这不会在Chrome中发生 - 也许某些事件没有被提出或会悄悄地异常?我设置了"暂停所有例外"以及"未捕获"的例外,但这没有产生任何结果。

四处搜索,我看到了许多类似的请求,但似乎没有任何相关要求,所以再次赞赏任何想法。

作为记录,我们发现问题在于添加了"假"标记。

我们使用的信息框插件需要对构造函数的标记引用。我们在正确的"位置"创建该标记,并为位置为 (0,0)、大小为 (0,0) 和空字符串 url 的 MarkerImage 分配一个"图标"。

虽然这种方法在IE/FF中似乎工作正常,但在Chrome中似乎效果不佳。 在现阶段,我们尚未试图确定原因。

只需从发送到google.maps.Marker构造函数的MarkerOptions对象中省略"icon"属性就可以解决问题;即

var mkr = new google.maps.Marker(
    {
        map: this.googleMap,
        position: this.position,
        clickable: false
    }
);

代替

var mkr = new google.maps.Marker(
    {
        map: this.googleMap,
        position: this.position,
        clickable: false,
        icon: new google.maps.MarkerImage(
                '',
                new google.maps.Size(0,0),
                new google.maps.Point(0,0),
                new google.maps.Point(0,0)
        )
    }
);

最新更新