最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

openlayers4實(shí)現(xiàn)點(diǎn)動(dòng)態(tài)擴(kuò)散

 更新時(shí)間:2020年08月17日 15:34:15   作者:此愛如少年  
這篇文章主要為大家詳細(xì)介紹了openlayers4實(shí)現(xiàn)的點(diǎn)動(dòng)態(tài)擴(kuò)散,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了openlayers4實(shí)現(xiàn)的點(diǎn)動(dòng)態(tài)擴(kuò)散的具體代碼,供大家參考,具體內(nèi)容如下

原理:連續(xù)刷新地圖,并且刷新時(shí),修過點(diǎn)樣式的半徑大小,來實(shí)現(xiàn)擴(kuò)散效果;

//定義底圖
var baseLayer = new ol.layer.Vector({
 renderMode: 'image',
 source: new ol.source.Vector({
  url:'/data/shengjie.geojson',
  format: new ol.format.GeoJSON()
 }),
 style: new ol.style.Style({
  fill: new ol.style.Fill({
   color: '#0A122A'
  }),
  stroke: new ol.style.Stroke({
   color: '#6E6E6E',
   width: 1
  })
 })
})

var view = new ol.View({
 center: [108.7,34.8],
 zoom: 4,
 projection: "EPSG:4326"
});

var map = new ol.Map({
 target: 'map',
 view: view,
 layers: [baseLayer]
})


//定義一個(gè)矢量圖層,用于打點(diǎn)
var pointAnimationLayer = new ol.layer.Vector({
 source: new ol.source.Vector(),
 style: new ol.style.Style({
  image: new ol.style.Circle({
   fill: new ol.style.Fill({
    color: '#E6E6E6'
   }),
   radius: 4
  })
 })
})
map.addLayer(pointAnimationLayer);

//隨機(jī)寫的點(diǎn)坐標(biāo)
var points=[]
points.push([112.4,33.5]);
points.push([103.8,23.7]);
points.push([89.7,41.6]);

//將點(diǎn)添加到圖層
points.forEach(element => {
 var ft = new ol.Feature({
  geometry: new ol.geom.Point(element)
 });
 pointAnimationLayer.getSource().addFeature(ft);
});

//map渲染事件,回調(diào)動(dòng)畫
map.on('postcompose',animation);

//樣式中的半徑變量,通過不斷刷新點(diǎn)樣式的半徑來實(shí)現(xiàn)點(diǎn)動(dòng)態(tài)擴(kuò)散
var radius = 1;

//動(dòng)畫
function animation(event){
 if(radius >= 20){
  radius = 0
 }
 var opacity = (20 - radius) * (1 / 20) ;//不透明度
 var pointStyle = new ol.style.Style({
  image: new ol.style.Circle({
   radius:radius,
   stroke: new ol.style.Stroke({
    color: 'rgba(255,255,0' + opacity + ')',
    width: 2 - radius / 10
   })
  })
 })

 var features = pointAnimationLayer.getSource().getFeatures();
 
 var vectorContext = event.vectorContext;
 vectorContext.setStyle(pointStyle);
 features.forEach(element => {
  var geom = element.getGeometry();
  vectorContext.drawGeometry(geom);
 });
 radius = radius + 0.3;
 
 //觸發(fā)map的postcompose事件
 map.render();
}

實(shí)現(xiàn)

利用map的渲染事件:postcompose來連續(xù)刷新
之前實(shí)現(xiàn)地圖動(dòng)畫都是用window.setInterval()方法來實(shí)現(xiàn),這次拓展下視野,采用Openlayers內(nèi)部的方法。主要有兩步操作:

1、事件注冊(cè)

map.on('postcompose',animation);

2、在事件的回調(diào)函數(shù)中去觸發(fā)postcompose事件

map.render();

postcompose事件第一次觸發(fā)是在地圖初始化時(shí),后續(xù)的觸發(fā)都由animation方法中的map.render()來完成。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Bootstrap框架動(dòng)態(tài)生成Web頁面文章內(nèi)目錄的方法

    Bootstrap框架動(dòng)態(tài)生成Web頁面文章內(nèi)目錄的方法

    這篇文章主要介紹了Bootstrap框架動(dòng)態(tài)生成Web頁面文章內(nèi)目錄的方法,利用Bootstrap中的Affix和ScrollSpy插件便可以實(shí)現(xiàn),需要的朋友可以參考下
    2016-05-05
  • Web性能優(yōu)化系列 10個(gè)提升JavaScript性能的技巧

    Web性能優(yōu)化系列 10個(gè)提升JavaScript性能的技巧

    Javascript 性能優(yōu)化絕不是一種書面的技術(shù),Nicholas 的技術(shù)演進(jìn)列出了10條建議,幫助你寫出高效的 JS 代碼
    2016-09-09
  • 兼容IE和FF的圖片上傳前預(yù)覽js代碼

    兼容IE和FF的圖片上傳前預(yù)覽js代碼

    上傳前預(yù)覽使用js實(shí)現(xiàn)還是比較cool的,同時(shí)還可以兼容IE和FF的能做到這一點(diǎn)已經(jīng)相當(dāng)不容易了,下面與大家一起分享下具體的實(shí)現(xiàn),感興趣的你可不要錯(cuò)過了哈
    2013-05-05
  • JavaScript惰性加載的優(yōu)化技巧詳解

    JavaScript惰性加載的優(yōu)化技巧詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript在進(jìn)行惰性加載時(shí)的一些優(yōu)化技巧,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • javascript+HTML5 canvas繪制時(shí)鐘功能示例

    javascript+HTML5 canvas繪制時(shí)鐘功能示例

    這篇文章主要介紹了javascript+HTML5 canvas繪制時(shí)鐘功能,結(jié)合實(shí)例形式分析了javascript+HTML5 canvas數(shù)值運(yùn)算、圖形繪制與時(shí)間顯示相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • eslint 的三大通用規(guī)則詳解

    eslint 的三大通用規(guī)則詳解

    這篇文章主要介紹了eslint 的三大通用規(guī)則詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • JavaScript中push(),join() 函數(shù) 實(shí)例詳解

    JavaScript中push(),join() 函數(shù) 實(shí)例詳解

    本文通過實(shí)例給大家介紹了JavaScript中push(),join() 的知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • 一文詳解JavaScript中this指向的問題

    一文詳解JavaScript中this指向的問題

    JavaScript中this指向的問題是面試中常常會(huì)問到的,所以本文就來通過一些簡單的示例為大家詳細(xì)講講,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-04-04
  • 原生JS實(shí)現(xiàn)煙花效果

    原生JS實(shí)現(xiàn)煙花效果

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)煙花效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • JavaScript的各種常見函數(shù)定義方法

    JavaScript的各種常見函數(shù)定義方法

    這篇文章主要介紹了JavaScript的各種常見函數(shù)定義方法,包含了一些技巧的測試與分析總結(jié),需要的朋友可以參考下
    2014-09-09

最新評(píng)論

英德市| 龙游县| 城固县| 周宁县| 辽中县| 广安市| 永丰县| 噶尔县| 荆门市| 湘阴县| 焉耆| 凭祥市| 浦江县| 大理市| 抚顺县| 招远市| 菏泽市| 遂宁市| 南溪县| 泸西县| 扎囊县| 日喀则市| 商丘市| 乐业县| 邵东县| 高唐县| 项城市| 新安县| 津市市| 克山县| 乌鲁木齐市| 东安县| 尚志市| 通海县| 东辽县| 堆龙德庆县| 花莲市| 湘阴县| 温宿县| 平潭县| 韶关市|