GeoServer编辑要素到postGIS配置问题(WFS-T)
一、空间数据库PostGIS注意问题
1. PostGIS中进行编辑的数据表应具有编辑的权限,如Insert、Update、Delete,设置方法见下图。通过添加/修改用户/组,将权限赋予相应的用户。
2. 数据表中几何字段(geom/geometry)的类型(Point/MultiPoint、LineString/MultiLineString、Polygon/MultiPolygon)应与Openlayer/leaflet中编辑要素的几何类型一致,如不能一个为Point,一个为MultiPoint。这应在创建表格或Shapefile文件入库时确定(详细信息可参见Shapefile导入PostGIS的两种方法介绍及比较),或在Openlayer/leaflet中对要素的几何类型进行设置。
3. 进行WFS-T操作的数据表,必须有主键(primary key),否则会出现read-only的错误提示。
二、GIS服务器GeoServer注意问题
1. 因WFS-T操作涉及事物,故WFS服务的级别应为Transaction/Complete,如下图所示:
2. 若在ajax请求中没有设置连接GeoServer的用户名和密码(username/password),则应在Security→Data中进行设置,将ROLE_ANONYMOUS添加到选择的角色中,如下图所示。但是这种设置有弊端,一旦其他用户知道了GeoServer中WFS的地址,就能对数据进行随意修改。
3. 可在设置→全球中,设置以开发者模式(Developer)记录WFS执行的详细信息,通过日志可查看WFS执行的详细过程,遇到问题也能快速定位问题所在并解决,如下图所示。日志文件在 data_dir路径的logs文件夹下,记录个人资料可选择GEOTOOLS_DEVELOPER_LOGGING.properties或VERBOSE_LOGGING.properties,后者记录的信息更详细,其他区别还不清楚。