刷新/重新加载地图:Google maps API V2

时间:2011-07-27 23:00:46

标签: javascript ajax google-maps google-maps-api-2

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

http://128.233.104.33/passgui/editLeveledit.php

我想要的是 -

- 在我点击添加新兴趣点

时显示地图上新添加的数据

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

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

从“基础知识”中查看“Part 11”。点击按钮后删除/添加点数。使用Ajax检索新坐标,我确信您可以管理另一种方式。 : - )

答案 2 :(得分:0)

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


您需要的只是在源头内,看一看并告诉我。

基本上该演示使用了markermanager.js lib,就像你现在一样,它解释了如何引用到新添加的标记以及如何insert和{{ 1}}他们没有刷新当前地图/页面;

后面的过程很简单,每次使用remove func将marker添加到地图时,它会创建addMarkers,我们要查找的属性为{{1}这是marker.object的形式,其中marker.no是增量数字,因此可以是任何数字。

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

因此,我们可以使用# func来覆盖和删除每个标记:global其中removeMarkerremoveMarker(global_marker_array[marker_id]);;

我认为这种方法非常好,因为你不需要知道lat和long,以便第二次检索标记。