使用 Python/gsconfig 使用来自 Postgis SQL 视图的数据创建地理服务器图层



我正在尝试使用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')

最新更新