我正在尝试使用最新的Google Map API创建动态地图。到目前为止,一切都很顺利。我当然有一个问题:
我/你如何保存我当前的地图? 假设你使用动态标记构建一个地图:由于一切都是通过JavaScript完成的,我需要从文件/数据库中获取/设置这些值。
我在考虑将整个google.map.Markers作为JSON输出并将其作为字符串发送到数据库,但如果我有大约100个地方,我不确定它会有多好,我'我担心效率。
这是唯一的方法吗?我正在思考吗?基本上,您的网站用户可以在地图上放置一个标记,然后进行确认。一旦确认,该标记必须位于地图的最新“版本”中,因此我必须从/向数据库/文件中获取该信息。
提前致谢!
答案 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等来查询附近的地方。