【发布时间】:2012-12-08 12:52:45
【问题描述】:
我想将谷歌地图多边形覆盖的坐标存储到 oracle 中并在下一次会话中显示。有代码:
function savePolygons(){
$.post('oracle_deletePolygons.php');
for (var i = 0; i < createdShapes.length; i++){
var nom_zone = escape(document.getElementById('nom_zone_' + createdShapes[i].id).value);
var couleur = escape(createdShapes[i].fillColor);
var code_cs = escape('711');
var shapeid_export = escape(createdShapes[i].id);
var geometry = createdShapes[i].getPath().getArray();
geometry = JSON.stringify(geometry);
var url1 = "oracle_savePolygons.php?nom_zone=" + nom_zone + "&couleur=" + couleur + "&code_cs=" + code_cs + "&shapeid_export=" + shapeid_export + "&geometry=" + geometry;
$.get(url1);
}
}
我使用 JSON.stringify 将多边形的路径数组转换为文本,返回:
[{"Ya":53.4357192066942,"Za":-75.82763671875},{"Ya":52.40241887397331,"Za":-77.3876953125},{"Ya":51.781435604431195,"Za":-74.0478515625}]
在使用 php 将 oracle 表的数据解析为 javascript var 后,我使用 JSON.parse 将字符串转换回这样的坐标数组以重建多边形:
function addPolygons(shapeId_import, nom_zone, couleur, geometry){
geometry = JSON.parse(geometry);
var newPolygon = new google.maps.Polygon({
paths: geometry,
fillColor: couleur,
fillOpacity: 0.45,
strokeWeight: 1,
editable: false,
shapeid: shapeId_import,
map:map
});
不幸的是,它不起作用。我不能用这个新数组重建多边形。你能告诉我如何以这种方式重建多边形吗?
【问题讨论】:
-
你的问题是.....?
-
您确定
geometry是您认为的那样吗?它是一个包含 JSON 的字符串吗?什么错误? -
geometry 是我使用此方法存储多边形每个顶点坐标的变量: var geometry = createdShapes[i].getPath().getArray();
-
我的意思是在
addPolygons函数中。
标签: javascript json google-maps-api-3