openlayers三:添加图片和图标

openlayers添加图片是指:

  添加在地图上的图片会跟随地图同步放大缩小

而添加图标是指:

  添加在地图上的图片不会跟随地图同步放大缩小

添加图片:

  首先初始化图片图层:

1     initImageLayer: function (extent) {
2         this.imageLayer = new ol.layer.Image({
3             // source: this.imageSource
4         })
5         this.map.addLayer(this.imageLayer);
6     },

  然后添加图片:

复制代码
1     addImage: function (extent, url) {
2         var imageExtent = extent;//左下角右上角[113, 30.2, 115, 32.2]
3         this.imageSource = new ol.source.ImageStatic({
4             url: url,
5             projection: 'EPSG:3857',
6             imageExtent: ol.proj.transformExtent(imageExtent, 'EPSG:4326', 'EPSG:3857')
7         })
8         this.imageLayer.setSource(this.imageSource);
9     }
复制代码

 

添加图标:

  通过point feature来添加图标

复制代码
 1 addIcon: function (lonlat, tip) {
 2         var point = new ol.geom.Point(ol.proj.transform(lonlat, 'EPSG:4326', 'EPSG:3857'));
 3         var pointFeature = new ol.Feature(point);
 4         pointFeature.setStyle(
 5             new ol.style.Style({
 6                 image: new ol.style.Icon({
 7                     anchor: [0.5, 0.5],
 8                     crossOrigin: 'anonymous',
 9                     src: 'https://openlayers.org/en/v4.6.5/examples/data/icon.png'
10                 }),
11                 text: new ol.style.Text({
12                     text: tip,
13                     scale: 1.3,
14                     fill: new ol.style.Fill({
15                       color: '#000000'
16                     }),
17                     stroke: new ol.style.Stroke({
18                       color: '#FFFF99',
19                       width: 3.5
20                     })
21                 })
22             })
23         );
24         this.vectorSource.addFeature(pointFeature);
25     },
复制代码

最后效果如图:

整体代码:

链接: https://pan.baidu.com/s/1_kWPLJuTCOzVEx3Ci1eITA 密码: udxf

posted on   愤怒的小Ming  阅读(6994)  评论(1编辑  收藏  举报

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示