目录
本文主要介绍如何使用天地图的世界地图添加标注的功能,示例需要使用 【include-openlayers-local.js】 开发库实现。
对于文字,图片,图文标注都是通过ol.Feature()方法构建要素,然后加载到地图中,对于 PopUp 标注则是通过ol.Overlay()方法构建 overlay 弹窗实现。通过ol.source.Cluster()方法创建聚合标注数据源。
实现效果如下图所示:

实现步骤
1. 引用开发库:
本示例通过本地离线 【include-openlayers-local.js】 脚本引入开发库;
2. 创建地图容器:
创建id="mapCon"的 div,并设置其样式;
3. 创建地图对象类:
创建地图对象,设置地图的必要参数;
4. 添加矢量图层:
构建矢量图层(用于存储标注数据),并将图层加入到地图中;
vectorSource = new ol.source.Vector({
features: [],
})
//矢量标注图层
vectorLayer = new ol.layer.Vector({
source: vectorSource,
})
map.addLayer(vectorLayer)
5. 添加图片标注:
构建点几何要素,设置其样式为图片标注,并将该点加入到矢量图层中;
5.1 创建图片标注要素
//新建一个要素 ol.Feature
var newFeature = new ol.Feature({
//几何信息
geometry: new ol.geom.Point(coordinate),
})
5.2 设置图片标注要素样式
function createImageStyle(feature) {
return new ol.style.Style({
/**{olx.style.IconOptions}类型*/
image: new ol.style.Icon({
anchor: [0.5, 60],
anchorOrigin: 'top-right',
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
offsetOrigin: 'top-right',
// offset:[0,10],
//图标缩放比例
// scale:0.5,
//透明度
opacity: 0.75,
//图标的url
src: './static/assets/olimages/label/blueIcon.png',
}),
})
}
//设置要素的样式
newFeature.setStyle(createImageStyle(newFeature))
5.3 将图片标注添加到图层数据源中
//将新要素添加到数据源中
vectorSource.addFeature(newFeature)
6. 添加文字标注:
构建点几何要素,设置其样式为文本标注,并将该点加入到矢量图层中;
6.1 创建文字标注要素
//新建一个要素 ol.Feature
var newFeature = new ol.Feature({
//几何信息
geometry: new ol.geom.Point(coordinate),
//名称属性
name: '标注点',
})
6.2 设置文字标注样式
function createTxtStyle(feature) {
return new ol.style.Style({
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 }),
}),
})
}
//设置要素的样式
newFeature.setStyle(createTxtStyle(newFeature))

本文详细介绍了如何使用OpenLayers库在天地图上添加图片标注、文字标注、图文标注,以及PopUp弹窗和聚合标注的步骤,包括所需的关键接口和实例代码。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



