我正在显示一个包含许多 MarkerIcon 的地图,它们都基于相同的 png,但缩放到不同的大小。
基本尺寸是 64 x 64,如果我按比例缩小,一切都会按预期工作。
如果我放大,图标会被裁剪。我做了一个简单的 JSFiddle 来说明这个问题 - 这是缩放图标的代码。我的理解是第一个大小是以像素为单位的源图像的实际大小,接下来的两个位置是我暂时不关心的原点和锚点,最终大小是以像素为单位的缩放大小。
var icon_scaled = new google.maps.MarkerImage(
img-filename,
new google.maps.Size(64, 64),
null,
null,
new google.maps.Size(scaled_size, scaled_size)
);
在我找到的示例中,您可以省略第一个大小并让浏览器计算它。这适用于 Chrome,但在 Firefox 上失败,并显示如下错误消息:
Error: IndexSizeError: Index or size is negative or
greater than the allowed amount
在这里小提琴:http: //jsfiddle.net/y8E54/
我怎样才能在两个浏览器上做到这一点而不会出现任何错误?
顺便说一句:我知道 MarkerIcon 已被弃用 - 我的实验根据文档使用“图标”替换它并指定“大小”和“缩放大小”会导致相同类型的问题。