我正在创建类似的应用程序,并以这种方式实现它:
我有一个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 等来查询附近的地方。