我正在使用jquery和google maps v3创建一个页面,我正在尝试在Google地图上显示标记。出于某种原因,我在Firefox中遇到错误(并且标记未在地图上显示):
Error: IndexSizeError: Index or size is negative or greater than the allowed amount Source
File: http://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/17/main.js
Line: 96
事实: *它适用于Safari *如果我更改MarkerImage网址
,则有效我用来添加标记的代码如下:
var marker = new google.maps.Marker({
map: map,
icon: new google.maps.MarkerImage(
"/gfx/icons/poi.png",
new google.maps.Size(22,22),
new google.maps.Point(0,0),
new google.maps.Point(11,11),
new google.maps.Size(22,22)),
position: point
});
我的测试可以在这里看到:
答案 0 :(得分:9)
似乎问题出在google.maps.MarkerImage对象中,在第五个(scaledSize)参数中,如果图像的实际大小不是代码中定义的那样,则确切。由于某些原因,如果图像大小定义不正确且scaledSize与实际大小匹配但与图像大小不匹配,则Firefox无法处理缩放。
更精确:image /gfx/icons/poi.png不是22 x 22px而是30 x 30px。因此,要克服这个问题,有三种解决方案:
在a)的情况下,markerImage将缩放到定义的大小(22x22),在b)和c)的情况下,22x22将被裁剪出原始的30x30大小。