python wms_webGIS实践:4_2_python django整合geoserver wms服务
转发geoserver的WMS服务需要三个方法,一个是get瓦片参数,返回png图片;一个是get矢量要素参数,返回json;一个是post gml到后台。
一、get png
在geoserver.py中添加一个方法。
import requests
# 获取wmts服务
def wmts(request):
url='http://localhost:8080/geoserver/wms?SERVICE=WMS&VERSION=1.1.0&'+\
'REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&tiled=true&'+\
'LAYERS='+request.GET['LAYERS']+'&exceptions=application%2Fvnd.ogc.se_inimage&singleTile=true&SRS=EPSG%3A4326&STYLES=&WIDTH='+\
request.GET['WIDTH']+'&HEIGHT='+request.GET['HEIGHT']+'&BBOX='+request.GET['BBOX']
print(url)
image_data=requests.get(url=url,stream=True)
return HttpResponse(image_data,content_type='image/png')
在urls.py中添加一个访问连接。
url(r'^getwmts$', geoserver.wmts
访问:
127.0.0.1:5000/getwmts?LAYERS=gismap%3Av6_time_pref_pgn_utf_wgs84_geoserver&WIDTH=1263&HEIGHT=134&BBOX=111.09189783417972%2C39.53658281977804%2C123.49882337000003%2C40.85291537860616
效果:
二、get feature
在geoserver.py中添加一个方法。
# 获取要素服务
def getfeature(request):
url='http://localhost:8080/geoserver/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&'+\
'TRANSPARENT=true&QUERY_LAYERS='+request.GET['QUERY_LAYERS']+'&LAYERS='+request.GET['LAYERS']+\
'&exceptions=application%2Fvnd.ogc.se_inimage&INFO_FORMAT=application/json&FEATURE_COUNT=50&X=50&Y=50'+\
'&SRS=EPSG%3A4326&STYLES=&WIDTH=101&HEIGHT=101&BBOX='+request.GET['BBOX']
json_data=requests.get(url=url)
return HttpResponse(json_data,content_type='application/json')
在urls.py中添加一个访问连接。
url(r'^getfeature$', geoserver.getfeature),
访问:
127.0.0.1:5000/getfeature?QUERY_LAYERS=gismap%3Av6_time_pref_pgn_utf_wgs84_geoserver&LAYERS=gismap%3Av6_time_pref_pgn_utf_wgs84_geoserver&BBOX=116.25889429644533%2C40.173365121277484%2C116.25909429644534%2C40.17356512127749
效果:
三、post GML
在geoserver.py中新建一个方法:
# 提交 gml到geoserver
def postgml(request):
ctx ={}
if request.POST:
head = {"Content-Type": "text/xml; charset=UTF-8", "Connection": "close"}
r = requests.post('http://localhost:8080/geoserver/wfs', data=request.POST['gml'], headers=head)
ctx['rlt'] = r.text
return render(request, "postgml.html", ctx)
在urls.py中增加一个链接:
url(r'^postgml$', geoserver.postgml),
在templates文件夹下,新建一个postgml.html的文件:
django post页面
{% csrf_token %}
{{ rlt }}
访问:
在文本框中贴如如下内容:
geometry82.143976 37.149243 85.473018 37.109135 85.312581 34.822926 83.307136 34.2614 82.143976 37.149243name_pyname_pyname_chtestnewname_ftx_coory_coorpres_loctype_pytype_chlev_rankbeg_yrbeg_ruleend_yrend_rulenote_idobj_typesys_idgeo_srccompilergecomplrcheckerent_datebeg_chg_tyend_chg_ty
点击提交,效果如下:
Python django转发完geoserver wms服务后,我们接下来要看怎么把前端的内容放到程序中。
python wms_webGIS实践:4_2_python django整合geoserver wms服务相关推荐
- python 软件工程_软件工程实践之 django/python
outline 本文包括以下内容:outline django: 一个搭建后端服务的工具箱.framework: django vs flask/tornado/spring/laravel rest ...
- python 软件工程,软件工程实践之 django/python | 码农网
软件工程实践系列文章, 会着重讲述实际的工程项目中是如何协作开发软件的. 本文主要介绍了 django/python 系列的 工具 链. outline 本文包括以下内容: outline djang ...
- python入门知识总结,整合类资源
随着人工智能.大数据的时代到来,学习Python的必要性已经显得不言而喻. 只要接触一点编程的同学就知道,我一点也没有言过其实.对于学习Python的重要性,这里不再赘述.今天整理的教程,是给零基础的 ...
- Python机器学习实践指南pdf (中文版带书签)、原书代码、数据集
Python机器学习实践指南 目 录 第1章Python机器学习的生态系统 1 1.1 数据科学/机器学习的工作 流程 2 1.1.1 获取 2 1.1.2 检查和探索 2 1.1.3 清 ...
- 【组队学习】【26期】编程实践(Django网站开发)
编程实践(Django网站开发) 论坛版块: http://datawhale.club/c/team-learning/28-category/28 开源内容: https://github.com ...
- 容器化部署实践之Django应用部署(二)
上一篇文章有些同学感觉不够详细理解起来有些困难,我再来简单解释一下. 我们在开发的情况下: 浏览器请求→ python manage.py runserver(比如8000) → 到应用代码( ...
- python的django介绍_【Python基础知识】Django框架简介
很多初学Python的小伙伴不知道该从何开始学起,其实零基础学习的话可以先学习一些Python基础知识,等基础打牢之后再去接触更加深入的技术,接下来小编就为大家简单介绍一下有关于 Django框架内容 ...
- Python自动化实践
*** Python自动化实践 *** 1.为什么要写代码实现接口自动化 大家知道很多接口测试工具可以实现对接口的测试,如postman.jmeter.fiddler等等,而且使用方便,那么为什么还要 ...
- 时间序列分析ARMA模型原理及Python statsmodels实践(上)
目录 1. 时间序列及相关基本概念 1.1. 时间序列分解 1.2. 时间平稳序列 1.3. 自相关与自相关函数(ACF) 1.4. 白噪声及Ljung-Box检验 1.4.1. 白噪声 1.4.2. ...
最新文章
- nutz oracle配置,nutz的框架NutzDao-自定义SQL
- “TypeError: list indices must be integers or slices, not str”有关报错解决方案
- 虚拟与现实的距离——VR的2016正如移动互联网的2009【下篇】
- 基于xml进行bean装配
- 云服务器有什么好 能让云大佬们竞争如此激烈
- BZOJ3609 [Heoi2014]人人尽说江南好 【博弈】
- 弄清 CSS3 的 transition 和 animation
- 版权归原作者的飞鸽传书(IPMSG)
- Bootstrap-CSS-表单
- Mac磁盘项目管理工具DiskCatalogMaker
- Redis--blpop命令使用
- Multisim: Inverting Amplifier Simulation
- jquery ui 主题_使用jQuery UI主题
- 网页设计颜色及平面设计的常用16进制+RGB色值表参考大全
- EventLog Analyzer:功能丰富的事件日志管理软件
- 微信小程序+.NET(六) 科大讯飞语音接口-tts语音生成
- Advanced Archive Password Recovery下载
- 2020下半年,最接地气的字节跳动Android面经分享(已收offer
- java URL java.net.URL类的使用 详细介绍 URL转义 解决URL中文字符
- 云栖小镇通勤车_云栖小镇通勤特快线即将上线!@上班族们,冬日上班新姿势快来Get!...