ArcGIS API for JavaScript 4.x 教程(一) 显示一张地图

了解如何创建和显示带有基本地图图层的地图。

地图包含地理数据层。地图包含一个基本地图层,以及一个或多个数据层(可选)。可以使用地图视图显示地图的特定区域,并设置位置和缩放级别。

本教程将向您展示如何使用地形底图层创建和显示加利福尼亚州圣莫尼卡山脉的地图。

本教程中的地图和代码将用作其他二维教程的起点。

先决条件

您需要ArcGIS Developer或ArcGIS Online帐户才能访问仪表板并创建API键。

步骤

创建新笔

转到CodePen为您的地图应用程序创建新的笔。

添加HTML

定义一个HTML页面以创建一个具有web浏览器窗口全宽和全高的地图。

在CodePen>HTML中,添加HTML和CSS以创建带有viewDiv元素的页面。viewDiv是显示地图的元素,它的CSS重置任何浏览器设置,这样它就可以使用浏览器的全宽和全高。

html 复制代码
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
    <title>ArcGIS Maps SDK for JavaScript Tutorials: Display a map</title>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

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

参考API

在<head>标记中,添加对CSS文件和JS库的引用。

html 复制代码
<link rel="stylesheet" href="https://js.arcgis.com/4.27/esri/themes/light/main.css">
<script src="https://js.arcgis.com/4.27/"></script>

添加模块

ArcGIS Maps SDK for JavaScript可作为AMD模块和ES模块使用,但本教程基于AMD。AMD require函数使用引用来确定将加载哪些模块------例如,您可以指定"esri/Map"来加载Map模块。加载模块后,它们将作为参数(例如Map)传递给回调函数,以便在应用程序中使用。保持模块引用和回调参数的顺序相同是很重要的。有关不同类型模块的更多信息,请访问工具简介指南主题。

在<head>标记中,添加<script>标记和require语句以加载Map和MapView模块。您也可以将JavaScript代码添加到CodePen>JS面板,而不是HTML面板。如果这样做,请删除<script>标记。

html 复制代码
    <script>
      require(["esri/config", "esri/Map", "esri/views/MapView"], function(esriConfig, Map, MapView) {

      });
    </script>

获取API密钥

访问ArcGIS服务需要API密钥。

  • 转到您的开发人员仪表板以获取API密钥。
  • 复制密钥,因为它将在下一步中使用。

创建地图

使用Map设置基础映射层并应用API密钥。

返回CodePen。

在require语句中,创建一个新的Map,并将basemap属性设置为arcgis地形。要启用对Basemap层服务的访问,请设置Map的apiKey属性。

html 复制代码
        esriConfig.apiKey = "YOUR_API_KEY";

        const map = new Map({
          basemap: "arcgis-topographic" // Basemap layer service
        });

创建地图视图

使用MapView类可以设置要显示的地图的位置。

创建MapView并设置地图特性。要使地图视图居中,请将居中特性设置为-118.80500,34.02700,并将缩放特性设置为13。将容器属性设置为viewDiv以显示地图的内容。

html 复制代码
        const view = new MapView({
          map: map,
          center: [-118.805, 34.027], // Longitude, latitude
          zoom: 13, // Zoom level
          container: "viewDiv" // Div element
        });

运行应用程序

在CodePen中,运行代码以显示地图。

该地图应显示加利福尼亚州圣莫尼卡山脉地区的地形基底层。

完整代码

html 复制代码
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
    <title>ArcGIS Maps SDK for JavaScript Tutorials: Display a map</title>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

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

    <script>
      require(["esri/config", "esri/Map", "esri/views/MapView"], function(esriConfig, Map, MapView) {

        esriConfig.apiKey = "YOUR_API_KEY";

        const map = new Map({
          basemap: "arcgis-topographic" // Basemap layer service
        });

        const view = new MapView({
          map: map,
          center: [-118.805, 34.027], // Longitude, latitude
          zoom: 13, // Zoom level
          container: "viewDiv" // Div element
        });

      });
    </script>

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

运行应用程序

在CodePen中,运行代码以显示地图。

该地图应显示加利福尼亚州圣莫尼卡山脉地区的地形基底层。

注明:翻译自esri,仅供个人查阅使用,侵删

相关推荐
程序员大阳7 小时前
副队长JavaScript教程(50)-DOM:网页开发的起点
javascript·dom·es·节点·概念·document·关系
非科班Java出身GISer11 小时前
ArcGIS JS 基础教程(46):编辑要素属性 FeatureForm
arcgis·arcgis js编辑要素·arcgis js 要素·arcgis js要素属性·arcgis js 编辑属性·arcgis js编辑要素属性
香芋芋圆11 小时前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
晗夜未央13 小时前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
jktantan14 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
我命由我1234515 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
程序员大阳15 小时前
副队长JavaScript教程(65)-详解JSON:轻量级数据交换格式
javascript·json·序列化·反序列化·stringify·parse
paopaokaka_luck17 小时前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
栀椩17 小时前
Electron 内嵌页面跨域问题(CORS/PNA)解决全记录
前端·javascript·electron
SEO_juper17 小时前
Chrome 扩展一键查看当前页面 SEO 信息:不用切页面,点一下全出来
前端·javascript·chrome