刷新/重新加载地图:谷歌地图 API V2

Posted

技术标签:

【中文标题】刷新/重新加载地图:谷歌地图 API V2【英文标题】:Refresh/Reload maps : Google maps API V2 【发布时间】:2011-10-14 16:48:18 【问题描述】:

我在我的谷歌地图中显示一些标记,从数据库中检索一些点。在这里,我也可以在我的数据库中添加一些新点或删除一些点。但我的问题是当新点添加到数据库中时,地图不会在地图中显示更新的点,因为它没有刷新。我不想刷新整个网页。这是我的作品的链接 -

http://128.233.104.33/passgui/editLeveledit.php

我想要的是-

--点击添加新兴趣点时在地图上显示新添加的数据

--如果我删除了单个 POI,一旦从关卡表中单击删除 POI 按钮,也应该从地图中删除。

谁能帮帮我?

【问题讨论】:

感谢您的赏金,我不想打扰您,但您也应该检查答案以完全接受它。如果您对代码有任何其他问题,请告诉 mw,问候 ;-) 感谢您的评论。我当然会那样做。因为这几天忙于其他项目,所以有点晚了。会尽快做。请不要将其从您的服务器中删除。非常感谢您的帮助。 不要担心演示会在那里! ;-) 【参考方案1】:

以下是 Google Maps v2 API 的广泛参考:http://econym.org.uk/gmap/

查看“基础知识”中的“Part 11”。单击按钮时删除/添加点。使用 Ajax 检索新坐标,我相信您可以通过另一种方式进行管理。 :-)

【讨论】:

【参考方案2】:

一个好的策略是将所有当前的 gmarker 存储到一个 javascript 数组中。首先,如果您删除或添加新的 gmarker,则删除或将其添加到数组中,然后删除地图上的每个 gmarker(清除地图),然后您要循环遍历数组并重绘每个 gmarker,如果删除或添加 onClick-事件被触发。

【讨论】:

【参考方案3】:

演示: http://so.devilmaycode.it/refresh-reload-maps-google-maps-api-v2/


您需要的只是在源代码中,看看并告诉我。

基本上该演示使用了markermanager.js 库,就像您现在所做的那样,它解释了如何引用 新添加的标记以及如何在不刷新的情况下使用insertremove 它们当前地图/页面;

后面的过程很简单,每次使用addMarkers函数将marker添加到地图中时,它都会创建一个marker.object,我们要查找的属性是marker.no,其形式为@ 987654329@ 其中# 是递增数字,因此可以是任何数字。

现在,真正的诀窍是创建一个global 数组,我们在其中存储所有创建的标记以便于访问。

因此,我们可以使用removeMarker 函数来访问和删除每个标记,如下所示:removeMarker(global_marker_array[marker_id]); 其中marker_idmarker.no

我认为这种方法非常好,因为您不需要知道经纬度即可再次检索标记。

【讨论】:

以上是关于刷新/重新加载地图:谷歌地图 API V2的主要内容,如果未能解决你的问题,请参考以下文章

重新加载谷歌地图

启用位置后刷新谷歌地图

谷歌地图 API v2 密钥

谷歌地图api没有刷新

Android 谷歌地图 API v2 中心缩放

无法加载安卓谷歌地图 V2