首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从demo插入事务对我不起作用(docker kartoza)

从demo插入事务对我不起作用(docker kartoza)
EN

Stack Overflow用户
提问于 2015-11-25 18:38:12
回答 1查看 264关注 0票数 1

我是geoserver的新手,我正在尝试了解基础知识。因此,我希望(我确实)忽略了一个明显的细节:-/。

我对geoserver web界面中提供的Demo中的插入事务请求有问题。简单地说,正如我所期望的那样,它没有在预览(tasmania_roads)上显示任何内容。相反,更新演示运行正常。下面是重现的方法。

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

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

它在以下情况下工作正常:

代码语言:javascript
复制
$ 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上没有管理员访问权限)。

现在我剪切了演示的代码(链接到geoserver web界面左侧的演示并选择request "WFS_transactionInsert.xml"),并将其复制到一个文件(DemoInsert)中。我修改了geoserver的IP,结果如下:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
curl -X POST -d @DemoInsert -H "Content-Type: text/xml" http://172.17.0.3:8080/geoserver/wfs

答案是:

代码语言:javascript
复制
<?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>

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

但我在geoserver web界面的Data,Layer Preview中看到的地图上没有任何变化。请注意,Update Transaction演示程序中的类似技巧可以完美地发挥作用。

有人能帮我吗?

谢谢..。

EN

回答 1

Stack Overflow用户

发布于 2015-11-26 17:04:45

您已经告诉GeoServer,您要添加的要素是EPSG:4326 (即srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"),但您的坐标是

代码语言:javascript
复制
494475.71056415,5433016.8189323 494982.70115662,5435041.95096618

显然不是在纬度和经度上。所以GeoServer已经添加了它们,但是它们离塔斯马尼亚岛很远,所以你看不到它们,除非你把它们放大很多,然后它们就太小看不见了。

因此,您要么需要为几何图形使用正确的投影信息(我不能确定,但可能是EPSG:3758Web墨卡托?)或者以纬度/经度格式提供坐标。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33914272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档