geoserver官方提供了一套rest服务以及相应的使用教程,考虑到官方文档的庞大以及英文教程的难读,在此整理一下使用的方法,因为js存在ajax跨域的问题,使用python作为示例的开发语言。
开发环境:python 2.7(windows用户需要自己去官网下载);curl(windows用户需要自己去官网下载)
一、API列表:
二、以创建工作区为例:
1.首先是rest地址的拼写:
http://GEOSERVER_HOME/rest/+api列表中对应的功能名称,在此为workspaces,
2.官网给出的使用curl的方法:
经本人验证,官网的示例并不能百分百实验成功,所以要理解这个命令自己加以适当的调整。
首先-u后面的admin:geoserver是用户名和密码,这个需要改成自己的,-H后面为发送的content,在此选择的类型为xml,后面跟着的就是xml的内容(如果你想使用json,则修改type和相应的内容,内容模板我们在文章中放出),就是我们在创建工作区时需要输入的参数,在此输入工作区名称即可。
3.上述命令需要在安装了curl的电脑中的命令行中键入使用,我们来编写一个python的脚本完成同样的功能。
#coding=utf-8
#创建工作区
import requests
myUrl = 'http://192.168.3.44:8011/geoserver/rest/workspaces'
file = open('results/createWorkspace.json','r')#results/createWorkspace.json为传入的参数,等同于curl方法中的-d
payload = file.read()
headers = {'Content-type': 'text/json'}
resp = requests.post(myUrl, auth=('admin','geoserver'),data=payload, headers=headers)
print(resp.status_code)#200则成功
createWorkspace.json中的内容,其余操作可参考该模版:
{"seedRequest":{
"name":"newWork"
}
}
依次类推,许多geoserver中的功能都可使用该方法在后台进行代码自动化控制,关于更多的使用在此不做赘述,偷懒贴了一位大牛整理的一些例子:
三、Geowebcache的使用:
在此抨击一下这个教程,照着做切片那部分,根本不行,最后发现是因为bounds是必需的参数,可是教程例子中并没有填。
除此之外说的就比较详细了,我们来进行rest地址的拼写:
http://ip:端口号/geoserver/gwc/rest/seed/工作空间:图层名.json或者是xml,注意这里的后缀json或是xml要与content type对应起来。
其余与上一个例子相同,我们直接贴一下代码即可:
#coding=utf-8
import requests
myUrl = 'http://192.168.3.44:8011/geoserver/gwc/rest/seed/rh:rhtif.json'
file = open('results/requestGeowebcache.json','r')
payload = file.read()
headers = {'Content-type': 'application/json'}
resp = requests.post(myUrl, auth=('admin','geoserver'),data=payload, headers=headers)
print(resp.status_code)
requestGeowebcache.json内容:
{"seedRequest":{
"name":"rh:rhtif",
"bounds":{"coords":{ "double":["-124.0","22.0","66.0","72.0"]}},
"srs":{"number":4326},
"zoomStart":1,
"zoomStop":12,
"format":"image\/png",
"type":"seed",
"threadCount":4
}
}
网友评论