讲师中心 微信公众号
AI工具推荐 视频效率加速

arcgis-js

Polar Sponsor
爱发电 赞助
.NET 9.0

提供 ArcGIS Maps SDK for JavaScript 开发辅助,涵盖 2D/3D 地图视图、图层管理、数据可视化、空间分析等功能模块的参考和示例指导。

ArcGIS Maps SDK for JavaScript Skill

功能概述

ArcGIS Maps SDK for JavaScript Skill是一项面向实际任务的技能,主要用于本 skill 提供 ArcGIS JS API 的开发辅助,适用于需要创建 Web 地图应用、3D 场景可视化和空间分析功能的开发任务;使用本 skill 当用户请求:;

核心要点

  • 创建 2D 地图或 3D 场景应用,但是以 3D 场景为主,除非用户要求 2D 地图;
  • 创建地图时,使用天地图资源作为底图,详情可见完。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

ArcGIS Maps SDK for JavaScript Skill

本 skill 提供 ArcGIS JS API 的开发辅助,适用于需要创建 Web 地图应用、3D 场景可视化和空间分析功能的开发任务。

触发条件

使用本 skill 当用户请求:

  • 创建 2D 地图或 3D 场景应用,但是以 3D 场景为主,除非用户要求 2D 地图
  • 创建地图时,使用天地图资源作为底图,详情可见完整示例
  • 实现 Mesh 自定义数据(顶点、索引、uv、法线等)渲染(https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/#Mesh,https://developers.arcgis.com/javascript/latest/sample-code/geometry-mesh-primitives/)。
  • 使用各种图层(IntegratedMeshLayer、FeatureLayer、SceneLayer、ImageryLayer 等),其中IntegratedMeshLayer、SceneLayer、GraphicLayer优先级更高。
  • 实现 RenderNode 自定义 WebGL 渲染(https://developers.arcgis.com/javascript/latest/references/core/views/3d/webgl/RenderNode/,https://developers.arcgis.com/javascript/latest/sample-code/custom-render-node-windmills/)。
  • 实现数据可视化和符号化渲染
  • 进行空间分析(视域分析、高程剖面、通视分析等)
  • 使用 API 组件和工具(Search、Legend、Editor、Sketch 等)

功能模块

1. 入门基础

SceneView (3D 场景)

1.1 使用 tiainditu_view 初始化

// 引入修复后的天地图工具类
const getTianditu = await $arcgis.import("https://openlayers.vip/examples/resources/tiainditu_view.js");

const view = new getTianditu.default({
	container: "mapContainer",
	center: [118.805, 34.027],
	zoom: 13,
});


const map = view.map;

view.when(() => console.log("三维地图加载完成!"));

1.2 使用 tianditu 作为底图初始化

const Map = await $arcgis.import("@arcgis/core/Map.js");

const SceneView = await $arcgis.import("@arcgis/core/views/SceneView.js");
const ElevationLayer = await $arcgis.import("@arcgis/core/layers/ElevationLayer.js");
const getTianditu = await $arcgis.import("https://openlayers.vip/examples/resources/tianditu.js");

// 初始矢量底图
const vecLayers = getTianditu.default({ type: "vec_w" });
const map = new Map({
	basemap: { baseLayers: [vecLayers.base, vecLayers.anno] },
	ground: {
		layers: [
			new ElevationLayer({
				url: 'https://www.geosceneonline.cn/image/rest/services/OpenData/ChinaTerrain3D/ImageServer'
			})
		],
	}
});

const view = new SceneView({
	container: "mapContainer",
	map: map,
	center: [118.805, 34.027],
	zoom: 13,
	tilt: 45
});


view.when(() => console.log("地图切换底图示例加载完成!"));

1.3 组件化模式(components)初始化




    
    
    Custom Basemap | Sample | ArcGIS Maps SDK for JavaScript

    
    

    




    
    
    
    








2. 图层系统

矢量图层

  • FeatureLayer - 要素图层,支持查询和编辑
  • CSVLayer - CSV 数据加载
  • GeoJSONLayer - GeoJSON 格式支持
  • OGCFeatureLayer - OGC 标准服务

影像图层

  • ImageryLayer - 影像服务图层
  • ImageryTileLayer - 影像瓦片
  • Multidimensional ImageryTileLayer - 多维时序数据

3D 图层

  • SceneLayer - 场景图层(建筑物、BIM)
  • PointCloudLayer - 点云数据
  • IntegratedMeshLayer - 集成网格
  • VoxelLayer - 体素图层(体数据可视化)

3. 数据可视化

分级色彩渲染 (ClassBreaksRenderer)

layer.renderer = {
  type: "class-breaks",
  field: "population",
  classBreakInfos: [
    { minValue: 0, maxValue: 10000, symbol: ... },
    { minValue: 10000, maxValue: 50000, symbol: ... }
  ]
};

唯一值渲染 (UniqueValueRenderer)

layer.renderer = {
  type: "unique-value",
  field: "type",
  uniqueValueInfos: [
    { value: "residential", symbol: ... },
    { value: "commercial", symbol: ... }
  ]
};

数据驱动可视化变量

  • Color visual variable - 颜色变量
  • Size visual variable - 大小变量
  • Opacity visual variable - 透明度变量
  • Rotation visual variable - 旋转变量

4. 空间分析

  • Elevation Profile - 高程剖面分析
  • Line of Sight - 通视分析
  • Viewshed - 视域分析
  • Shadow Cast - 阴影分析
  • Aggregate Points - 点聚合统计

5. 常用组件

组件 功能
Search 地理搜索
Legend 图例显示
LayerList 图层管理
Sketch 草图绘制
Editor 要素编辑
Popup 弹出信息

6. 重要资源

官方文档

  • API 参考: https://developers.arcgis.com/javascript/latest/references/
  • 示例代码: https://developers.arcgis.com/javascript/latest/sample-code/
  • 可视化示例代码: https://ralucanicola.github.io/JSAPI_demos/
  • 博客: https://community.esri.com/t5/forums/searchpage/tab/message?filter=location&noSynonym=false&location=category:arcgis-api-for-javascript
  • questions: https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/bd-p/arcgis-api-for-javascript-questions

核心包

  • @arcgis/core - 核心 API (4.34+ 版本)
  • @arcgis/map-components - 地图组件
  • @arcgis/charts-components - 图表组件
  • @arcgis/ai-components - AI 组件 (Beta)

使用流程

  1. 需求分析: 确定需要的地图类型(2D/3D)和功能模块
  2. 环境准备: 先检查是否引入在线或者本地资源,如果已经引入资源,则不检查环境;若没有引入,检查当前工程是否有环境,若没有,则使用 @arcgis/core 包安装 SDK。
  3. 组件选择: 根据功能需求选择对应的图层和组件
  4. 代码实现: 参考 references/api-guide.md 中的模式
  5. 性能优化: 注意图层销毁、事件监听清理、大型数据集的分块加载
  6. 测试验证: 在不同浏览器和设备上测试功能

注意事项

  • 使用天地图作为底图时,需要申请天地图API密钥
  • 3D场景优先考虑 IntegratedMeshLayer、SceneLayer、GraphicLayer
  • 实现自定义WebGL渲染时参考RenderNode文档
  • 空间分析功能需要相应的分析服务支持
目录

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
js实现base64编码
js实现base64编码

在JavaScript中实现Base64编码,最直接的方式是使用内置的btoa()函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

379

2025.10.24

html中如何调用外部js
html中如何调用外部js

在 html 中调用外部 js 可通过以下步骤:创建 js 文件并编写代码。在 html 代码中添加 <script> 标签,设置 src 属性为 js 文件路径。保存并刷新页面加载外部 js。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1712

2024.04.11

php和js的区别
php和js的区别

php和js的区别:PHP主要用于服务器端编程,而JavaScript主要用于客户端编程;PHP代码在服务器端执行,而JavaScript代码在客户端浏览器中执行。想了解更多php和js的相关内容,可以阅读本专题下面的文章。

4828

2024.03.22

JS的Document介绍
JS的Document介绍

在JavaScript中,document对象是一个非常重要的全局对象,它代表整个HTML文档。想了解更多Document的相关内容,可以阅读本专题下面的文章。

6047

2024.03.14

js中each函数的用法
js中each函数的用法

在JavaScript中,并没有一个内建的each函数,但jQuery库提供了一个非常有用的$.each() 函数,用于遍历数组或对象。想了解更多each函数的相关内容,可以阅读本专题下面的文章。

1629

2024.03.13

js和vue的关系
js和vue的关系

js和vue的关系:1、js作为web开发基石;2、vue.js作为前端框架的崛起;3、js与vue的互补关系;4、js与vue的实践应用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

353

2024.03.11

js弹幕功能实现方法
js弹幕功能实现方法

PHP中文网为大家带来,js实现弹幕功能的方法:1、创建html文件;2、添加html代码架构;3、在body标签中使用div、input、button标签分给页面设计效果显示框、输入框、弹幕提交按钮;4、添加script标签并写入js代码来实现弹幕效果;5、通过浏览器方式查看设计效果即可。希望对大家有所帮助。

2992

2024.03.04

js事件冒泡可以解决哪些问题
js事件冒泡可以解决哪些问题

js事件冒泡可以解决的问题:1、简化事件处理逻辑;2、提高事件处理性能;3、实现自定义组件和交互效果;4、控制事件传播方向;5、解决事件覆盖问题;6、实现全局事件监听;7、方便调试和排查问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2824

2024.02.23

js的split用法
js的split用法

js的split方法是字符串的一个方法,用于将字符串按照指定的分隔符分割成子字符串,并返回一个新的数组,其语法为“string.split(separator, limit)”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1127

2023.11.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 21.2万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 4.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn