openLayer4實現(xiàn)動態(tài)改變標注圖標
更新時間:2020年08月17日 15:41:10 作者:loves小魚兒
這篇文章主要為大家詳細介紹了openLayer4實現(xiàn)動態(tài)改變標注圖標,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了openLayer4動態(tài)改變標注圖標的具體代碼,供大家參考,具體內(nèi)容如下
地圖上經(jīng)常需要標出標注,標注點擊之后要有相應的變化來達到一定的效果。此實例即在地圖上添加圖片標注,點擊標注,更換標注圖片,再點擊其他標注,上一個標注恢復原來的標注圖片。
/*初始化地圖*/
var map;
function initmap(){
map= new ol.Map({
layers: layers,
target: 'mapContainer',
view: new ol.View({
//地圖中心坐標
center: new ol.proj.fromLonLat([117.191166, 34.289749],'EPSG:3857'),
zoom: 13//地圖縮放級別
})
});
//添加標注
addFeature();
}
/*添加標注信息*/
function addFeature(){
//數(shù)據(jù)太多,放json里讀取,里面是標注的坐標信息
$.get('./featureData.json').done(function(data){
var data = eval(data);
var lon = 0;
var lat = 0;
var romeArr = [];
for(var i=0;i<data .length;i++){
lon = parseFloat(data [i].lon);
lat = parseFloat(data [i].lat);
name = data[i].name;
var rome = new ol.Feature({
geometry:new ol.geom.Point(new ol.proj.fromLonLat([lon,lat],'EPSG:3857')),
name:name
});
//標注樣式設置
rome.setStyle(new ol.style.Style({
image: new ol.style.Icon(({
crossOrigin: 'anonymous',
scale:0.3, //標注圖標大小
src: 'images/vtourskin_mapspot.png'
}))
}));
romeArr.push(rome);
}
//定義select控制器,點擊標注后的事件
var select= new ol.interaction.Select();
//map加載該控件,默認是激活可用的
map.addInteraction(select);
select.on('select', function(e) {
/*恢復其他圖標樣式*/
romeArr.forEach(function(ele){
ele.setStyle(new ol.style.Style({
image: new ol.style.Icon(({
crossOrigin: 'anonymous',
scale:0.3,
src: 'images/vtourskin_mapspot.png'
}))
}));
})
console.log(e.selected); //打印已選擇的Feature
/*當前選擇的圖標變化,在此僅改變了圖片路徑以顯示不同的圖標,可以根據(jù)自己的需要進行設置*/
var currentRome = e.selected[0];
currentRome.setStyle(new ol.style.Style({
image: new ol.style.Icon(({
crossOrigin: 'anonymous',
scale:0.3,
src: 'images/vtourskin_mapspotactive.png'
}))
}));
});
vectorSource = new ol.source.Vector({
features: romeArr
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
map.addLayer(vectorLayer);
});
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
找到了一篇jQuery與Prototype并存的沖突的解決方法
找到了一篇jQuery與Prototype并存的沖突的解決方法...2007-08-08
JS 動態(tài)判斷PC和手機瀏覽器實現(xiàn)代碼
這篇文章主要介紹了JS 動態(tài)判斷PC和手機瀏覽器實現(xiàn)代碼的相關資料,需要的朋友可以參考下2016-09-09

