var vector = new ol.layer.Vector({
source: new ol.source.Vector({
format: new ol.format.GeoJSON(),
url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=test:行政区R&outputFormat=application/json&srsname=EPSG:4326'
}),
style: function(feature, resolution) {
return new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'blue',
width: 1
})
});
}
});
vector.setOpacity(0.3);//设置透明度 map.on('click',mapClick);
//点击地图查询
function mapClick(evt)
{
var coor=evt.coordinate;
var lowx = coor[0]-0.0075;
var lowy = coor[1]-0.0075;
var upperx = coor[0]+0.0075;
var uppery = coor[1]+0.0075;
// coor=coor.join(',');
//注意这里,如果是查询,点或者线图形,一定要将coor先设置一个容差,,再去与图层叠加分析。不设置容差几乎就找不到了
//图层的图形字段是geom,不同图层的图形字段都要自己先看下自己的,有的是the_geom,有的是shape等等,具体分析即可。
// var FILTER='<Filter xmlns="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><Intersects><PropertyName>the_geom'+
// '</PropertyName><gml:Envelope srsName="EPSG:4326"><gml:lowerCorner>'+[coor[0]-0.0075,coor[1]-0.0075]+'</gml:lowerCorner>'+ // '<gml:upperCorner>'+[coor[0]+0.0075,coor[1]+0.0075]+'</gml:upperCorner></gml:Envelope></Intersects></Filter>';
var FILTER= '<Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><Intersects><PropertyName>the_geom</PropertyName><gml:Envelope srsName="EPSG:4326"> <gml:lowerCorner>'+lowx+' '+lowy+'</gml:lowerCorner><gml:upperCorner>'+upperx+' '+uppery+'</gml:upperCorner></gml:Envelope></Intersects></Filter>';
getFeature1({
typename:'test:行政区R',//查询的服务图层名称
filter:FILTER,//查询条件
srid: 'epsg:4326'
});
//开始显示弹窗
$("#details").html("");
var hdms = ol.coordinate.toStringHDMS(evt.coordinate);
content.innerHTML = '<p>查询详情:</p><code>坐标:' + hdms +
'</code>';
overlay.setPosition(evt.coordinate); }
var geojsonFormat=new ol.format.GeoJSON({defaultDataProjection:"EPSG:4326"}); //请求wfs数据
function getFeature1(options)
{
$.ajax({
url: 'http://localhost:8080/geoserver/wfs',
type: 'get',
data: {
service: 'WFS',
version: '1.1.0',
request: 'GetFeature',
typeNames: options.typename,
srsName: options.srid,
Filter:options.filter,
outputFormat: 'application/json' },
success:function(data){
console.log(data);
var features=geojsonFormat.readFeatures(data);
console.log(features);
if(features[0] == null || features[0] == undefined){
return;
}
var json = features[0].H;
for(var key in json){
if(key == 'geometry'){
continue;
}
$("#details").append(
"<tr><td style='width: 110px'>"+key+": </td><td style='width: 50%'>"+json[key]+"</td> </tr> "
);
}
},
error: function(){
alert("执行失败");
}
}); } // 为地图注册鼠标移动事件的监听
map.on('pointermove', function(event){
//先移除样式
var total = vector.getSource().getFeatures();
for(var i in total){
total[i].setStyle(new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'blue',
width: 1
})
}));
}
//获得鼠标移动上的feature
map.forEachFeatureAtPixel(event.pixel, function(feature){
//设置高亮显示填充颜色
feature.setStyle(new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'yellow',
width: 3,
}),
fill: new ol.style.Fill({
color: 'yellow'
}) }));
});
})

关于查询的方式:
点查询Filter
<Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
<Intersects>
<PropertyName>the_geom</PropertyName>
<gml:Envelope srsName="EPSG:4326">
<gml:lowerCorner>xxx yyy</gml:lowerCorner>
<gml:upperCorner>xxx yyy</gml:upperCorner>
</gml:Envelope>
</Intersects>
</Filter>

还有自定义多边形查询,

还有就是多多学习自己写Filter,需要的参数学习可以看下http://www.gisvip.com/bbs/forum.php?mod=viewthread&tid=2723

