电子海图开发第二十篇 web电子海图 在电子海图上加载图标(共一百篇)

上一节我们讲述了如何才能加载地图,这一节我们讲述地图上加载图标有两种方式。

第一种方式是采用使用overlay的方式,这种主要是添加HTML元素,效率不高。加载少量图标比较合适,如果是加载批量图标就不合适了

第二种是使用Feature 模式,可以加载一个json数组,可以自定义图标

下面详细介绍第二种使用方式

//首先我们需要构造一个Feature json数组
function getshipjson() {	
	    var gesonboject = []
	    var coordinaete = ol.proj.transform([ 119,39 ], 'EPSG:4326', 'EPSG:3857');
	    var course = 300 / 180 * 3.14;
	    var speed = 10;				
	    shipjson = new ol.Feature({
		geometry : new ol.geom.Point(coordinaete),
		'type' : 'ship',
		'mmsi' : "412123456",
		'name' : "天康河",
		"course" : course,									
		"id" : 1
		});
				
	 gesonboject.push(shipjson);
	 return gesonboject
}

function showShip(geojsonObject) {
	map.removeLayer(vectorLayer);//vectorlayer 是全局变量,其实就是图标所在的图层,每次加载之前应该清除之前的图层
	vectorLayer = new ol.layer.Vector({ // 初始化矢量图层
		source : new ol.source.Vector({
			features : geojsonObject  // geojosnobject就是上面返回的featrue json 数组
		}),
		style : new ol.style.Style({
					image : new ol.style.Icon({
					rotation : feature.get('course'),//图标旋转的角度及图标存储位置
					src : feature.get('speed') > 3 ? 'images/ship.png':'images/anchor1.png'
					})
				});
         map.addLayer(vectorLayer); //map是之前的map地图容器
}

实际显示的效果如图所示 

联系作者及参考文章:web电子海图接口 web电子海图 ,电子海图开发引擎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子海图(微信lvxin6136)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值