gpt4 book ai didi

java - 动态更新 Geoserver 的输入

转载 作者:行者123 更新时间:2023-11-29 06:57:12 25 4
gpt4 key购买 nike

我希望有人可以帮助我解决这个问题,因为我已经尝试了很长时间但没有成功找到解决方案。

我有一个多边形形状文件,我正在使用 geoserver 在浏览器上显示它。我根据形状文件中其中一个属性(比如“计数”)的值对多边形进行了颜色编码(通过创建 SLD 文件)。

我的问题是我想定期(每天)更新“计数”属性(它是一个整数),因此我想在地理服务器中反射(reflect)这一变化。我正在通过已启动并正在运行的 Java 服务获取“计数”属性的值。但到目前为止,我还没有找到一种方法可以通过 java 更新形状文件中的单个属性(针对所有功能)。 geoTools 库帮助我读取形状文件,但我找不到使用该库修改属性的方法。

我该怎么做?请帮我解决以下问题:

  1. geoserver 是否适合我的用例?
  2. 有没有什么方法可以使用 java 更新形状文件的属性?
  3. 我应该继续使用形状文件还是转向 POSTGIS?
  4. 我们可以使用 java 更新 POSTGIS 中要素的属性吗?

最佳答案

  1. 如果您只需要显示一层,并且该层不是很大(shapefile 的大小是多少?)我会将文件转换为 geojson并直接在浏览器中显示。

当基础数据不变时,Geoserver 通常与 shapefile 一起使用。如果不是一般用postgis

  1. 当然可以。 Geotools can do it .但是 geoserver 也可以使用 WFS-T 来做到这一点.只需启用它并使用 POST 请求或 geotools wrapper更新数据。

我认为最好的选择是为您支持的进程创建一个新用户,并添加一个仅允许该用户使用 wfs.Transaction 的安全规则。您可以在支持的进程中使用基本的 http 身份验证来启动更新 shapefile 的 POST http 请求。

  1. 视情况而定。如果是一个 shapefile 并且它不更改日志(一天一次),我可能会按以下顺序使用:

geojson直接显示在浏览器中(没有geoserver)-> shapefile + geoserver -> postgis + geoserver

  1. 当然。一个 postgis 图层只是一个带有几何类型列的 postgresql 表。您可以像更新 postgresql 中的任何其他表一样更新您的表。

我现在不能提供一个完整的例子来更新 shapefile 与 geotools 但检查 2这个links .

  • 如第二个链接的访问部分所示打开 shapefile
  • 如第一个链接所示打开交易
  • 使用功能实例的 setAttribute 方法
  • 结束交易

关于java - 动态更新 Geoserver 的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32265269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com