之前使用geoserver
的wfs-t
协议进行geoserver
的图层要素的增删改查,后来发现geoserver
的的url
形式局限挺大,现改用geotools
。
geotools和geoserver的url wfs-t比较
-
geotools的优缺点
- 一次完整的处理过程:
geotools: 获取JDBCDataStore,获取
FeatureWriter<SimpleFeatureType, SimpleFeature>
对象,进行SimpleFeature
的setAttribute
设置属性,执行write()
进行写入,该操作完成后,需要调用it.geosolutions.geoserver.rest.GeoServerRESTPublisher
内相关方法进行geoserver的图层发布- 当执行查询操作时,由于其类设计的问题,导致每一个要素Feature取值时,需要遍历两遍很麻烦;
- 当执行插入操作时,倘若你看了源码会发现有个连接的配置
batchInsertSize
,如果你理解成和mybatisplus的size话,那就错了。这里的batchInsertSize
是指,每次插入选用这个数量,当不足时,弃用。倘若不指定`batchInsertSize``时,默认时1,即生成的最终sql是,一条数据一个sql,效率较慢。举个例子: 当前插入数据为910条时,你设置的
batchInsertSize
为100,则只能插入900条;当你设置为10时,可以全部插入 - 当执行更新操作时,需要获取的是
getFeatureWriter()
,参数务必传入filter,否则是插入。 - 所有的执行操作最终生成的sql都有长度限制!
-
wfs-t
wfs-t : 直接创建
xml
,使用post
发送xml,底层geoserver进行处理。使用http
请求的缺点,请求的长度有限制,且当有多个插入- insert - update - search - 目前尚未发现geotools提供删除的接口操作
有空继续。。
个人正在整理项目中用到的geotools,抽空本人会封装起来。 https://gitee.com/qlanto/geotools-kit