ArcGIS API for JavaScript 4.x 实现动态脉冲效果

这篇具有很好参考价值的文章主要介绍了ArcGIS API for JavaScript 4.x 实现动态脉冲效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 设计思路

主要通过定时刷新,每一次的脉冲渲染圈不停的放大,并且透明度缩小,直到达到一定的大小再退回0。

2. 实现代码

import MapView from "@arcgis/core/views/MapView";
import GraphicsLayer from "@arcgis/core/layers/GraphicsLayer";
import Point from "@arcgis/core/geometry/Point";
import SimpleMarkerSymbol from "@arcgis/core/symbols/SimpleMarkerSymbol"
import Graphic from "@arcgis/core/Graphic";
import SceneView from "@arcgis/core/views/SceneView";

export class FlashPointLayer{
    view: MapView | SceneView;
    flashLayer:GraphicsLayer 
    piontArr:Point[]
    size:number
    alpha:number
    markerSymbol:SimpleMarkerSymbol
    animationId:number
    constructor(view:MapView | SceneView){
        this.view = view
        this.flashLayer = new GraphicsLayer({
            id: 'flashLayer',
            title: 'flashLayer',
        })
        this.piontArr = []
        this.markerSymbol = new SimpleMarkerSymbol({
            style:'circle',
            size:15,
            color:[255, 0, 0, 0.85],
            outline:{
                color: [ 0,0,0,0]
            }
        });
        this.size = 5
        this.alpha = (101-this.size)/100
        this.animationId = 0
        this.startAnimation()
    }
    //添加多个闪烁点
    addManyPoint(pointArr:number[][]){
        pointArr.forEach(point=>{
            this.piontArr.push(new Point({
                x: point[0],
                y: point[1],
                spatialReference: this.view.spatialReference,
            }))
        })
    }
    //添加单个闪烁点
    addPoint(lon:number,lat:number){
        const point =  new Point({
            x: lon,
            y: lat,
            spatialReference: this.view.spatialReference,
          });
          this.piontArr.push(point)
    }  
    //启动动画
    startAnimation = ()=>{
        const centerGraphicArr:Graphic[] = []
        const rippleGraphicArr:Graphic[] = []
        this.size = this.size>99?0:this.size+2
        this.alpha = (101- this.size)/100;
        this.piontArr.forEach(point=>{
            centerGraphicArr.push(new Graphic({
                geometry:point,
                symbol:this.markerSymbol
            }))
            rippleGraphicArr.push(new Graphic({
                geometry:point,
                symbol:new SimpleMarkerSymbol({
                    style:'circle',
                    size:this.size,
                    color:[255, 0, 0, this.alpha],
                    outline:{
                        color: [ 0,0,0,0]
                    }
                })
            }))
        })
        this.flashLayer.removeAll();
        this.flashLayer.addMany(centerGraphicArr)
        this.flashLayer.addMany(rippleGraphicArr)
        this.view.map.remove(this.flashLayer)
        this.view.map.add(this.flashLayer)
        this.animationId = window.requestAnimationFrame(this.startAnimation);
    }
    //暂停动画
    pauseAnimation = ()=>{
        window.cancelAnimationFrame(this.animationId)
    }
}

这个文件拿去可以直接使用,下面是引入的方式:

//这里需要传入MapView或者ScanView
let flashPointLayer = new FlashPointLayer(viewHandler.getView())

然后可以调用提供的方法实现动态点的添加,动画的暂停和启动。

3. 最终效果

ArcGIS API for JavaScript 4.x 实现动态脉冲效果,地理信息,Vue,前端小记,arcgis,javascript,开发语言文章来源地址https://www.toymoban.com/news/detail-703750.html

