在localStorage中添加Google Maps Marker

时间:2014-03-26 21:04:27

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

有没有办法将用户创建的标记添加到localStorage?如果浏览器刷新或关闭,我想检索用户添加的标记的相同坐标。似乎localStorage可以帮助实现这一目标。

我正在尝试如下的事情,这看起来并不正确。请注意,我是JavaScript的新手。

google.maps.event.addListener(marker, "dragend", function() {
        localStorage.setItem('marker',true);
        localStorage.getItem('marker');
});

我认为可能是在localStorage设置了标记,但在页面刷新时我无法看到它。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您尝试存储标记本身,您将收到错误"将循环结构转换为JSON",即使在对其进行字符串化之后也是如此。此外,它还会存储您可能不需要的额外数据。由于篇幅限制,我建议您尽可能少地在浏览器中存储。

您可以做的是创建数据类型以保存标记(lat和long)的信息并存储此对象。请参阅以下内容....

var latlng = new google.maps.LatLng(42.123456789, -36.123456789); 
var marker = new google.maps.Marker({
                position: latlng
            });
var newMarker = {Lat: marker.position.lat(), Lng: marker.position.lng()};
localStorage["marker1"] = JSON.stringify(newMarker);
console.log(localStorage["marker1"]);

在这里玩:http://jsfiddle.net/94qhJ/