- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在通过 geoservers wfs 将 ol3 中的功能发布到 postgis db 时遇到问题。当我运行此代码时,我只能插入 gid(pk) 和 bin 列,但_geom(Geometry) 列为空。
function addInteraction() {
draw = new ol.interaction.Draw({
features: featureOverlay.getFeatures(),
type: /** @type {ol.geom.GeometryType} */ (typeSelect.value)
});
draw.on('drawend', function(evt) {
var feature = evt.feature;
feature.set('bin', 0);
var fid = feature.getId();
var node = format.writeTransaction([feature], null, null, {
gmlOptions: {srsName: "EPSG:3857"},
featureNS: "fiware",
featureType: "nyc_buildings"
});
$.ajax({
type: "POST",
url: "http://192.168.4.33:9090/geoserver/wfs",
data: new XMLSerializer().serializeToString(node),
contentType: 'text/xml',
success: function(data) {
var result = format.readTransactionResponse(data);
feature.setId(result.insertIds[0]);
},
error: function(e) {
var errorMsg = e? (e.status + ' ' + e.statusText) : "";
bootbox.alert('Error saving this feature to GeoServer.<br><br>'
+ errorMsg);
},
context: this
});
});
map.addInteraction(draw);
}
我得到的XML是:
<Transaction xmlns="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/WFS-transaction.xsd http://192.168.4.33:9090/geoserver/grp/wfs/DescribeFeatureType?typename=fiware:nyc_buildings">
<Insert>
<nyc_buildings>
<geometry>
<Polygon xmlns="http://www.opengis.net/gml" srsName="EPSG:3857">
<exterior>
<LinearRing srsName="EPSG:3857">
<posList>-12682023.77343518 4567060.841291264 -11077457.675672762 2571137.15870874 -9629434.611838378 5819405.112715591 -12682023.77343518 4567060.841291264
</posList>
</LinearRing>
</exterior>
</Polygon>
</geometry>
<bin>0</bin>
</nyc_buildings>
</Insert>
</Transaction>
我知道它有效的 xml 是:
<wfs:Transaction
service="WFS"
version="1.1.0"
xmlns:fiware="fiware"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/WFS-transaction.xsd
http://192.168.4.33:9090/geoserver/grp/wfs /DescribeFeatureType?typename=fiware:nyc_buildings">
<wfs:Insert>
<fiware:nyc_buildings>
<fiware:bin>0</fiware:bin>
<fiware:the_geom>
<gml:MultiSurface srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#2908">
<gml:surfaceMember>
<gml:Polygon srsDimension="2">
<gml:exterior>
<gml:LinearRing srsDimension="2">
<gml:posList>988431.501 208900.429 988414.001 208910.222 988393.197 208921.866 988439.703 209005.415 988460.579 208993.729 988481.799 208981.856 988462.619 208948.07 988456.73 208951.37 988442.511 208925.97 988448.961 208922.361 988439.27 208904.93 988435.53 208898.25 988431.501 208900.429</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</fiware:the_geom>
</fiware:nyc_buildings>
</wfs:Insert>
有什么想法吗?
最佳答案
这里是关于 wfs-t 的更完整的代码:
var format = new ol.format.WFS({featureNS:"fiware",featureType:'fw_core',schemaLocation:"http://www.opengis.net/wfs \
http://schemas.opengis.net/wfs/1.1.0/WFS-transaction.xsd \
http://192.168.4.33:9090/geoserver/grp/wfs/DescribeFeatureType?typename=fiware:fw_core"});
function addInteraction() {
draw = new ol.interaction.Draw({
features: featureOverlay.getFeatures(),
type: /** @type {ol.geom.GeometryType} */ (typeSelect.value)
});
draw.on('drawend', function(evt) {
// create a unique id
// it is later needed to delete features
// give the feature this id
var feature = evt.feature;
feature.set('geometry', feature.getGeometry());
var node = format.writeTransaction([feature], null, null, {
gmlOptions: {srsName: "EPSG:3857"},
featureNS: "fiware",
featureType: "fiware:fw_core"
});
$.ajax({
type: "POST",
url: "http://192.168.4.33:9090/geoserver/wfs",
data: new XMLSerializer().serializeToString(node),
contentType: 'text/xml',
success: function(data) {
var result = format.readTransactionResponse(data);
feature.setId(result.insertIds[0]);
},
error: function(e) {
var errorMsg = e? (e.status + ' ' + e.statusText) : "";
bootbox.alert('Error saving this feature to GeoServer.<br><br>'
+ errorMsg);
},
context: this
});
});
map.addInteraction(draw);
}
此外,在 Geoserver 上定义矢量图层时,在发布选项卡中,您必须定义用作几何列的列。
另一件事,根据 OpenLayers 3 版本,您可能需要在这行代码中使用 node.impl 而不仅仅是 node:
new XMLSerializer().serializeToString(node.impl)
希望对你有帮助!
关于postgis - Openlayers-3 WFS-T(通过 geoserver 将功能发布到 postgis),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30440460/
我最近尝试在 Lubuntu 14.04 服务器上安装带有 Tomcat7 的 GeoServer,但遇到了很多问题,因为 Tomcat7 的 Java 默认版本设置为 1.7。昨晚我为此苦苦挣扎,我
有人知道为什么geoserver在设置图层时不实现直接sql查询吗? 最佳答案 开发人员还没有抽出时间来解决这个问题。 (对此功能的需求并不大,因为 GeoServer 可以像表格一样轻松地提供数据库
这几天一直在纠结一个大问题——如何通过Geoserver获取矢量图 block ?我找了很多文档和博客,有一些对问题有用的资源,一步一步操作很容易: http://suite.opengeo.org/
我是 GeoServer/数据库世界的新手。我以前从未做过任何数据库工作,但作为学生实习的一部分,我需要使用 GeoServer 设置 WMS。 我在独立模式下使用 GeoServer 2.0.1(使
我试图通过在geoserver中使用WFS GetFeature来获取一些按GML格式的日期过滤的数据,但该操作忽略了时间参数,只返回一个包含所有数据的巨大GML文件。这是我正在使用的查询: http
我想在我的 tomcat Web 服务器中运行 geoserver web archive。我使用的是 tomcat 8。 我从 geoserver 下载 GeoServer 2.7.1.1 web
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我正在使用 Geoserver 2.1.1 版、Postgres 9 和 PostGIS 2.0 我想要实现的目标应该(我认为!)非常直截了当。我想在 map 上绘制一条线,代表地球表面两个城市之间的
我一直在搜索很多,但没有找到关于 Geoserver 可以处理多少并发用户的明确经验法则,无论是在 Tomcat 还是 Glassfish 容器中。 假设在高峰时段可能有大约 400 个并发用户,并且
我正在对 Geoserver 源代码进行一些更改。 我使用了来自 here 的快速入门指南.我完成了指南中的所有步骤,效果很好。当我使用 web-app/org.geoserver.web/start
我准备使用redis作为geoserver的web缓存,所以需要了解geoserver中的数据库连接。我已经在 Eclipse 中导入了 geoserver,并且有两个名为 gs-sec-jdbc 和
本文整理了Java中org.geoserver.wfs.WFSException类的一些代码示例,展示了WFSException类的具体用法。这些代码示例主要来源于Github/Stackoverfl
本文整理了Java中org.geoserver.wms.WMSInfoImpl类的一些代码示例,展示了WMSInfoImpl类的具体用法。这些代码示例主要来源于Github/Stackoverflow
本文整理了Java中org.geoserver.catalog.WMTSStoreInfo类的一些代码示例,展示了WMTSStoreInfo类的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中org.geoserver.security.WorkspaceAccessLimits类的一些代码示例,展示了WorkspaceAccessLimits类的具体用法。这些代码示例
本文整理了Java中org.geoserver.wfs.WFSGetFeatureOutputFormat类的一些代码示例,展示了WFSGetFeatureOutputFormat类的具体用法。这些代
本文整理了Java中org.geoserver.ysld.YsldHandler类的一些代码示例,展示了YsldHandler类的具体用法。这些代码示例主要来源于Github/Stackoverflo
我正在使用 Geoserver 和 SQL Server 2008。 我有一个表,其中有一列 [geography] 类型。我能够看到 Geoserver 中显示的表(我已经安装了 SQL Serve
我使用 geoserver 2.0.1,我使用 textsymbolizer 来标记 map 上的要素。地理服务器可能不支持 '' 标签,因为我尝试更改字体大小、字体系列或 .. 它没有效果。如何在不
我在 OS X 10.10 上的 Tomcat 7.0.62 上运行 GeoServer 2.7.1。我已经使用 Homebrew 安装了 Tomcat,并将 GeoServer 2.7.1 war
我是一名优秀的程序员,十分优秀!