Zia*_*rno 1 javascript jquery google-maps google-maps-api-3
我有一个谷歌地图多边形对象:
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)
]
});
Run Code Online (Sandbox Code Playgroud)
我正试图通过jquery的AJAX将它发送到MySQL数据库:
$.post("savePolygon.php", {polygon: poly});
Run Code Online (Sandbox Code Playgroud)
我在控制台中收到此错误:
TypeError: Cannot call method 'lat' of undefined
Run Code Online (Sandbox Code Playgroud)
我已经看过一些关于保存多边形的帖子,他们都说要从poly中提取latLng并将它们保存在db中.当我这样做时:
var latLngs = poly.getPath().getArray();
$.post("savePolygon.php", {polygon: latLngs});
Run Code Online (Sandbox Code Playgroud)
我犯了同样的错误.似乎数组的原型中有一个名为'lat'的函数.我想知道如何提取这些值并通过AJAX发送它们,以及为什么我会收到此错误?
使用google.maps.geometry.encoding.encodePath()来编码路径.此方法返回一个字符串,非常适合存储到DB中.为了重用,请使用解码字符串 google.maps.geometry.encoding.decodePath()
请注意:默认情况下不加载geometry-library,您必须通过附加&libraries=geometry到maps-API-script的src来加载它.
解释为什么你不能直接存储路径(例如作为JSON):
当你存储包含LatLng的路径(数组)时,你将失去LatLng的原型,这是必不可少的,因为它定义了检索方法属性(lat()和lng())
| 归档时间: |
|
| 查看次数: |
1496 次 |
| 最近记录: |