当前位置: 首页 > news >正文

巩义机械厂网站建设山东住房和建设庭官网站官

巩义机械厂网站建设,山东住房和建设庭官网站官,苏州的建筑公司网站,十堰做网站最好的公司看过的知识不等于学会。唯有用心总结、系统记录,并通过温故知新反复实践,才能真正掌握一二 作为一名摸爬滚打三年的前端开发,开源社区给了我饭碗,我也将所学的知识体系回馈给大家,助你少走弯路! OpenLayers…

看过的知识不等于学会。唯有用心总结、系统记录,并通过温故知新反复实践,才能真正掌握一二
作为一名摸爬滚打三年的前端开发,开源社区给了我饭碗,我也将所学的知识体系回馈给大家,助你少走弯路!
OpenLayers、Leaflet 快速入门 ,每周保持更新 2 个案例
Cesium 快速入门,每周保持更新 4 个案例

OpenLayers 综合案例-动态闪烁

Vue 3 + OpenLayers 实现的 WebGIS 应用提供了完整的动态闪烁功能

主要功能

  1. 通过postrender事件监听实现点位半径渐变和线段透明度变化的动画效果,使用getVectorContext获取绘制上下文。
  2. 采用高德地图底图,支持自定义动画参数

在这里插入图片描述

MP4效果动画链接地址

技术栈

该环境下代码即拿即用

Vue 3.5.13+
OpenLayers 10.5.0+
Vite 6.3.5+
<template><div ref="mapContainer" id="map"></div>
</template><script setup>
import { ref, onMounted } from "vue";
import Map from "ol/Map.js";
import XYZ from "ol/source/XYZ.js";
import TileLayer from "ol/layer/Tile.js";
import VectorLayer from "ol/layer/Vector.js";
import VectorSource from "ol/source/Vector.js";
import Feature from "ol/Feature.js";
import Point from "ol/geom/Point.js";
import LineString from "ol/geom/LineString.js";
import { Style, Circle, Stroke } from "ol/style.js";
import { getVectorContext } from "ol/render.js"; // 获取用于在事件画布上绘制的矢量上下文
import View from "ol/View.js";
import "ol/ol.css";const mapContainer = ref(null);
let map = null;
let pointLayer = null;
let lineLayer = null;
let pointFeatures = [];
let lineFeatures = [];// 动画参数
let pointRadius = 0;
let lineOpacity = 1;
let lineDirection = -1;onMounted(() => {// 初始化地图map = new Map({target: mapContainer.value,layers: [new TileLayer({source: new XYZ({url: "https://webrd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}",}),}),],view: new View({center: [118.7784, 32.0647],zoom: 16,projection: "EPSG:4326",}),});// 创建点位要素const point1 = new Feature({ geometry: new Point([118.7784, 32.0647]) });const point2 = new Feature({ geometry: new Point([118.7884, 32.0657]) });const point3 = new Feature({ geometry: new Point([118.7684, 32.0677]) });pointFeatures = [point1, point2, point3];// 创建线段要素const line1 = new Feature({geometry: new LineString([[118.7784, 32.0647],[118.7884, 32.0657],]),});const line2 = new Feature({geometry: new LineString([[118.7884, 32.0657],[118.7684, 32.0677],]),});lineFeatures = [line1, line2];// 创建点位图层pointLayer = new VectorLayer({source: new VectorSource({ features: pointFeatures }),style: new Style({image: new Circle({radius: 5,stroke: new Stroke({ color: "#ff0000", width: 2 }),}),}),});// 创建线段图层lineLayer = new VectorLayer({source: new VectorSource({ features: lineFeatures }),style: new Style({stroke: new Stroke({ color: "#ff0000", width: 3 }),}),});map.addLayer(pointLayer);map.addLayer(lineLayer);// 点位闪烁动画pointLayer.on("postrender", (evt) => {if (pointRadius >= 20) pointRadius = 0;const opacity = (20 - pointRadius) * (1 / 20);const pointStyle = new Style({image: new Circle({radius: pointRadius,stroke: new Stroke({color: `rgba(255,0,0,${opacity})`,width: 3 - pointRadius / 10,}),}),});const vectorContext = getVectorContext(evt);vectorContext.setStyle(pointStyle);pointFeatures.forEach((feature) => {vectorContext.drawGeometry(feature.getGeometry());});pointRadius += 0.3;map.render();});// 线段闪烁动画lineLayer.on("postrender", (evt) => {if (lineOpacity <= 0.2) lineDirection = 1;if (lineOpacity >= 1) lineDirection = -1;lineOpacity += lineDirection * 0.05;const lineStyle = new Style({stroke: new Stroke({color: `rgba(255,0,0,${lineOpacity})`,width: 5,}),});const vectorContext = getVectorContext(evt);vectorContext.setStyle(lineStyle);lineFeatures.forEach((feature) => {vectorContext.drawGeometry(feature.getGeometry());});map.render();});
});
</script><style scoped>
#map {width: 100vw;height: 100vh;
}
</style>
http://www.dtcms.com/a/409226.html

相关文章:

  • 临沂做过网站的公司wordpress注册接口
  • 上海做网站的公司名称深圳4a广告公司
  • 为什么收不到自己网站网页搜索能力属于专业技术素养
  • 培 网站建设方案 doc福州品牌网站建设oem
  • 一个企业网站文章多少适合wordpress安装插件出错
  • 高端网站建设一般多少钱wordpress 仿ifanr
  • 湖北网站设计流程国内做优秀的农业信息网站
  • 网站改版要注意什么做网站多少钱_西宁君博领衔
  • 简述网站的建设流程大学网站建设的目标与思路
  • 免费h5网站制作平台全面的seo网站优化排名
  • 企业网站建设入账保定网站建设与seo
  • 自己如何建设网站外包网站价格
  • 有关学校网站建设的建议深圳市中心在哪个位置
  • 网站备案换公司吗潍坊网站建设联系方式
  • 做刀网站深圳app开发公司前十名
  • 公司做了网站怎么做推广wordpress常用插件汇总 知更鸟
  • 营销型网站建设iop牡丹江到林口
  • 官网网站搭建网站备案 公司
  • 普陀区网站建设无锡网页推广
  • 苏州网站设计营销公司建设标准 免费下载网站
  • wordpress免费主题网站智慧团建信息系统网站登录
  • 互联网网站基础最近几天的新闻
  • 网站手机版后台监测网站定制
  • 一个软件的开发流程图金华seo快速排名
  • 买个网站需要多少钱企业网站优化平台
  • 如何做好网站seoseo优化是指通过研究搜索引擎排名规则
  • 正规的丹阳网站建设松江佘山网站建设
  • 建设网站账号密码不区分大小写网站背景特效
  • 湛江做建站软仿舞蹈学校网站模板
  • 建站之星做网站wordpress如何进入后台