首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谷歌地图API标记消失

谷歌地图API标记消失
EN

Stack Overflow用户
提问于 2013-05-01 19:12:07
回答 2查看 7.7K关注 0票数 20

我使用SVG path notation来创建标记,同时使用Google Maps API v3创建折线。有时,在添加了几个标记后,它们就不再从地图上显示。如果我平移地图,即使只有1px,它们也会再次显示。

添加几个后,SVG标记停止显示

pan后再次显示SVG标记

这发生在FF,Safari,Chrome和iPhone浏览器中。

下面是我的折线代码::

代码语言:javascript
运行
复制
var lineSymbol = {
    path: g.SymbolPath.FORWARD_OPEN_ARROW,
    scale:1.5
};

polyOptions = {
    strokeColor: '#0026b3',
    strokeOpacity: 1.0,
    strokeWeight: 1,
    geodesic: true,
    icons: [{
        icon: lineSymbol,
        repeat: '100px'
    }],
    zIndex: 10
};

polyLine = new g.Polyline(polyOptions);
polyLine.setMap(map);

和SVG标记的代码:

代码语言:javascript
运行
复制
var path = polyLine.getPath();
path.push(event.latLng);

var icon = {

    path: "M68.501,23.781 43.752,48.529 66.918,71.695 66.918,120.362 70.085,120.362 70.085,71.694 93.249,48.529",
    fillColor: iconColor,
    fillOpacity: .8,
    anchor: new g.Point(70.085, 120.362),
    strokeWeight: 0,
    scale:.4
};

var marker = new g.Marker({
    position: event.latLng,
    map: map,
    draggable: false,
    icon: icon,
    title: title,
    zIndex : -20
});

你知道为什么我的标记在地图上就消失了吗?提前谢谢。

在这里是一个可以重现问题的小提琴:

这里有一个YT视频来说明这个问题:

编辑:

谷歌已经创建了一个错误报告:http://code.google.com/p/gmaps-api-issues/issues/detail?id=5351

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-05 01:09:53

适用于我,使用Chrome (Windows)版本26.0.1410.64进行测试

然而,有几件事需要尝试一下:

  • 删除标记zIndex,您是故意尝试将其隐藏在下面吗?看:zIndex -20
  • Remove fillOpacity
  • You说移动地图会让它变得可见?你已经在做map.setCenter()了;但是这还不够吗?你也可以在添加标记时触发一个映射事件,这样你就不需要移动它了,比如:google.maps.event.trigger(map, 'drag');
  • What,如果你把所有的标记都存储在数组中,并在添加新的标记时循环它们?并用相同的代码触发他们的svg png,看看问题是否出在

这是我尝试过其中一些东西的。

编辑:

经过几次测试,我注意到使用map.panTo(latLng);而不是map.setCenter(latLng);可以正确绘制SVG标记。或者,如果您不想平移到中心,使用map.panBy(x, y);作为1个像素,然后返回到前一个中心(快速)可能具有类似的解决此问题的效果。

这里是,看看它的实际效果。

票数 17
EN

Stack Overflow用户

发布于 2013-11-19 21:14:58

我使用png标记图标作为标记也有同样的问题,有时在fitBounds之后(一些标记会消失,当我放大时它们会出现),只有当我将这个标记设置为可拖动时才会消失。

我试过这个:

代码语言:javascript
运行
复制
map.panTo(map.getCenter()); 

设置标记后可拖动。现在它工作得很好。

这似乎是V3实现中的一个错误。

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

https://stackoverflow.com/questions/16317072

复制
相关文章

相似问题

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