从演示插入交易不适用于我(docker kartoza)

我是geoserver的新手,我正在尝试了解基础知识。 所以期待(我确实)错过了一个明显的细节: – /。

我在geoserver web界面中的Demos中插入事务请求有问题。 简单地说,它没有显示任何预览(tasmania_roads),如我所料。 相反,更新演示工作正常。 以下是如何重现。

我已经在我的linux工作站上的dockerhub上从kartoza安装了geoserver + postgis。

https://hub.docker.com/r/kartoza/geoserver/

它可以正常工作:

$ docker pull kartoza/postgis $ docker pull kartoza/geoserver $ docker run --name "postgis" -d -t kartoza/postgis $ docker run --name "geoserver" --link postgis:postgis -p 8080:8080 -d -t kartoza/geoserver` 

geoserver web界面位于172.17.0.3:8080,服务器是干净的(在geoserver和postgis上没有pipe理员访问)。

现在我把这个demo的代码(geoserver web界面左边的Demos链接,并select请求“WFS_transactionInsert.xml”),并将其复制到一个文件(DemoInsert)中。 我修改了geoserver的IP,结果如下:

 <wfs:Transaction service="WFS" version="1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:topp="http://www.openplans.org/topp" 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.0.0/WFS-transaction.xsd http://www.openplans.org/topp http://172.17.0.3:8080/geoserver/wfs/DescribeFeatureType?typename=topp:tasmania_roads"> <wfs:Insert> <topp:tasmania_roads> <topp:the_geom> <gml:MultiLineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:lineStringMember> <gml:LineString> <gml:coordinates decimal="." cs="," ts=" "> 494475.71056415,5433016.8189323 494982.70115662,5435041.95096618 </gml:coordinates> </gml:LineString> </gml:lineStringMember> </gml:MultiLineString> </topp:the_geom> <topp:TYPE>alley</topp:TYPE> </topp:tasmania_roads> </wfs:Insert> 

最后我把查询发送到geoserver:

 curl -X POST -d @DemoInsert -H "Content-Type: text/xml" http://172.17.0.3:8080/geoserver/wfs 

答复是:

 <?xml version="1.0" encoding="UTF-8"?> <wfs:WFS_TransactionResponse version="1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://172.17.0.3:8080/geoserver/schemas/wfs/1.0.0/WFS-transaction.xsd"> <wfs:InsertResult> <ogc:FeatureId fid="new0"/> </wfs:InsertResult> <wfs:TransactionResult> <wfs:Status> <wfs:SUCCESS/> </wfs:Status> </wfs:TransactionResult> </wfs:WFS_TransactionResponse> 

(这里我添加了一些换行符)。

但是,在地图服务器Web界面的“数据”图层预览中看到的地图上没有任何反应。 请注意,与更新交易演示类似的技巧完美。

任何人都可以帮助我?

谢谢…

你已经告诉GeoServer你正在添加的function是在EPSG:4326(这是srsName="http://www.opengis.net/gml/srs/epsg.xml#4326" ),但你的坐标是

 494475.71056415,5433016.8189323 494982.70115662,5435041.95096618 

这显然不在经度和纬度。 所以GeoServer已经添加了它们,但是离塔斯马尼亚还有很一段距离,所以你不能看到它们,除非你缩小了很多,然后它们太小而看不到。

所以你要么使用正确的投影信息为您的几何(我不能确定,但​​也许EPSG:3758 Web墨卡托?)或提供经度/纬度格式的坐标。

您可能还想在GeoServer Jira上提出关于此错误的错误。