在map对象上注册点击方法监听, 这里我用的是wms,当然你也可以查询wfs

map.events.register('click', map, function (e) {
                     var params = {
                             REQUEST: "GetFeatureInfo",
                             EXCEPTIONS: "application/vnd.ogc.se_xml",
                             BBOX: map.getExtent().toBBOX(),
                             SERVICE: "WMS",
                             VERSION: "1.1.1",
                             X: e.xy.x,
                             Y: e.xy.y,
                          //   INFO_FORMAT: 'text/html',  这里必须注意啦 查询结果会返回不同的格式滴,根据自己的需呀要做不同设置哦,text/html或者application/vnd.ogc.gml
                             INFO_FORMAT: 'application/vnd.ogc.gml',  
                            QUERY_LAYERS: map.layers[1].params.LAYERS,
                             FEATURE_COUNT: 50,
                             Layers: 'mine:locatorinfo_'+MineCode,
                             WIDTH: map.size.w,
                             HEIGHT: map.size.h,
                             format: format,
                             styles: map.layers[1].params.STYLES,
                             srs: map.layers[1].params.SRS};
                     //    alert(map.layers[1].params.LAYERS); 
                         OpenLayers.loadURL("http://172.16.0.81:8080/geoserver/mine/wms", params, this, setHTML, failhttml);
                         tpoint = map.getLonLatFromPixel(e.xy),  
                         OpenLayers.Event.stop(e);
                });

查询完毕且成功回调方法是:setHTML   【加载查询失败的方法时failhtml】

var popup1;
            function setHTML(response){    
            //    alert(response.responseText);
                //获取要素结果集
                var g = new OpenLayers.Format.GML();
              var   features = g.read(response.responseText);
              var tempstr = '';
              var nfid = '';
              var nm = '';
                //遍历要素集
                for(var feat=0;feat<features.length;feat++){
                 nm = features[feat].attributes.equipmentid;    //获取属性的时候
                 nfid = features[feat].fid;   //fid的获取比较特殊哦,不是按照属性获取方式的,可以参考geoserver发布的服务就能看出那些时属性设置
                 tempstr += nfid;
                }
                
                if(popup1!=null){
                    map.removePopup(popup1);
                }
                popup1 = new OpenLayers.Popup.FramedCloud("chicken",
                        tpoint,
                        new OpenLayers.Size(200,200),
                       tempstr,
                       null,
                        true);
            popup1.autoSize=true;
            map.addPopup(popup1);
            };

执行逻辑是这样滴,点击图层,查询结果弹出tip提示窗口。

效果如图哦

openlayers空间点查询之GetFeatureInfo的更多相关文章

  1. 通过openlayers加载dwg格式的CAD图并与互联网地图叠加

    Openlayers介绍 ​ Openlayers是一个基于Javacript开发,免费.开源的前端地图开发库,使用它,可以很容易的开发出WebGIS系统.目前Openlayers支持地图瓦片.矢量数 ...

  2. mapserver+openlayers实现左键点击查询

    效果图 第一步,配置自己的mapfile,在要查询的图层LAYER对象内加上HEADER,TEMPLATE,FOOTER三个参数,同时,TEMPLATE fooOnlyForWMSGetFeature ...

  3. OpenLayers 3+Geoserver+PostGIS实现点击查询

    WebGIS开发中,点击查询是最经常使用的一种查询方式,在ArcGIS api 中.这样的查询叫IdentifyTask,主要作用是前台提交參数.交ArcServer查询分析返回. 本文从开源框架的角 ...

  4. Geoserver+Openlayers拉框查询

    1.代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" co ...

  5. postgresql+postgis+pgrouting实现最短路径查询(2)---openlayers+geoserver实现最短路径

    自己的最短路径实现基本上是按照参考博文的1.2和3进行的,实现的时候也是问题不断,只能是一个一个解决. 问题1:自己发布的geoserver服务无法和OSM底图叠加到一起. 解决:参考博文2提到发布服 ...

  6. OpenLayers学习笔记5——使用jQuery UI实现查询并标注(UI篇)

    近期事情非常多,老板给的压力也非常大.经常出差,另外项目和个人研究还都要跟上,本月要交论文,还要写专利,仅仅能抽时间来学习其它的东西了. 关于OpenLayers的在博客中不会写太多详细的实现(网上有 ...

  7. geoserver扫盲 openlayers相关

    转自:http://www.cnblogs.com/lzlynn/archive/2008/07/29/1255702.html WMS: Web Map Service(Web地图服务 ) l  利 ...

  8. openlayers中单击获取要素

    openlayers中单击获取要素 分类专栏: GIS 总结 OpenLayers   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: ...

  9. geoserver与OpenLayers配置

          geoserver与OpenLayers配置         目录   1     准备工作.... 4 1.1      需要用到的程序和资料... 4 2     地图格式转换方式(一 ...

随机推荐

  1. 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统

    区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统

  2. (2018干货系列十)最新android开发学习路线整合

    怎么学Android Android是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导.据2011年初数据显示仅正式上市两年的操作系统Android ...

  3. 数据库-MySQL入门

    什么是数据库? 一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合 数据库管理系统(简称DBMS):是为管理数据库而设计的电脑软件系统,一般具有存储.截取.安全保 ...

  4. Source Insight 如何将script等文件加入

    点击菜单栏Options -> Document Options , 然后再弹出的对话框中找到File filter,文件过滤的设置,里面肯能有*.c;*.h 你在后面添加Makefile,注意 ...

  5. JavaScript修改元素

    案例1 删除元素 如需删除 HTML 元素,需要清楚该元素的父元素 该js函数代码如下 function remove(){ var parent=document.getElementById(&q ...

  6. Java能抵挡住JavaScript的进攻吗?

    JavaScript的进攻 公元2014年,Java 第八代国王终于登上了王位. 第一次早朝,国王坐在高高的宝座上,看着毕恭毕敬的大臣,第一次体会到了皇权的威力. 德高望重的IO大臣颤悠悠地走上前来: ...

  7. 程序连接oracle数据库问题Cannot create PoolableConnectionFactory ...

    报错: [ERROR] -- :: com.ipi.caee.InitServlet - 初始化数据加载异常 org.springframework.transaction.CannotCreateT ...

  8. [c/c++] programming之路(1)、编写程序打开记事本、计算器等

    一.命令行启动程序 通过命令行关闭程序:taskkill /f /im 程序名.exe 二.打开记事本.计算器 #include <stdlib.h> void main(){ syste ...

  9. 主动攻击:利用ms08_067_netapi进行攻击

    利用ms09_053_wins进行攻击 ms08_067漏洞 如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码. 在 Microsoft Windows 2000.Win ...

  10. CEF 添加F5刷新快捷键

    Keyboardcodes:https://www.androidos.net.cn/android/4.3_r1/xref/external/webkit/Source/WebCore/platfo ...