Google地图 - 保存动态地图

时间:2012-08-05 23:38:43

标签: javascript google-maps-api-3 google-maps-markers

我正在尝试使用最新的Google Map API创建动态地图。到目前为止,一切都很顺利。我当然有一个问题:

我/你如何保存我当前的地图? 假设你使用动态标记构建一个地图:由于一切都是通过JavaScript完成的,我需要从文件/数据库中获取/设置这些值。

我在考虑将整个google.map.Markers作为JSON输出并将其作为字符串发送到数据库,但如果我有大约100个地方,我不确定它会有多好,我'我担心效率。

这是唯一的方法吗?我正在思考吗?基本上,您的网站用户可以在地图上放置一个标记,然后进行确认。一旦确认,该标记必须位于地图的最新“版本”中,因此我必须从/向数据库/文件中获取该信息。

提前致谢!

1 个答案:

答案 0 :(得分:3)

我正在创建类似的应用程序,我以这种方式实现它:

我有一个Marker表,其中包含我在标记中使用的每个属性的列(例如纬度,经度,名称,描述,类型等)当有人添加标记时我只是保存标记到数据库的属性。下次我想显示标记我只是从数据库中获取属性,将它们编码为JSON并附加到页面。在页面内部我有JS抓取这些属性并在地图内创建标记。伪代码:

//this is generated dynamically from DB.
var markers = [
                {lat:115416,lng:26411},
                {lat:115416,lng:26411}
              ];

//this is static, just grabs the dynamic bit and puts it on the map:
for (var i = 0; i < markers.length; i++){
   //creates a marker object
   var marker = new Marker({lat:markers[i].lat, lng:markers[i].lng })
   //displays it on the map
   map.addMarker(marker);
}
这样做的好处是数据库中的数据独立于地图实现,例如如果将来你决定转移到苹果地图并且它有不同的实现,你可以编写不同的JS来处理数据。您也可以查询它,例如你可以通过查看lat和lang等来查询附近的地方。