openlayers 編輯要素並保存至deoserver中PointOutsideEnvelopeException: 1 outside of (-90.0,90)問題

遇到這個問題,查了好久沒有查到原因,無意間看到別人編輯數據時故意把經緯度搞反了 才發現編輯保存時使用的經緯度跟常規的格式是不一樣的 需要把經緯度給調換下

            var readyToAddFeature = temEditSource.getFeatures();
            var realreadyToAddFeature = new ol.Feature();
            for (var r = 0; r < readyToAddFeature.length; r++) {
                var currentFeature = readyToAddFeature[r].clone();
                var geometry = currentFeature.getGeometry();
                var geometryPoint = new ol.geom.Point([geometry.getCoordinates()[1],geometry.getCoordinates()[0]]);
                realreadyToAddFeature.setGeometryName("Shape");
                realreadyToAddFeature.setGeometry(geometryPoint);
                realreadyToAddFeature.setId('12345678');
                realreadyToAddFeature.set('ZHONGWENMING', "ceshi");
            }

            var WFSTSerializer = new ol.format.WFS();
            // 添加要素(addList, updateList, delList, opt)
            var featObject = WFSTSerializer.writeTransaction([realreadyToAddFeature],
                null, null, {
                    featureType: featureType, //feature對應圖層
                    featureNS: workSpace,//爲創建工作區時的命名空間URI
                    featurePrefix:workSpace,
                    srsName: 'EPSG:4326',// 座標系
                });

當然在保存時還遇到一個問題 就是提示權限爲只讀

<ows:ExceptionText xmlns:ows="http://www.opengis.net/ows">{*****}TABLENAME is read-only</ows:ExceptionText>

這時只要打開geoserver管理界面,點擊左側的Security中的Data,點擊“Rule path”中的“..w”,勾選Grant access to any role下面的單選框,點擊保存即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章