OpenLayers3中wfs的属性查询
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 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的属性查询的更多相关文章
- 使用resultMap实现ibatis复合数据结构查询(1.多重属性查询;2.属性中含有列表查询)
以订单为例(订单详情包括了订单的基本信息,配送物流信息,商品信息),直接上代码: 1.多重属性查询 java实体 public class OrderDetail { @XmlElement(requ ...
- ArcGIS Engine开发之属性查询
属性查询即基于空间数据的属性数据的查询,通过用户提交SQL语言中的where语句定义的查询条件,对属性数据进行搜索,从而得到查询结果的操作. 相关的类与接口 与属性查询功能相关的类主要有QureyFi ...
- android中xml tools属性详解
第一部分 安卓开发中,在写布局代码的时候,ide可以看到布局的预览效果. 但是有些效果则必须在运行之后才能看见,比如这种情况:TextView在xml中没有设置任何字符,而是在activity中设置了 ...
- meta标签中的http-equiv属性使用介绍(转载)
meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言, ...
- Css中的Position属性
Css中的Position属性 Css属性在线查询地址: http://www.css88.com/book/css/properties/index.htm CSS 中的 position 属性 在 ...
- ArcGIS中的三种查询
ArcGIS runtime SDK for WPF/Silverlight中的三种常用的查询:QueryTask.FindTask.IdentifyTask都是继承自ESRI.ArcGIS.Clie ...
- android中xmlns:tools属性详解
今天读到一篇总结的非常棒的文章,写的逻辑很清晰也很实用,很少见到如此棒的文章了.就原文转发过来,我把格式给整理了一下,分享给园子里的各位朋友!好久没写博客了,就为2015年的11月留份纪念吧.希望对你 ...
- SqlMapConfig.xml中的setting属性设置
<settings cacheModelsEnabled="true" lazyLoadingEnabled="false" en ...
- 在ACCESS中创建数据库和查询(ACCESS 2000)
备份还原数据库 备份.还原 —— 复制\粘贴 压缩修复数据库命令 —— 复制该文件并重新组织,并重新组织文件在磁盘上的储存方式.压缩同时优化了Access数据库的性能.(工具——实用数据库工具或者工具 ...
随机推荐
- [ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39102335 官方例子:http://dev.sencha.com/ext/5.0.1 ...
- OpenMP并行化实例----Mandelbrot集合并行化计算
在理想情况下,编译器使用自动并行化能够管理一切事务,使用OpenMP指令的一个优点是将并行性和算法分离,阅读代码时候无需考虑并行化是如何实现的.当然for循环是可以并行化处理的天然材料,满足一些约束的 ...
- Android Demo---如何敲出圆角的Button+圆角头像
经常玩儿App的小伙伴都知道,APP上面有很多按钮都是圆角的,圆形给人感觉饱满,富有张力,不知道设计圆角按钮的小伙伴是不是和小编有着相同的想法`(*∩_∩*)′,听小编公司开发IOS的小伙伴说,他们里 ...
- Android实现横屏以及全屏的小技巧
分享两个安卓的实用小技巧,那就是横屏和全屏的实现. 首先是横屏的实现 首先是在清单文件中实现 <activity android:name=".MainActivity" a ...
- 最简单的基于FFmpeg的libswscale的示例附件:测试图片生成工具
===================================================== 最简单的基于FFmpeg的libswscale的示例系列文章列表: 最简单的基于FFmpeg ...
- HTML5中 HTML表单和PHP环境搭建及与PHP交互 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! 知识点概括:HTML表单/PHP环境搭建/表单提交数据与PHP交互 第一部分:HTML表单 <!DOCTYP ...
- Linux:alias永久生效
alias(中文称为"别名")允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入. 如果经常与 CLI 打交道,那么使用 alias 不仅会 ...
- Dynamics CRM2013 编辑视图时弹出尚未保存所做的更改警示框
CRM2013中当对视图进行自定义编辑时,总会弹出如下图所示的警示框,一般我们都会选择离开此页来保存我们所做的更改,显而易见的是这又是CRM2013的一个bug 在UR2 for Dynamics ...
- EBS DBA指南笔记(三)
第五章 patching patch的作用:解决应用代码的问题:安装新的特征:更新technology stack组件.打patch不是一个简单的过程,但我们也没必要深究里面每个细节. EBS的p ...
- Zookeeper实现负载均衡
原理解析 架构图 每台WorkServer启动的时候都会到Server创建临时节点. 每台ClientServer启动的时候,都会到S ...