我是 geoserver 的新手,我正在尝试了解基础知识。所以期望(我愿意)我错过了一个明显的细节:-/。
我对地理服务器 Web 界面中可用的演示中的插入事务请求有疑问。简而言之,正如我所料,它在预览版 (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 上没有管理员访问权限)。
现在我剪切演示的代码(链接地理服务器 Web 界面左侧的 Demos 并选择请求“WFS_transactionInsert.xml”)并将其复制到文件中(DemoInsert)。我修改了地理服务器的 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>
最后我将查询发布到地理服务器:
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 界面的数据、图层预览中看到的地图上没有任何反应。请注意,Update Transaction 演示中的类似技巧非常有效。
任何人都可以帮助我吗?
谢谢...