openlayers3 在地图上叠加WFS查询矢量图层

简介:

随着终端设备计算能力的加强,用户在使用地图的时候也需要越来越多的交互效果。比如现在很火的室内导航,为了获得好的用户体验,就需要当用户单击某一商店的时候该商店的颜色能相应的变化,这就需要叠加矢量图层。如何能在瓦片地图之上叠加矢量图层呢,这个就需要用到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];
        }
    });
相关文章
|
定位技术 API 网络架构
地图图层接入:从mapbox转向cesium
由于地图坐标系的不统一,地图图商提供的图层服务也各有特色,在图层对接的开发过程中常会遇到许多坑,从二维图层到三维图层,地图引擎mapbox再到cesium,本文将分享笔者在近期地图图层接入过程中总结的一些经验。
3188 10
openlayers+geoserver+wms实现空间查询,属性查询
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/81530228 openlayer...
3529 0
|
10月前
|
JSON 定位技术 API
百度地图高级开发:获取某范围半径圆形区域检索覆盖物内的所有标注的解决方案(1)
百度地图高级开发:获取某范围半径圆形区域检索覆盖物内的所有标注的解决方案(1)
168 0
|
定位技术 数据库
利用 QGIS 绘制洞穴地图
利用 QGIS 绘制洞穴地图
131 0
利用 QGIS 绘制洞穴地图
|
定位技术
openlayers控制地图显示范围
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/83108903 openlaye...
2790 0
|
定位技术 编解码
GIS地图瓦片之缩放级别原理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/82781436 GIS地图瓦片之...
1752 0
|
编解码 前端开发 定位技术
基于OpenLayers+rbush实现高德轨迹样式
一 前言   近期翻阅博客,看到社区大神一休哥的一篇《canvas 奇巧淫技(二)绘制箭头路径效果》文章,同样,该大神还展示过一个使用rbush库如何在前端快速从海量数据进行空间检索的案例:https://alex2wong.github.io/mapbox-plugins/examples/rbush/,很有分享精神的前端GIS专家,更多关于前端GIS检索数据的技术可参考搜狐的干货专访:《深入理解空间搜索算法 ——数百万数据中的瞬时搜索》。
2224 0
|
定位技术
openlayers4+geoserver wfs实现空间分析、属性查询
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/79500449 openlayers4,geoserver wfs实现空间分析、属性查询 http://www.
1914 0
Leaflet使用GeoJSON线数据进行样式渲染的记录
通过设置geojson线的style来渲染数据
6109 0

热门文章

最新文章