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

news/2024/7/24 14:25:47 标签: javascript, jsapi, arcgis jsapi, 初试jsapi, 初识, arcgis

Cesium 实战 - 自定义视频标签展示视频

    • JSAPI 介绍
    • JSAPI Helloworld
    • JSAPI 优势劣势
    • 在线示例

近期由于工作需要,开始接触 ArcGIS Maps SDK for JavaScript(以下简称 JSAPI),为了更好的系统的学习,准备开设专栏,作为学习记录。

本文作为第一篇,首先介绍一下 JSAPI 的概览、官方示例以及官方 API。

然后完成 JSAPI 的 helloworld 以及注意事项。

最后简述一下 JSAPI 的优势劣势。


JSAPI 介绍

1. JSAPI 概览

ArcGIS Maps SDK for JavaScript 是 ESRI 公司开发的 Web 端地图库,目前最新版本为 4.28,下文简称 JSAPI

JSAPI 包含二维和三维部分,其中二维跟 Openlayers 相当,三维跟 Cesium 相当。

不同的是,JSAPI 是闭源的,但是可以免费使用!

JSAPI 为了方便大家使用,提供了一系列教程,其中 API 和 示例代码最常用,下边分别介绍。

2. 官方示例

官方示例:Sample Code

在这里插入图片描述

3. 官方 API

官方 API:API Reference

在这里插入图片描述

4. 官方资源地址


<link rel="stylesheet" href="https://js.arcgis.com/4.28/esri/themes/light/main.css">
<script src="https://js.arcgis.com/4.28/"></script>

<!--个人镜像资源-->
<link rel="stylesheet" href="https://openlayers.vip/arcgis/4.28/esri/themes/light/main.css" />
<script src="https://openlayers.vip/arcgis/4.28/init.js"></script>

官方下载地址:JSAPI downloads

注意:需要注册登录!也可以点这里下载:CSDN JSAPI downloads


JSAPI Helloworld

JSAPI 入门比较简单,这里就贴一下代码,注意事项都在注释里:


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    <title>Intro to SceneView - Create a 3D map | Sample | ArcGIS Maps SDK for JavaScript 4.28</title>
    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

    <!--个人镜像资源-->
    <link rel="stylesheet" href="https://openlayers.vip/arcgis/4.28/esri/themes/light/main.css" />
    <script src="https://openlayers.vip/arcgis/4.28/init.js"></script>

    <script>javascript">
      require(["esri/Map", "esri/views/SceneView"], (Map, SceneView) => {
        // 创建地图
        const map = new Map({
          // 基础图层
          basemap: "satellite",
          // 地形高程
          ground: "world-elevation"
        });

        // 创建地图视图
        const view = new SceneView({
          // 地图容器
          container: "viewDiv",
          // 传入地图对象
          map: map,
          // 地图相机
          camera: {
            // 初始位置
            position: {
              // 坐标系
              // 坐标系
              spatialReference: {
                wkid: 4326
              },
              x: 115,
              y: 32,
              z: 18161244.728082635
            },
            // 初始视角
            heading: 0,
            tilt: 0.49
          }
        });
      });
    </script>
  </head>

  <body>
    <div id="viewDiv"></div>
  </body>
</html>


JSAPI 优势劣势

  1. JSAPI 优势

JSAPI 优势很明显,功能齐全切强大,封装了大量项目中常用的功能,尤其是数据查询、数据渲染相关的。

比如:几何数据渲染、几何分析、要素查询、可视化渲染等。

熟练的使用这些方法,可以迅速的完成常规的漂亮的项目。

另外,JSAPI 依据 ArGIS 强大的功能,利用 WASM 实现了很多前端难以实现的功能!

Graphics:点线面以及几何体(通常几何体需要自己用 mesh 实现)。
在这里插入图片描述

Analysis:分析功能,JSAPI 提供一个几何分析的引擎;以及其他各种分析功能。
在这里插入图片描述

