ArcGIS JS 基础教程(1):地图初始化(含AMD/ESM两种引入方式)

ArcGIS JS 系列基础教程(100个项目常用热门功能)

一、地图基础操作

1. ArcGIS JS 基础教程(1):地图初始化(含AMD/ESM两种引入方式)

功能介绍:ArcGIS JS 开发的基础,实现地图容器渲染、底图加载,支持AMD(传统引入,适配纯HTML Demo)和ESM(现代前端框架适配,如Vue/React)两种方式,是所有地图功能的前置操作。

功能实现:核心依赖 Map(地图实例)、MapView(2D视图),配置容器ID、底图类型、初始中心点和缩放级别,两种引入方式分别适配不同开发场景,确保地图正常渲染且无报错。

功能应用:所有ArcGIS JS项目的开篇步骤,如后台管理系统地图模块、移动端地图页面、WebGIS可视化项目的基础渲染。

核心代码

方式1:AMD引入(纯HTML Demo常用)
html 复制代码
<link rel="stylesheet" href="https://js.arcgis.com/5.0/esri/themes/light/main.css"/>
<script type="module" src="https://js.arcgis.com/5.0/"></script>
<script type="module">
   const [
       Map,
       SceneView,
   ] = await $arcgis.import([
       "@arcgis/core/Map.js",
       "@arcgis/core/views/SceneView.js",
   ]);

  const map = new Map({
    basemap: "streets"
  });
  const view = new MapView({
    container: "mapContainer",
    map: map,
    center: [-118.805, 34.027],
    zoom: 13
  });
</script>
方式2:ESM引入(Vue/React等现代框架常用)
javascript 复制代码
import Map from "@arcgis/core/Map";
import MapView from "@arcgis/core/views/MapView";

const initMap = () => {
  const map = new Map({
    basemap: "streets"
  });
  const view = new MapView({
    container: "mapContainer",
    map: map,
    center: [-118.805, 34.027],
    zoom: 13
  });
};
initMap();

完整代码:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第1课:ArcGIS JS 地图初始化(含AMD/ESM两种引入方式)</title>
    <link rel="stylesheet" href="https://js.arcgis.com/5.0/esri/themes/light/main.css">
    <script type="module" src="https://js.arcgis.com/5.0/"></script>
    <style>
        body { margin: 0; padding: 0; font-family: "Microsoft YaHei", sans-serif; }
        #mapContainer { width: 100vw; height: 100vh; }
        .page-title {
            position: absolute;
            top: 20px;
            left: 50%;
            transform: translateX(-50%);
            background: rgba(255,255,255,0.9);
            padding: 8px 20px;
            border-radius: 4px;
            font-size: 18px;
            font-weight: bold;
            z-index: 100;
        }
    </style>
</head>
<body>
<h1 class="page-title">ArcGIS JS 地图初始化</h1>
<div id="mapContainer"></div>

<script type="module">
    const Map = await $arcgis.import("@arcgis/core/Map.js");
    const SceneView = await $arcgis.import("@arcgis/core/views/SceneView.js");
    // 引入天地图工具类
    const getTianditu = await $arcgis.import("https://openlayers.vip/examples/resources/tianditu.js");

    // 加载影像底图
    const imgLayers = getTianditu.default({ type: "img_w" });

    const map = new Map({
        basemap: { baseLayers: [imgLayers.base, imgLayers.anno] },
        ground: {
            surface: {
                elevationLayers: [{
                    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("三维地图加载完成!"));
</script>
</body>
</html>

在线示例

地图初始化(GitHub资源,等待时间较长,或者架梯子)


📌 在线示例说明:点击上方链接即可查看完整的三维地图示例,代码基于 ArcGIS JS 5.0 和天地图底图,可直接运行查看效果。

相关推荐
放下华子我只抽RuiKe59 小时前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
XinZong10 小时前
OpenClaw 实现双重心跳(Heartbeat)+ clawreach虾聊项目实现
javascript
还有多久拿退休金11 小时前
一张栈的图,治好你面试答不出 script 阻塞的病
前端·javascript
zithern_juejin11 小时前
原型与原型链
javascript
008爬虫实战录14 小时前
【码上爬】 题十二:如来神掌 困难, JSVMP加密,使用代理补环境
前端·javascript·node.js
threelab14 小时前
Three.js 数学函数着色器 | 三维可视化 / AI 提示词
javascript·人工智能·着色器
ZC跨境爬虫15 小时前
跟着 MDN 学CSS day_3:(为一个传记页面添加样式)
前端·javascript·css·ui·音视频·html5
夜雪闻竹15 小时前
sql.js WASM 实战:浏览器里跑 SQLite
javascript·sql·wasm
爱喝铁观音的谷力景辉16 小时前
在Cesium中实现带箭头方向路线样式的技术详解
javascript·cesium
Qhappy16 小时前
AI逆向实战:从零还原某航空App的AES加密
javascript·后端