OpenLayers3 学习心得(四)——空间查询
2014-11-20 14:27
393 查看
空间查询是GIS的一个重要的功能,根据空间查询可进行专题图分析、统计分析、缓冲区分析以及周边查询等。本实例介绍的查询是基于Image图层的查询,其他图层的查询方法一样。Ol的查询对ogc标准(ogc规范不在本文讨论范围内)查询进行了一定的封装,开发人员同样可以自己根据ogc标准进行要素的属性信息等进行查询。实例很简单,同时也是上述复杂查询的基础,掌握好基础才能进行复杂的工作。
初始化图层
首先,新建wms的数据源:
其次,创建image图层:
初始化地图
设置视图,中心点(0,0),缩放级别1:
初始化地图,将初始化的wmsLayer和view赋值给新建的地图:
注册地图的单击事件,在单击后获取地图的地理坐标,通过wmsSource.getGetFeatureInfoUrl()方法获取符合ogc标准的url。代码如下:
整个初始化函数如下:
1创建页面
新建名为getImageFeatureInfo的html,页面内容如下:<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>获取image layer的要素信息</title> <link rel="stylesheet" href="../css/ol.css"> <link rel="stylesheet" href="../css/bootstrap.min.css"> <link rel="stylesheet" href="../css/bootstrap-responsive.min.css"> <link rel="stylesheet" href="../css/layout.css"> <script type="text/javascript" src="../ol3/ol-debug.js"></script> <script type="text/javascript" src="../goog/base.js"></script> <script type="text/javascript" src="../plugins/jquery2.1.1.js"></script> <script type="text/javascript" src="../example/example-behaviour.js"></script> <script type="text/javascript" src="../example/getImageFeatureInfo.js"></script> </head> <body onload="init()"> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="brand" href="./"><img src="../images/logo.png">OL3 Example</a> </div> </div> </div> <div class="container-fluid"> <div class="row-fluid"> <div class="span12"> <div id="map" class="map"></div> </div> </div> <div class="row-fluid"> <div class="span4"> <h4 id="title">GetFeatureInfo example (image layer)</h4> <p id="shortdesc">这个例子说明在点击一个wms图片图层时如何使用 wms的GetFeatureInfo方法获取要素信息。</p> </div> <div class="span4 offset4"> <div id="info" class="alert alert-success"> </div> </div> </div> </div> </body> </html>
2新建名为getImageFeatureInfo的js文件
创建初始函数function init(){},在初始函数中初始化如下几项初始化图层
首先,新建wms的数据源:
var wmsSource=new ol.source.ImageWMS({ url:'http://demo.opengeo.org/geoserver/wms', params:{'LAYERS':'ne:ne'}, serverType:'geoserver' });
其次,创建image图层:
var wmsLayer=new ol.layer.Image({ source:wmsSource });
初始化地图
设置视图,中心点(0,0),缩放级别1:
var view=new ol.View({ center:[0,0], zoom:1 });
初始化地图,将初始化的wmsLayer和view赋值给新建的地图:
var map=new ol.Map({ layers:[wmsLayer], target:'map', view:view });
注册地图的单击事件,在单击后获取地图的地理坐标,通过wmsSource.getGetFeatureInfoUrl()方法获取符合ogc标准的url。代码如下:
map.on('singleclick',function(evt){ document.getElementById('info').innerHTML=''; var viewResolution=view.getResolution(); var url=wmsSource.getGetFeatureInfoUrl( evt.coordinate,viewResolution,'EPSG:3857', {'INFO_FORMAT':'text/html'} ); if(url){ document.getElementById('info').innerHTML= '<iframe seamless src="'+url+'"></iframe>'; } })
整个初始化函数如下:
function init(){
var wmsSource=new ol.source.ImageWMS({ url:'http://demo.opengeo.org/geoserver/wms', params:{'LAYERS':'ne:ne'}, serverType:'geoserver' });var wmsLayer=new ol.layer.Image({ source:wmsSource });var view=new ol.View({ center:[0,0], zoom:1 });var map=new ol.Map({ layers:[wmsLayer], target:'map', view:view });map.on('singleclick',function(evt){ document.getElementById('info').innerHTML=''; var viewResolution=view.getResolution(); var url=wmsSource.getGetFeatureInfoUrl( evt.coordinate,viewResolution,'EPSG:3857', {'INFO_FORMAT':'text/html'} ); if(url){ document.getElementById('info').innerHTML= '<iframe seamless src="'+url+'"></iframe>'; } })}
3运行结果
因结果的返回格式是html形式,返回后的结果加载到iframe中,右下角为查询后的内容。相关文章推荐
- arcgis for android 学习 - (8) 空间查询 - 点击某点,选中该点所在单位区域。
- 每日学习心得:未定义的命名空间前缀"xsd"问题和<%%>、<%=%>、<%$%>、<%@%>的区别
- OpenLayers3 学习心得(六)——WMS服务
- OpenLayers学习笔记6——使用jQuery UI实现查询并标注(功能实现篇)
- openlayers实现wfs属性查询和空间查询
- 学习笔记—空间关系查询
- 自己学习心得:HQL数据查询基础
- 每日学习心得:SharePoint 为列表中的文件夹添加子项(文件夹)、新增指定内容类型的子项、查询列表中指定的文件夹下的内容
- OpenLayers3 学习心得(五)——测量
- 我的MYSQL学习心得(七) 查询
- 每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)
- 与MSSQL对比学习MYSQL的心得(七)--查询
- 与MSSQL对比学习MYSQL的心得(七)--查询
- 每日学习心得:SharePoint 为列表中的文件夹添加子项(文件夹)、新增指定内容类型的子项、查询列表中指定的文件夹下的内容
- OpenLayers3 学习心得(一)——体系结构
- 每日学习心得:未定义的命名空间前缀"xsd"问题和<%%>、<%=%>、<%$%>、<%@%>的区别
- 我的MYSQL学习心得(七) 查询
- 每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询
- GIS的学习(二十)基于Geoserver的WFS服务与Openlayers实现地理查询
- java学习心得——添加列表查询功能