Query:查询功能,包含客户端查询和服务端查询。
在这里插入图片描述

Visualization:可视化功能,各种形式展示数据,非常常用。
在这里插入图片描述

  1. JSAPI 劣势

JSAPI 作为闭源地图库,社区活跃人数相对较少,因此遇到问题或者想要实现一些复杂功能就比较困难。

自己研究 JSAPI 源码,扩展功能,一是违背闭源原则,另外就是也非常困难。

除此之外,JSAPI 对外开放的接口较少,对于很多地图对象,想要扩展使用很不容易。

比如,想要实现几何体(立方体、管道等)就需要自己通过三角面实现;

比如,想要实现可视域分析难度就比较大。而对于 Cesium 就相对容易一些。

在这里插入图片描述


在线示例

JSAPI 在线示例:jsapi-helloworld


http://www.niftyadmin.cn/n/5335967.html

相关文章

UI开发布局-HarmonyOS应用UI开发布局

UI页面的构建不用再像Android开发过程中在.xml文件中书写&#xff0c;可直接在页面上使用声明式UI的方式按照布局进行排列&#xff0c;构建应用的页面。 如下代码使用Row、Column构建一个页面布局&#xff0c;在页面布局中添加组件Text、Button&#xff0c;共同构成页面&#…

从 Context 看 Go 设计模式:接口、封装和并发控制

文章目录 Context 的基本结构Context 的实现和传递机制为什么 Context 不直接传递指针案例&#xff1a;DataStore结论 在 Go 语言中&#xff0c; context 包是并发编程的核心&#xff0c;用于传递取消信号和请求范围的值。但其传值机制&#xff0c;特别是为什么不通过指针传递…

OceanBase基础概念

文章目录 基本概念介绍集群、Zone和OB ServerRootService总控服务多租户机制&#xff0c;资源隔离&#xff0c;数据隔离资源池创建租户检查集群状态查看系统日志 基本概念介绍 集群、Zone和OB Server 一个集群由多个Zone组成&#xff0c;给集群内的一批机器打上同一个tag&#…

Qt文件和目录相关操作

1.相关说明 QCoreApplication类、QFile类、QDir、QTemporaryDir类、QTemporaryFile类、QFileSystemWatcher类的相关函数 2.相关界面 3.相关代码 #include "dialog.h" #include "ui_dialog.h" #include <QFileDialog> #include <QTemporaryDir>…

【stm32】hal库学习笔记-GPIO按键控制LED和蜂鸣器(超详细!)

【stm32】hal库学习笔记-GPIO按键控制LED和蜂鸣器 注&#xff1a;本学习笔记基于stm32f4系列 使用的开发板为正点原子stmf407ZGT6探索者开发板 GPIO引脚使用时&#xff0c;可输入或输出数字信号 例如: 检测按键输入信号&#xff08;Read_Pin&#xff09;输出信号&#xff08;W…

django admin后台中进行多个手机号解密消耗时间对比

需求&#xff1a; 1 手机号在数据库中是使用rsa方式加密存储&#xff0c;后台查看中需要转换为明文&#xff0c;因为需要解密多个手机号&#xff0c;所以在后台查看中消耗时间3秒&#xff0c;希望通过多线程&#xff0c;多进程&#xff0c;异步方式来缩短时间 相关注意点&…

米贸搜|Facebook新手请查收!如何在FB上定位到B类受众?

一、确定目标受众和营销目标 在利用Facebook进行获客之前&#xff0c;B2B企业需要首先明确目标受众和营销目标。目标受众是指潜在的客户或合作伙伴&#xff0c;而营销目标可能是增加销量、提高品牌知名度、获取客户线索等。 Facebook的受众定位可以分成三大类&#xff1a;人口…

表的增删改查 进阶(二)

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;MySql&#x1f4d5;格言&#xff1a;那些在暗处执拗生长的花&#xff0c;终有一日会馥郁传香欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 3.新增 4.查询 聚合查询 聚合函数 GROUP BY子句 HA…