Geoserver restAPI

废话写在前面:

最近换了家公司从以前的CS端变成了数据处理,于是与geoserver  和MAPGIS这些服务器打交道,但是对geoserver 进行二开和拓展 菜J选择了后者于是接触到了RestApi 这个玩意,用的catalog但是写着写着就发现很多问题,尤其是发布的图层没法重命名的问题导致很多的不变。

from geoserver.catalog import Catalog

就这个库里面毛病用过的都知道一言难尽,菜J也是找了个把星期的平替,找到了这个库
from geo.Geoserver import Geoserver

双剑合并就解决了很多乱七八糟的问题
上代码:

创建工作空间
cat = Catalog(url, username, password) 

geo = Geoserver(url, username, password)

cat.create_workspace(workname,workspaceurl)

创建数据存储

 workspacename = cat.get_workspace(config["workspacename"])           
 datastore =cat.create_datastore(storename,workspacename)

发布样式

cat.create_style(name=style_name, data=style.read(), overwrite=True,workspace=workname)

def  POSTGIScreate_datastorges(cat,workname,storename,layname,datastoreA,a,geo):


 #发布POSTGIS数据   
  geo.publish_featurestore(store_name=storename,pg_table=a["tablename"],workspace=workname,title=layname,cqlfilter=a["CQL_filter"]) 
  #图层改名
    geo.edit_featuretype(store_name=storename,workspace=workname,pg_table=a["tablename"],name=layname,title=layname)
 #样式插入
    stylename = a["layerstylename"]
    styleworkspace = a["layerstyleworkspace"]
    style = cat.get_style(stylename,workspace = styleworkspace)
    if style != None:
        geo.publish_style(layer_name=layname, style_name=stylename, workspace=workname)

发布SHP

datastore =cat.create_featurestore(storename,data,workspacename) 

#样式插入
stylename = i["layers"][0]["layerstylename"]
if stylename !="":
     lay = cat.get_layer(storename)
     style = cat.get_style(stylename,workspace = workname)
     lay.default_style = style
     cat.save(lay)

看代码就能知道geo主要用于修改图层名和获取某个样式因为cat 确实很多地方获取的逻辑有毛病cat和geo我是混着用的。

注意,最后提醒一点不论是geo 还是cat 这两个库的源码是可以修改的参数有毛病或者数据格式有毛病的都可以改,菜J也是一通乱改才能跑起来但是函数接口也就那么几个逻辑顺序和AE二次开发很接近都是  工作空间  数据集  要素 这么个顺序 有点变化的是SHP的发布是和存储绑在一起的这点要注意。更多的cat的例子看这里

Python catalog.Catalog类代码示例 - 纯净天空

写完之后再写上配套的配置文件config.json  就能一键发布服务了爽歪歪。

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值