我正在尝试使用gsconfig api获取一个Python程序,以使用来自本机SQL的数据动态创建地理服务器图层(就像您在Geoserver Web界面上所做的那样)。
我可以创建工作区和数据存储,但我不知道如何使用 Postgis 数据库的 sql 视图创建层(例如:从_filter_clause_的表中选择 *)。
这是我拥有的当前Python代码。
from geoserver.catalog import Catalog
if __name__ == '__main__':
cat = Catalog("http://localhost:8080/geoserver/rest", username = "admin", password = "geoserver")
ws = cat.get_workspace ("wsProva")
if ws is None:
ws = cat.create_workspace('wsProva','wsProva')
ds = cat.get_store ("dsProva", "wsProva")
if ds is None:
ds = cat.create_datastore('dsProva','wsProva')
ds.connection_parameters.update (host='localhost', port='5432', database='dbtest', user='userdb', passwd='pwddb', dbtype='postgis', schema='postgis')
cat.save(ds)
我已经用谷歌搜索了很多关于这个问题的信息,但我没有找到任何对我有用的东西。非常感谢您的回复。
2020 年更新,
您可以简单地使用地理服务器-休息库 ( pip install geoserver-rest
)。示例案例如下,
#import and initialize library
from geo.Geoserver import Geoserver
geo = Geoserver('http://localhost:8080/geoserver', username='admin', password='geoserver')
# create feature store and publish layer
geo.create_featurestore(store_name='geo_data', workspace='demo', db='postgres', host='localhost', pg_user='postgres', pg_password='admin')
geo.publish_featurestore(workspace='demo', store_name='geo_data', pg_table='geodata_table_name')