2012-08-05 101 views
2

我正在尝试使用最新的Google地图API创建动态地图。到目前为止,一切都很顺利。我确实有一个问题:谷歌地图 - 保存动态地图

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

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

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

在此先感谢!

回答

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

+0

感谢您的回复valentina。我的发展远远落后,但你的洞察力与我的期望相符。尽管将标记选项保留为db中的列是一个好主意,但不要直接转储JSON对象。谢谢你的提示。只有一件事,你如何创建标记对象?您是否使用动态JavaScript文件,如