OpenLayers3中wfs的属性查询的更多相关文章

  1. 使用resultMap实现ibatis复合数据结构查询(1.多重属性查询;2.属性中含有列表查询)

    以订单为例(订单详情包括了订单的基本信息,配送物流信息,商品信息),直接上代码: 1.多重属性查询 java实体 public class OrderDetail { @XmlElement(requ ...

  2. ArcGIS Engine开发之属性查询

    属性查询即基于空间数据的属性数据的查询,通过用户提交SQL语言中的where语句定义的查询条件,对属性数据进行搜索,从而得到查询结果的操作. 相关的类与接口 与属性查询功能相关的类主要有QureyFi ...

  3. android中xml tools属性详解

    第一部分 安卓开发中,在写布局代码的时候,ide可以看到布局的预览效果. 但是有些效果则必须在运行之后才能看见,比如这种情况:TextView在xml中没有设置任何字符,而是在activity中设置了 ...

  4. meta标签中的http-equiv属性使用介绍(转载)

    meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言, ...

  5. Css中的Position属性

    Css中的Position属性 Css属性在线查询地址: http://www.css88.com/book/css/properties/index.htm CSS 中的 position 属性 在 ...

  6. ArcGIS中的三种查询

    ArcGIS runtime SDK for WPF/Silverlight中的三种常用的查询:QueryTask.FindTask.IdentifyTask都是继承自ESRI.ArcGIS.Clie ...

  7. android中xmlns:tools属性详解

    今天读到一篇总结的非常棒的文章,写的逻辑很清晰也很实用,很少见到如此棒的文章了.就原文转发过来,我把格式给整理了一下,分享给园子里的各位朋友!好久没写博客了,就为2015年的11月留份纪念吧.希望对你 ...

  8. SqlMapConfig.xml中的setting属性设置

    <settings     cacheModelsEnabled="true"     lazyLoadingEnabled="false"     en ...

  9. 在ACCESS中创建数据库和查询(ACCESS 2000)

    备份还原数据库 备份.还原 —— 复制\粘贴 压缩修复数据库命令 —— 复制该文件并重新组织,并重新组织文件在磁盘上的储存方式.压缩同时优化了Access数据库的性能.(工具——实用数据库工具或者工具 ...

随机推荐

  1. 发现----Android Demo

    时间悄悄的走,转眼来实习已经三个月了,三个月的时间,小编慢慢的成长着,从刚开始的电商项目到现在的车段子项目,小编在走过一个又一个项目的同时,走过了一个又一个战胜自己的奇迹,每次遇到一个新的技术点,小编 ...

  2. 【安卓网络请求开源框架Volley源码解析系列】定制自己的Request请求及Volley框架源码剖析

    通过前面的学习我们已经掌握了Volley的基本用法,没看过的建议大家先去阅读我的博文[安卓网络请求开源框架Volley源码解析系列]初识Volley及其基本用法.如StringRequest用来请求一 ...

  3. vs 删除行尾空格

    vs 删除行尾空格 vs2010:Enter: Ctrl+H Find what: :b*$ Replace with: [Empty] Look in: Current Document Find ...

  4. Qt中实现启动画面

    纵所周之,当一个程序的启动比较耗时的时候,为了不让用户枯燥的等待或者是误以为程序运行异常了,所以我们都会在启动比较耗时的程序中加上启动界面 ,例如office软件等等. 在Qt中实现启动界面,主要就是 ...

  5. xml的今生今世

    跟随小编学习的脚步,今天小编来简单总结一下xml的今生今世,xml百度百科对她这样诠释到:可扩展标记语言 (ExtensibleMarkup Language, XML),用于标记电子文件使其具有结构 ...

  6. Android PackageManager源码浅析以及静默安装实现方式

    Aandroid应用管理    >http://blog.csdn.net/sk719887916/article/details/50314017 skay整理.        >201 ...

  7. 【FPGA学习】Verilog之加法器

    在fpga工程应用设计中,随处可见加法器,乘法器等等.现在将一些常用模块和心得体会先记录下来,以便日后使用. 一位半加器: module halfadder(cout,sum,a,b); output ...

  8. ROS_Kinetic_06 ROS基础内容(三)

    ROS_Kinetic_06 ROS基础内容(三) 先插入一段闲话,关于android的碎片化,无非集中于版本过多,型号各异,品牌杂乱等,似乎这是开源软件无法摆脱的宿命,ROS似乎也在这条路上越走越远 ...

  9. [WinForm]最小化到系统托盘,右键退出

    1.拉出一个notifyIcon1到用户界面,也可以NEW一个 2.拉出一个ContextMenuStrip控件,命名为mymenu,集合中增加退出 3.notifyIcon1的属性ContextMe ...

  10. (NO.00001)iOS游戏SpeedBoy Lite成形记(二十)

    下面修改最为关键的matchRun方法里的代码: CCActionCallBlock *blk = [CCActionCallBlock actionWithBlock:^{ _finishedCou ...