OpenLayers3的WMS空间查询的自定义格式
来源:互联网 发布:孟非与女嘉宾有染 知乎 编辑:程序博客网 时间:2024/05/22 15:27
直接贴主要代码
var container = document.getElementById('popup'); var content = document.getElementById('popup-content'); var closer = document.getElementById('popup-closer');//加载WMS数据源var wmsSource=new ol.source.TileWMS({ url:'http://demo.opengeo.org/geoserver/wms', params:{'LAYERS':'ne:ne'}, serverType:'geoserver' }); var wmsLayer=new ol.layer.Tile({ source:wmsSource }); var view=new ol.View({ center:[0, 0], zoom:1 });var map=new ol.Map({ layers:[wmsLayer], target:'map', view:view }); var overlay = new ol.Overlay(({ element: container, autoPan: true, autoPanAnimation: { duration: 250 } })); overlay.setMap(map); //关闭弹窗 closer.onclick = function() { overlay.setPosition(undefined); closer.blur(); return false; };//点击地图通过wms数据地图getGetFeatureInfoUrl获取详情map.on('singleclick',function(e){ //点击后清空table里的数据$("#details").html(""); //开始显示弹窗 var hdms = ol.coordinate.toStringHDMS(ol.proj.transform( e.coordinate, 'EPSG:3857', 'EPSG:4326')); content.innerHTML = '<p>查询详情:</p><code>坐标:' + hdms + '</code>'; overlay.setPosition(e.coordinate); document.getElementById('info').innerHTML=''; var viewResolution=view.getResolution(); var url=wmsSource.getGetFeatureInfoUrl( e.coordinate,viewResolution,'EPSG:3857', //{'INFO_FORMAT':'text/html'} //这个返回的是一个html页面 { 'INFO_FORMAT': 'application/json',//返回jsonp 'FEATURE_COUNT': 1 //查询能返回的数量上限 } ); //回调函数接收查询结果,设置解析 var geojsonFormat=new ol.format.GeoJSON({defaultDataProjection:"EPSG:3857"}); if(url){ //console.log(url); // document.getElementById('info').innerHTML='<iframe seamless src="'+url+'"></iframe>'; $.ajax({ type: 'get', url : url, success : function(res){ debugger var features=geojsonFormat.readFeatures(res);//获取所有的要素 if(features.length){//如果要素个数为0的话,则是海洋 for(var key in features[0].H){ if(key == 'geometry'){ continue; } $("#details").append( "<tr><td style='width: 110px'>"+key+": </td><td style='width: 50%'>"+features[0].H[key]+"</td> </tr> " ); } }else { $("#details").html( "<tr><td style='width: 200px'>点击到大海了</td></tr>" )} }, error : function(){ alert('执行失败'); } }) } })
附上其他
<style> .ol-popup { position: absolute; background-color: white; -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2)); filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2)); padding: 15px; border-radius: 10px; border: 1px solid #cccccc; bottom: 12px; left: -50px; min-width: 280px; } .ol-popup:after, .ol-popup:before { top: 100%; border: solid transparent; content: " "; height: 0; width: 0; position: absolute; pointer-events: none; } .ol-popup:after { border-top-color: white; border-width: 10px; left: 48px; margin-left: -10px; } .ol-popup:before { border-top-color: #cccccc; border-width: 11px; left: 48px; margin-left: -11px; } .ol-popup-closer { text-decoration: none; position: absolute; top: 2px; right: 8px; } .ol-popup-closer:after { content: "✖"; } #teble-content{ height: 110px; width:304px; overflow:auto; } #details tr{ border:1px solid black; } </style></head><body ><div id="map" style="width: 100%;height: 700px"></div><div id="info" style="width: 100%;height: 100px; "></div><div id="popup" class="ol-popup"><a href="#" id="popup-closer" class="ol-popup-closer"></a><div id="popup-content"></div><div id="teble-content"><table id="details" ></table></div></div>
自定义格式很简单的,就是请求json
1 0
- OpenLayers3的WMS空间查询的自定义格式
- OpenLayers3的WMS空间查询实现多个图层
- Openlayers3 加载 GeoServer WMS的实现
- openlayers wms空间查询
- 使用openlayers3自带的功能,使用WFS对geoserver服务器进行空间查询
- WMS的查询以及LPN
- OpenLayers3中wfs的属性查询
- 用OpenLayers3实现自定义地图切片的发布
- Openlayers3的基础概念
- OpenLayers3的轨迹回放
- OpenLayers3 学习心得(四)——空间查询
- SaaS WMS与传统WMS的区别
- Openlayers3中统计图的实现
- OpenLayers3的重要补充:JSTS
- openlayers3中geowebcache的使用
- WMS 的介绍
- 所谓的WMS,WFS
- MYSQL的空间查询
- 【Java每日一题】20170116
- 简约至上,Vue圆环菜单组件
- 不要在浮躁的世界里迷失自己!
- 异地多活IDC机房架构
- P1433 吃奶酪
- OpenLayers3的WMS空间查询的自定义格式
- 周有光谈话录: 全球化时代要重估一切价值
- Ubuntu 16.04安装有道词典
- Rubik UI 是一个基于 Vue.js 2.0
- Codevs 1298 凸包周长
- thinkphp 3.2分页 自定义分页函数
- Hibernate框架常用知识点总结
- 使用Ubuntu 12.04的初始服务器设置
- acm 杭电 1001 sum