javascript - 使用 JSON.stringify 和 JSON.parse 将多边形坐标存储到 oracle 中

标签 javascript json google-maps-api-3

我想将谷歌地图多边形覆盖的坐标存储到oracle中并在下一个 session 中显示它。有代码:

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
    });

不幸的是,它不起作用。我无法用这个新数组重建多边形。你能告诉我如何重建多边形吗?

最佳答案

JSON.stringify() 不会保留原始 MVCArray,缺少构造函数。

您最好使用 google.maps.geometry.encoding.encodePath() 创建一个可存储值并在重新使用它之前对其进行解码。

关于javascript - 使用 JSON.stringify 和 JSON.parse 将多边形坐标存储到 oracle 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13981717/

相关文章:

php - 使用 PHP 读取 JSON 数据

c# - 将字符串从 javascript 返回到 c#

javascript - JsLint 'out of scope'错误

ios - 解析嵌套的 JSON 条目

javascript - 模糊事件停止点击事件工作?

json - 使用 restkit 映射到复杂对象

jquery-mobile - 使用 gmap v3 插件的 Jquery 移动 - 刷新标记

javascript - map 应以一个点为中心,并且最近的标记应可见

javascript - 使用 Javascript 且不使用 HTML 5 将消息从页面传递到父框架

javascript - jQuery ajax() 在成功时将 json 对象返回给另一个函数会导致错误