我正在尝试使用gsconfig api获取Python程序,以使用本机SQL中的数据动态创建Geoserver层(就像在Geoserver Web界面上一样)。
我可以创建工作区和数据存储区,但我无法弄清楚如何使用Postgis数据库的sql视图创建图层(例如:select * from table where _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)
我已经搜索了很多关于这个问题的内容,但我没有找到对我有用的东西。非常感谢您的回复。
答案 0 :(得分:1)
2020年更新
您可以简单地使用geoserver-rest库(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')