转发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服务相关推荐

  1. python 软件工程_软件工程实践之 django/python

    outline 本文包括以下内容:outline django: 一个搭建后端服务的工具箱.framework: django vs flask/tornado/spring/laravel rest ...

  2. python 软件工程,软件工程实践之 django/python | 码农网

    软件工程实践系列文章, 会着重讲述实际的工程项目中是如何协作开发软件的. 本文主要介绍了 django/python 系列的 工具 链. outline 本文包括以下内容: outline djang ...

  3. python入门知识总结,整合类资源

    随着人工智能.大数据的时代到来,学习Python的必要性已经显得不言而喻. 只要接触一点编程的同学就知道,我一点也没有言过其实.对于学习Python的重要性,这里不再赘述.今天整理的教程,是给零基础的 ...

  4. Python机器学习实践指南pdf (中文版带书签)、原书代码、数据集

    Python机器学习实践指南 目 录  第1章Python机器学习的生态系统 1  1.1 数据科学/机器学习的工作  流程 2  1.1.1 获取 2  1.1.2 检查和探索 2  1.1.3 清 ...

  5. 【组队学习】【26期】编程实践(Django网站开发)

    编程实践(Django网站开发) 论坛版块: http://datawhale.club/c/team-learning/28-category/28 开源内容: https://github.com ...

  6. 容器化部署实践之Django应用部署(二)

    上一篇文章有些同学感觉不够详细理解起来有些困难,我再来简单解释一下. 我们在开发的情况下:     浏览器请求→ python manage.py runserver(比如8000) → 到应用代码( ...

  7. python的django介绍_【Python基础知识】Django框架简介

    很多初学Python的小伙伴不知道该从何开始学起,其实零基础学习的话可以先学习一些Python基础知识,等基础打牢之后再去接触更加深入的技术,接下来小编就为大家简单介绍一下有关于 Django框架内容 ...

  8. Python自动化实践

    *** Python自动化实践 *** 1.为什么要写代码实现接口自动化 大家知道很多接口测试工具可以实现对接口的测试,如postman.jmeter.fiddler等等,而且使用方便,那么为什么还要 ...

  9. 时间序列分析ARMA模型原理及Python statsmodels实践(上)

    目录 1. 时间序列及相关基本概念 1.1. 时间序列分解 1.2. 时间平稳序列 1.3. 自相关与自相关函数(ACF) 1.4. 白噪声及Ljung-Box检验 1.4.1. 白噪声 1.4.2. ...

最新文章

  1. nutz oracle配置,nutz的框架NutzDao-自定义SQL
  2. “TypeError: list indices must be integers or slices, not str”有关报错解决方案
  3. 虚拟与现实的距离——VR的2016正如移动互联网的2009【下篇】
  4. 基于xml进行bean装配
  5. 云服务器有什么好 能让云大佬们竞争如此激烈
  6. BZOJ3609 [Heoi2014]人人尽说江南好 【博弈】
  7. 弄清 CSS3 的 transition 和 animation
  8. 版权归原作者的飞鸽传书(IPMSG)
  9. Bootstrap-CSS-表单
  10. Mac磁盘项目管理工具DiskCatalogMaker
  11. Redis--blpop命令使用
  12. Multisim: Inverting Amplifier Simulation
  13. jquery ui 主题_使用jQuery UI主题
  14. 网页设计颜色及平面设计的常用16进制+RGB色值表参考大全
  15. EventLog Analyzer:功能丰富的事件日志管理软件
  16. 微信小程序+.NET(六) 科大讯飞语音接口-tts语音生成
  17. Advanced Archive Password Recovery下载
  18. 2020下半年,最接地气的字节跳动Android面经分享(已收offer
  19. java URL java.net.URL类的使用 详细介绍 URL转义 解决URL中文字符
  20. 云栖小镇通勤车_云栖小镇通勤特快线即将上线!@上班族们,冬日上班新姿势快来Get!...

热门文章

  1. cefpython基础入门
  2. mysql view在测试过程的应用
  3. 错过校招_您可能错过的Web优化技巧
  4. 面试 技术 教训_我如何应用从失败的技术面试中学到的经验教训来获得5个工作机会
  5. Python3十大经典错误及解决办法
  6. 自己专属的Ubuntu系统伪装Mac
  7. Spring(1)-IOC
  8. 【CCF】201609-2火车购票
  9. CS231n课程笔记5.4:超参数的选择交叉验证
  10. 数电与模电的根本区别 转