提供 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)
使用流程
- 需求分析: 确定需要的地图类型(2D/3D)和功能模块
- 环境准备: 先检查是否引入在线或者本地资源,如果已经引入资源,则不检查环境;若没有引入,检查当前工程是否有环境,若没有,则使用
@arcgis/core包安装 SDK。 - 组件选择: 根据功能需求选择对应的图层和组件
- 代码实现: 参考 references/api-guide.md 中的模式
- 性能优化: 注意图层销毁、事件监听清理、大型数据集的分块加载
- 测试验证: 在不同浏览器和设备上测试功能
注意事项
- 使用天地图作为底图时,需要申请天地图API密钥
- 3D场景优先考虑 IntegratedMeshLayer、SceneLayer、GraphicLayer
- 实现自定义WebGL渲染时参考RenderNode文档
- 空间分析功能需要相应的分析服务支持
热门AI工具
相关专题
在JavaScript中实现Base64编码,最直接的方式是使用内置的btoa()函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
379
2025.10.24
在 html 中调用外部 js 可通过以下步骤:创建 js 文件并编写代码。在 html 代码中添加 <script> 标签,设置 src 属性为 js 文件路径。保存并刷新页面加载外部 js。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
1712
2024.04.11
php和js的区别:PHP主要用于服务器端编程,而JavaScript主要用于客户端编程;PHP代码在服务器端执行,而JavaScript代码在客户端浏览器中执行。想了解更多php和js的相关内容,可以阅读本专题下面的文章。
4828
2024.03.22
在JavaScript中,document对象是一个非常重要的全局对象,它代表整个HTML文档。想了解更多Document的相关内容,可以阅读本专题下面的文章。
6047
2024.03.14
在JavaScript中,并没有一个内建的each函数,但jQuery库提供了一个非常有用的$.each() 函数,用于遍历数组或对象。想了解更多each函数的相关内容,可以阅读本专题下面的文章。
1629
2024.03.13
js和vue的关系:1、js作为web开发基石;2、vue.js作为前端框架的崛起;3、js与vue的互补关系;4、js与vue的实践应用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
353
2024.03.11
PHP中文网为大家带来,js实现弹幕功能的方法:1、创建html文件;2、添加html代码架构;3、在body标签中使用div、input、button标签分给页面设计效果显示框、输入框、弹幕提交按钮;4、添加script标签并写入js代码来实现弹幕效果;5、通过浏览器方式查看设计效果即可。希望对大家有所帮助。
2992
2024.03.04
js事件冒泡可以解决的问题:1、简化事件处理逻辑;2、提高事件处理性能;3、实现自定义组件和交互效果;4、控制事件传播方向;5、解决事件覆盖问题;6、实现全局事件监听;7、方便调试和排查问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
2824
2024.02.23
js的split方法是字符串的一个方法,用于将字符串按照指定的分隔符分割成子字符串,并返回一个新的数组,其语法为“string.split(separator, limit)”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
1127
2023.11.24
热门下载
相关下载
精品课程
共39课时 | 5.4万人学习
共101课时 | 21.2万人学习
共39课时 | 4.9万人学习
最新文章