layer添加元素 openlayer_OpenLayer学习之图文标注

本文介绍了如何在OpenLayers中使用矢量图层进行图文标注。首先,创建矢量数据源和要素,包括点的几何形状、自定义属性。接着,为要素设置样式,包括图标和文本,并封装了样式函数。最后,将矢量图层添加到地图中,展示了标注效果。
摘要由CSDN通过智能技术生成

一、图文标注分为两类,一类是通过ol.3中Overlayer,结合HTML的一个div或者img标签元素实现。另一类是通过矢量图层作为表现层,本文介绍的就是矢量图层,总体思路,创建矢量数据源,创建矢量图层,然后创建要素,将要素设置样式,添加到矢量数据源就行

二、数据源、矢量图层、要素的声明

var beijing = ol.proj.fromLonLat([116.28, 39.54]);

//矢量元素

var feature = new ol.Feature({

geometry: new ol.geom.Point(beijing),

name: '北京',//自定义属性

population:2115//自定义属性

});

feature.setStyle(createFeatureStyle(feature));

//矢量图层数据源

sourceVector = new ol.source.Vector({

features:[feature]

});

//矢量图层的标注图层

vectorLayer =new ol.layer.Vector({

source: sourceVector

});

map.addLayer(vectorLayer);

三、要素样式函数设置(封装)

var createFeatureStyle = function (feature) {

return new ol.style.Style({

image: new ol.style.Icon(/** @type {olx.style.IconOptions} */({

anchor: [0.5, 60],

anchorOrigin: 'top-right',

anchorXUnits: 'fraction',

anchorYUnits: 'pixels',

offsetOrigin: 'top-right',

offset:[0,10],//偏移量设置

scale:0.5, //图标缩放比例

opacity: 0.75, //透明度

src: '../../images/icon.png' //图标的url

})),

text: new ol.style.Text({

textAlign: 'center',//位置

textBaseline: 'middle',//基准线

font: 'normal 14px 微软雅黑',

text: feature.get('name'),//文本内容

fill: new ol.style.Fill({ color: '#aa3300' }),

stroke: new ol.style.Stroke({ color: '#ffcc33', width: 2 })

})

});

}

四、效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值