到了这里,关于ArcGIS API for JavaScript 4.x 实现动态脉冲效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ArcGIS API for JavaScript 4.x 教程(四) 添加点、线和多边形

    了解如何在地图中显示点、线和多边形图形。 图形是用于在地图或场景中显示点、线、多边形和文本的视觉元素。图形由几何图形、符号和属性组成,单击时可以显示弹出窗口。您通常使用图形来显示未连接到数据库(即GPS位置)的地理数据。 在本教程中,您将学习如何将

    2024年02月13日
    浏览(9)
  • arcgis for javascript api4.26 本地tomcat部署,以及解决跨域访问问题

    arcgis for javascript api4.26 本地tomcat部署,以及解决跨域访问问题

    一、配置java_jdk以及tomcat arcgis for javascript api 部署到本地服务器,可以是 iis ,也可以是 tomcat ,我这里是部署到tomcat,所以就 介绍一下tomcat上部署的步骤 。 如果电脑上有本地服务器的,可以跳过这一章,直接从第二章开始看 下载arcgis for javascript API 要部署到tomcat,咱得有tomcat

    2024年02月07日
    浏览(15)
  • 地理信息系统(ArcGIS)在水文水资源、水环境中的应用

    刘老师(副教授): 来自北京重点高校资深专家,长期从事水资源与水环境、流域污染控制与管理、非点源模拟与控制、环境信息系统开发、环境遥感与GIS应用等领域的研究,发表多篇Sci论文、具有资深的技术底蕴和专业背景。 1、掌握GIS相关知识,熟悉ArcGIS软件(请自备电

    2024年04月15日
    浏览(10)
  • ArcGIS JSAPI 学习教程 - 初识 ArcGIS Maps SDK for JavaScript

    ArcGIS JSAPI 学习教程 - 初识 ArcGIS Maps SDK for JavaScript

    近期由于工作需要,开始接触 ArcGIS Maps SDK for JavaScript (以下简称 JSAPI ),为了更好的系统的学习,准备开设专栏,作为学习记录。 本文作为第一篇,首先介绍一下 JSAPI 的概览、官方示例以及官方 API。 然后完成 JSAPI 的 helloworld 以及注意事项。 最后简述一下 JSAPI 的优势劣势

    2024年01月19日
    浏览(53)
  • 基于arcgis js api 4.x开发点聚合效果

    基于arcgis js api 4.x开发点聚合效果

    一、代码   二、效果 1.开启聚合 2.取消聚合

    2024年01月19日
    浏览(9)
  • ArcGIS Maps SDK for JavaScript系列之一:在Vue3中加载ArcGIS地图

    ArcGIS Maps SDK for JavaScript系列之一:在Vue3中加载ArcGIS地图

    ArcGIS Maps SDK for JavaScript 是由 Esri 公司开发的一款用于构建交互式地图应用程序的 JavaScript 库。它提供了丰富的地图显示、分析和可视化功能,适用于各种场景。 目前,ArcGIS Maps SDK for JavaScript 提供两个主要版本:3.x 和 4.x。 ArcGIS Maps SDK for JavaScript 3.x 版本: 3.x 版本是 ArcGIS

    2024年02月13日
    浏览(37)
  • arcgis javascript api4.x以basetilelayer方式加载arcgis发布的栅格切片服务

    arcgis javascript api4.x以basetilelayer方式加载arcgis发布的栅格切片服务

    以arcgis js api的basetilelayer加载arcgis发布的栅格切片服务 https://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer/?f=pjson 这样获取 https://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer/WMTS/1.0.0/WMTSCapabilities.xml   先确保以一张为例有结果返回 https://map.geoq.cn/arcgis/rest/services/ChinaO

    2024年01月19日
    浏览(18)
  • Unity 之ASE实现触电,电流,电脉冲效果

    Unity 之ASE实现触电,电流,电脉冲效果

    最近在做一个电力的项目,里面需要用到一个身体触电的特效,网上找了一圈都没有合适的,最后干脆自己写一个,参考了一个ShaderGraph的效果,原理都一样。 首先是简单分析下电脉冲的原理,电脉冲的效果一般是一个电流圈,然后电流全根据UV的流动在物体表面来回流动。

    2024年02月06日
    浏览(8)
  • ArcGIS Maps SDK for JavaScript系列之二:认识Map和MapView

    ArcGIS Maps SDK for JavaScript系列之二:认识Map和MapView

    在 ArcGIS Maps SDK for JavaScript 中,Map 和 MapView 是两个重要的概念,用于创建和展示地图应用程序。 Map 表示一个地图对象,它是地图应用程序的基础。Map 可以包含一个或多个图层(Layer),可以是基础底图图层、矢量图层、栅格图层或者任何其他类型的图层。Map 也可以包含地图

    2024年02月12日
    浏览(9)
  • ArcGIS Runtime API for Android--如何从Geometry中获取闭合区域面积?

    使用草图编辑器可以很方便的在底图上进行点线面的绘制,但是绘制完的图形,如何获取值呢?我查了很多资料都没说到关键点,可能默认大家都会,但是我比较菜,还是需要详细说明的。通过官方文档最终实现了面积数据的提取(文档终于看明白了)。 目录  效果 1.Geome

    2024年02月15日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包