我有一个谷歌地图多边形对象:
var poly = new google.maps.Polygon({
paths: [
new google.maps.LatLng(25.774252, -80.190262),
new google.maps.LatLng(18.466465, -66.118292),
new google.maps.LatLng(32.321384, -64.75737)
]
});
我正在尝试通过 jquery 的 AJAX 将其发送到 MySQL 数据库:
$.post("savePolygon.php", {polygon: poly});
我在控制台中收到此错误:
TypeError: Cannot call method 'lat' of undefined
我看过其他一些关于保存多边形的帖子,他们都说从多边形中提取 latLng 并将它们保存在数据库中。当我这样做时:
var latLngs = poly.getPath().getArray();
$.post("savePolygon.php", {polygon: latLngs});
我犯了同样的错误。数组的原型中似乎有一个名为“lat”的函数。我想知道如何准确提取这些值并通过 AJAX 发送它们,以及为什么会收到此错误?
Use google.maps.geometry.encoding.encodePath()对路径进行编码。此方法返回一个字符串,非常适合存储到数据库中。为了重用,使用以下方法解码字符串google.maps.geometry.encoding.decodePath()
请注意:默认情况下不加载几何库,您必须通过附加来加载它&libraries=geometry
到maps-API-脚本的src。
解释为什么不能直接存储路径(例如 JSON):
当您存储包含 LatLng 的路径(数组)时,您将丢失 LatLng 的原型,这是至关重要的,因为它定义了检索属性的方法(lat()
and lng()
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)