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

Refresh/Reload maps : Google maps API V2

本文关键字:地图 谷歌地图 API V2 加载 新加载 刷新      更新时间:2023-09-26

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

http://128.233.104.33/passgui/editLeveledit.php

我要的是-

——当我单击add new poi时,在地图上显示新添加的数据

—如果我删除了一个POI,那么当我点击关卡表中的delete POI按钮时,它也应该从地图中删除。

有谁能帮帮我吗?

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

看"基础知识"中的"第11部分"。点被删除/添加点击按钮。使用Ajax检索新坐标,但我相信您可以使用另一种方式进行管理。: -)

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

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


所有你需要的是在源代码,看看,让我知道。

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

背后的过程很简单,每次通过使用addMarkers函数将marker添加到映射中,它创建一个marker.object,我们正在寻找的属性是marker.no,其形式为marker#,其中#是增量数字,因此可以是任何数字。

现在,这里真正的技巧是创建一个global数组,我们存储所有创建的标记,以便于访问。

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

我认为这种方法非常好,因为您不需要知道第二次检索标记的时间和长度。