使用带有Python / gsconfig的Postgis SQL视图中的数据创建Geoserver图层

时间:2015-06-12 12:12:20

标签: python postgis geoserver

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

我已经搜索了很多关于这个问题的内容,但我没有找到对我有用的东西。非常感谢您的回复。

1 个答案:

答案 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')