首页 > 其他分享 >Arcgis 与 Pixi.js 可视化 glsl 特效篇(二十)

Arcgis 与 Pixi.js 可视化 glsl 特效篇(二十)

时间:2023-09-21 10:46:50浏览次数:51  
标签:glsl geometry js Arcgis let vec2 100 data

这次我们用pixi.js和arcgis js结合

我们先定义一下 传入数据结构 symbol 暂时不做

  • let option = {
  • renderer: {
  • type: "simple",
  • symbol: {
  • }
  • },
  • data: [
  • {
  • geometry: [12956152.73135875, 4855356.473704897],
  • attributes: {
  • name: "北京"
  • }
  • },
  • {
  • geometry: [12697872.012783196, 2577456.5937789795],
  • attributes: {
  • name: "深圳"
  • }
  • }
  • ]
  • };

 

对于data 数据 ,
toScreen 方法参考链接提示
app 的构建参考 链接提示

  • let data = this.options.data;
  • for(let item of data){
  • //转换屏幕坐标,获取颜色,半径和线条粗细样式
  • let geo = item.geometry
  • let XY1 = toScreen(geo);
  • const geometry = new PIXI.Geometry()
  • .addAttribute("position", [100, 100, -100, 100, -100, -100, 100, -100, 200, 200], 2)
  • .addAttribute('uv', // the attribute name
  • [0, 0, // u, v
  • 1, 0, // u, v
  • 1, 1,
  • 0, 1], // u, v
  • 2)
  • .addIndex([0, 1, 2, 0, 2, 3]);
  • const fragmentShader = `
  • uniform float iTime;
  • const vec2 iResolution = vec2(1.0,1.0);
  • varying vec2 iMouse;
  • varying vec2 vUv;
  • float hexLength(vec2 v) {
  • vec2 a = abs(v);
  • return max((2.0/sqrt(3.0))*a.x, (1.0/sqrt(3.0))*a.x + a.y);
  • }
  • void main(void) {
  • vec3 c;
  • float l,z=iTime;

Arcgis 与 Pixi.js 可视化 glsl 特效篇(二十) - 小专栏

标签:glsl,geometry,js,Arcgis,let,vec2,100,data
From: https://www.cnblogs.com/haibalai/p/17719309.html

相关文章

  • Arcgis 与 Pixi.js 可视化 glsl 特效篇(十九)
    这次我们用pixi.js和arcgisjs结合我们先定义一下传入数据结构symbol暂时不做let option={renderer:{type:"simple",symbol:{}},data:[{geometry:[12956152.73135875,4855356.473704897],attributes:{name:"北京"}},{geometry:[12697872.01278319......
  • 【漏洞复现】深信服 SG上网优化管理系统 catjs.php 任意文件读取漏洞
    1、简介2、漏洞描述深信服SG上网优化管理系统catjs.php存在任意文件读取漏洞,攻击者通过漏洞可以获取服务器上的敏感文件3、受影响版本深信服SG上网优化管理系统4、FOFA语句title==“SANGFOR上网优化管理”5、漏洞复现POCPOST/php/catjs.phpHTTP/1.1Host:User-A......
  • c++ 简单模拟js Promise
    main:#include<stdio.h>#include"common.h"#include"promise.h"#include<chrono>//std::chrono::seconds#include<thread>//std::this_thread::sleep_forintmain(void){Promise*pro=newPromise([](ca......
  • [880] Calculate Field in ArcGIS Pro (with python code)
    Firstly,weshoulddefineafunction.defIsFlood(join_count):ifjoin_count>0:return"Yes"else:return"No"Secondly,weshouldcallthisfunctionusingtheotherfieldslike IsFlood(!Join_Count!)Here......
  • Node.js 20 —— 几个令人大开眼界的特性
    前言:欢迎来到Node.js20Node.js20已经发布,带来了创新和激动人心的新时代。这个开创性的版本于2023年4月18日首次亮相,并将在2023年10月发布长期支持(LTS)版本,并且将持续支持至2026年4月,下面小编就为大家介绍一下Node.js20的几个新特性:1.Node.js权限访问Node.js20正式推出了......
  • js解密日记3 jsentrypt带给我的困扰
    随着技术的不断进步,保护敏感数据已成为开发者的首要任务之一。加密是一种保护数据的方法,JSenCrypt是一款流行的加密库,提供了HTML、Python和Node.js版本。本文将探讨每个版本的特点、优点、缺点,并提供代码示例来演示它们的用法。jsentryptHTML版本优点:客户端加密:jsentrypt......
  • 一文彻底搞懂JS函数柯里化
    函数柯里化是一种强大的函数式编程技术,它使我们能够预设函数的参数,创建新的函数,并在需要的时候执行这些函数。这个技术提供了强大的代码复用和组合能力,使我们的代码变得更简洁、更具可读性。什么是函数柯里化?函数柯里化(Currying)是在函数式编程中常用的技术,它的基本思想是将......
  • delphi JSON序列化(四)
    {TDateTimeConverter}functionTDateTimeConverter.CanConvert(ATypeInf:PTypeInfo):Boolean;beginResult:=True;end;functionTDateTimeConverter.ReadJson(constAReader:TJsonReader;ATypeInf:PTypeInfo;constAExistingValue:TValue;constASerial......
  • 使用js开发一个快速打开前端项目的alfred插件
    使用js开发一个快速打开前端项目的插件目录前言使用的技术栈步骤问题发现待优化前言一直以来开发都是先打开vscode,然后选择项目,在项目多的情况下会觉得挺繁琐;如果同时打开了许多vscode窗口,寻找目标窗口也比较麻烦,于是萌生了开发一个alfred的工作流插件的想法,目标是在alf......
  • Three.js中实现对InstanceMesh的碰撞检测
    1.概述之前的文章提到,在Three.js中使用InstanceMesh来实现性能优化,可以实现单个Mesh的拾取功能那,能不能实现碰撞检测呢?肯定是可以的,不过Three.js中并没有直接的API可以实现对InstanceMesh的碰撞检测,需要手动实现回顾本文的描述的Three.js的场景前提:使用InstanceMesh来构建数......