如果您导航到此页面并在 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)
)
}
);