随着终端设备计算能力的加强,用户在使用地图的时候也须要越来越多的交互效果。

比方如今非常火的室内导航,为了获得好的用户体验,就须要当用户单击某一商店的时候该商店的颜色能对应的变化。这就须要叠加矢量图层。

怎样能在瓦片地图之上叠加矢量图层呢,这个就须要用到WFS查询。

我的思路是:基于WFS查询把得到须要矢量显示的图层中数据,然后再显示。详细思路为:

1.通过geoserver的WFS服务查询所须要矢量显示的数据信息

2.设置矢量数据的显示样式

3.openlayers加入矢量图层

4.设置鼠标移上去的颜色变化效果

// Source retrieving WFS data in GML format using AJAX
var vectorSource = new ol.source.ServerVector({
format : new ol.format.WFS({
featureNS : 'http://www.indoornavigation.com',
featureType : 'tingchewei'
}),
loader : function(extent, resolution, projection) {
extent = [ 120.220336914063, 30.2083336275748, 120.221145629883,
30.2088940588137 ];
var url = 'http://10.16.36.101:8080/geoserver/wfs?'
+ 'service=WFS&request=GetFeature&'
+ 'version=1.1.0&typename=indoorNavigation:tingchewei'; $.ajax({
url : url
}).done(function(response) {
vectorSource.addFeatures(vectorSource.readFeatures(response));
});
},
strategy : ol.loadingstrategy.createTile(new ol.tilegrid.XYZ({
maxZoom : 19
})),
projection : 'EPSG:4326'
});
// Vector layer
var vectorChewei = new ol.layer.Vector({
source : vectorSource,
style : new ol.style.Style({
fill : new ol.style.Fill({
color : 'rgba(12, 25, 25, 0.1)'
}),
stroke : new ol.style.Stroke({
color : 'black',
width : 2
})
})
});
map.addLayer(vectorChewei); var featureOverlay = new ol.FeatureOverlay({
map : map,
style : function(feature, resolution) {
var text = resolution < 5000 ? feature.get('name') : '';
if (!highlightStyleCache[text]) {
highlightStyleCache[text] = [ new ol.style.Style({
stroke : new ol.style.Stroke({
color : '#f00',
width : 1
}),
fill : new ol.style.Fill({
color : 'rgba(255,0,0,0.6)'
}),
text : new ol.style.Text({
font : '12px Calibri,sans-serif',
text : text,
fill : new ol.style.Fill({
color : '#000'
}),
stroke : new ol.style.Stroke({
color : '#f00',
width : 3
})
})
}) ];
}
return highlightStyleCache[text];
}
});

openlayers3 在地图上叠加WFS查询矢量图层的更多相关文章

  1. QGis(三)查询矢量图层的要素属性字段值(转载)

    QGis(三)查询矢量图层的要素属性字段值 https://github.com/gwaldron/osgearth/issues/489 当加载一个矢量图层后,如果要查看要素的属性字段值,则需要实现 ...

  2. Openlayers3 计算地图上随意两点间的距离

    相应的openlayers的版本号为3.7. 主要用的接口是ol.Sphere.haversineDistance([x1,y1],[x2,y2]): 4326坐标系中计算两点距离的方式为: var ...

  3. 去百度API的百度地图准确叠加和坐标转换的解决方案研究

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 目前项目上如果要使用百度地图,得加载百度的开发包,然后通过百 ...

  4. openlayers4 入门开发系列之批量叠加 zip 压缩 SHP 图层篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  5. ArcGIS Javascript查询数据库并添加到地图上

    将数据存放到数据库中,动态的调取比较灵活,数据变动后不需要改变图层的属性表. 此处采用的方法是通过jquery查询数据库,并将数据库的结果生产json串返回给js,在js中动态解析json串增加点至地 ...

  6. 【百度地图API】建立全国银行位置查询系统(三)——如何在地图上添加银行标注

    原文:[百度地图API]建立全国银行位置查询系统(三)--如何在地图上添加银行标注 <摘要>你将在第三章中学会以下知识: 如何在地图上添加带银行logo的标注?(你也可以换成商场logo, ...

  7. Angularjs+node+Mysql实现地图上特定点的定位以及附加信息展示

    注:本博文为博主原创,转载请注明出处. 在上一篇博文中主要讲述了如何利用AngularJs+Node+MySql构建项目,并实现地图上的多点标注,今天在这篇文章中,我们将在上一个项目的基础上,实现特定 ...

  8. 如何在iOS地图上高效的显示大量数据

    2016-01-13 / 23:02:13 刚才在微信上看到这篇由cocoachina翻译小组成员翻译的文章,觉得还是挺值得参考的,因此转载至此,原文请移步:http://robots.thought ...

  9. Google Map API v2 (三)----- 地图上添加标记(Marker),标记info窗口,即指定经纬度获取地址字符串

    接上篇 http://www.cnblogs.com/inkheart0124/p/3536322.html 1,在地图上打个标记 private MarkerOptions mMarkOption; ...

随机推荐

  1. jquery功能实现总结

    最近一直在做.net这方面的,也学习了jquery一些东西,其中实现了自动关闭页面,json解析字符串,拼接字符串,for循环,函数调用,等一些功能,自己也学习了,也希望可以帮助大家,大家看后给提提意 ...

  2. 【转】linux下cpio命令使用

    转自:http://www.51testing.com/html/32/498132-816949.html 功能说明:备份文件. 补充说明:cpio是用来建立,还原备份档的工具程序,它可以加入,解开 ...

  3. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 unselect_from_list_by_label(self, locator, *labels)

    def unselect_from_list_by_label(self, locator, *labels): """Unselects `*labels` from ...

  4. 用python3破解wingIDE

    值得注意的是,python2的整除/在python3中变成了//,sha方法细化成了sha1和sha256,所以破解文件需要更改加密方式和整除部分的编码方式,经过修改后,这个文件可以完美演算出破解码, ...

  5. IOS-简单计时器的使用

    1. 使用NSTimer *_timer --游戏计时器 2. NSDate *_startTime -- 开始时间 3. 初始化计时器 _timer = [NSTimer scheduledTime ...

  6. 通知(Toast+Notification)

    Toast简要说明:(前面已经用过好多次了) Toast是一种非持久的(在屏幕上面留一会儿就消失了),提供给用户简洁提示信息的视图. 它不阻断用户的操作,一般用于显示一些不重要的信息.(比方说设置音量 ...

  7. B-Tree、B+Tree和B*Tree

    B-Tree(这儿可不是减号,就是常规意义的BTree) 是一种多路搜索树: 1.定义任意非叶子结点最多只有M个儿子:且M>2: 2.根结点的儿子数为[2, M]: 3.除根结点以外的非叶子结点 ...

  8. Linux系统安装配置NTP时间服务器

    背景 局域网不能上外网情况下同步集群时间,搭建NTP服务器,并设置其他主机每小时同步时间(假设使用地址为192.168.3.21的主机作为NTP服务器) 安装NTP $ sudo yum instal ...

  9. Android:控件WebView显示网页 -摘自网络

    WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要 ...

  10. 解析XtraBackup备份MySQL的原理和过程(转)

    原文:http://ourlinux.blog.51cto.com/274624/844859 XtraBackup是percona公司提供的开源工具,以热备Innodb表著称而被广泛采用. Xtra ...