首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用谷歌地图v3的IndexSizeError :使用google.maps.Marker

使用谷歌地图v3的IndexSizeError :使用google.maps.Marker
EN

Stack Overflow用户
提问于 2012-10-16 15:33:39
回答 1查看 3.4K关注 0票数 3

我正在用jquery和谷歌地图v3创建一个页面,我试图在谷歌地图上显示一个标记。由于某种原因,我在使用Firefox时遇到一个错误(并且标记没有显示在地图上):

代码语言:javascript
复制
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 url,它就会运行

我用来添加标记的代码如下:

代码语言:javascript
复制
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
});

我的测试可以在这里看到:

http://geoape.com/_wp.php

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-17 03:45:28

问题似乎出在google.maps.MarkerImage对象中,更确切地说,是在第五个(scaledSize)参数中,如果图像的实际大小不是代码中定义的那样。出于某些原因,如果图像大小定义错误,并且scaledSize与实际大小匹配,但与图像大小不匹配,则Firefox无法处理缩放。

更准确地说: image /gfx/icons/poi.png不是22x22px,而是30x30px。因此,要解决这个问题,有三种解决方案:

  • a)相应地更改第二个参数(size to google.maps.Size(30,30));
  • b)相应地更改第五个参数(scaledSize to google.maps.Size(30,30));
  • c)删除将调整标记图像大小的第五个参数(scaledSize google.maps.Size(22,22))。

在a) markerImage将被缩放到定义的大小( 22x22 )的情况下,在b)和c)的情况下,22x22将从原始的30x30大小裁剪出来。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12909632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档