刷新/重新加载地图:谷歌地图 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
库,就像您现在所做的那样,它解释了如何引用 新添加的标记以及如何在不刷新的情况下使用insert
和remove
它们当前地图/页面;
后面的过程很简单,每次使用addMarkers
函数将marker
添加到地图中时,它都会创建一个marker.object
,我们要查找的属性是marker.no
,其形式为@ 987654329@ 其中#
是递增数字,因此可以是任何数字。
现在,真正的诀窍是创建一个global
数组,我们在其中存储所有创建的标记以便于访问。
因此,我们可以使用removeMarker
函数来访问和删除每个标记,如下所示:removeMarker(global_marker_array[marker_id]);
其中marker_id
是marker.no
;
我认为这种方法非常好,因为您不需要知道经纬度即可再次检索标记。
【讨论】:
以上是关于刷新/重新加载地图:谷歌地图 API V2的主要内容,如果未能解决你的问题,请参考以下文章