2

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

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

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

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

提前致谢!

4

1 回答 1

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 等来查询附近的地方。

于 2012-08-05T23:49:58.763 回答