ArcGIS Maps SDK for JS(二):MapView简介----创建2D地图

news2024/11/25 23:41:02

文章目录

  • 1 AMD 引用 ArcGIS Maps SDK for JavaScript
  • 2 加载相应模块
  • 3 创建地图
  • 4 创建 2D 视图 view
  • 5 确定页面内容
  • 6 CSS 样式
  • 7 完整代码

本教程使用 AMD 模块,指导您如何在二维地图视图中创建一个简单的地图。

1 AMD 引用 ArcGIS Maps SDK for JavaScript

在 <head> 标记内,使用 <script> 和 <link> 标记引用 ArcGIS Maps SDK for JavaScript:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
    <title>Intro to MapView - Create a 2D map</title>
    
    <!-- 从 CDN 加载 ArcGIS Maps SDK for JavaScript -->
    <link rel="stylesheet" href="https://js.arcgis.com/4.27/esri/themes/light/main.css" />
    <!-- 引用 main.css 样式表 -->
    <script src="https://js.arcgis.com/4.27/"></script>
    
  </head>
</html>

<script> 标记从 CDN 加载 ArcGIS Maps SDK for JavaScript。当新版本的 API 发布时,更新版本号以匹配新发布的版本。

<link> 标签引用 main.css 样式表,其中包含 Esri 部件和组件的特定样式。

2 加载相应模块

<body>标签内的 <script> 标签中,从 API 加载特定模块。使用下面代码段中的语法加载以下模块:

<script>
  require([ "esri/Map", "esri/views/MapView" ], (Map, MapView) => {
    // Code to create the map and view will go here
  });
</script>

将 JavaScript 代码放在<script>标签内对于创建简单页面或进行实验非常有用,但不适合大型应用程序。在构建大型应用程序时,所有 JavaScript 都应放在单独的 .js 文件中。

全局 require() 函数用于加载 API 的 AMD 模块。

3 创建地图

新地图使用 Map 创建,Map 是对从 esri/Map 模块加载的 Map 类 的引用。您可以通过向 Map 构造函数传递一个对象来指定地图属性,如 basemap

require(["esri/Map", "esri/views/MapView"], (Map, MapView) => {
  const map = new Map({
    basemap: "topo-vector"
  });
});

其他 basemap 包括:

  • satellite(卫星)
  • hybrid(混合)
  • gray-vector(灰色矢量)
  • dark-gray-vector(深灰色矢量)
  • oceans(海洋)
  • streets-vector(街道矢量)
  • osm
  • national-geographic(国家地理)
  • streets-night-vector(街道夜景矢量)。

4 创建 2D 视图 view

将视图 Views 作为 HTML 文件容器的节点引用,允许用户在 HTML 页面内查看地图。创建一个新的 MapView,并通过向其构造函数传递一个对象来设置其属性:

require(["esri/Map", "esri/views/MapView"], (Map, MapView) => {
  const map = new Map({
    basemap: "topo-vector"
  });

  const view = new MapView({
    container: "viewDiv", // Reference to the DOM node that will contain the view
    map: map // References the map object
  });
});

在此代码段中,我们将 container 属性设置为容纳地图的 DOM 节点的名称,在本例中,我们使用了 <div> 元素的 id 属性。map 属性引用我们在上一步中创建的地图对象。有关可在视图上设置的其他属性(包括地图中心 center 和缩放 zoom),请参阅 MapView 文档,这些属性可用于定义视图的初始范围。

有两种类型的视图可用: 地图视图(用于查看二维地图)和场景视图(用于查看三维地图)。单击此处了解更多有关使用 3D 视图创建地图的信息。

5 确定页面内容

现在,创建map和view所需的JavaScript已经完成!下一步是添加用于查看地图的相关HTML。

对于这个例子,HTML非常简单:添加一个<body>标记,它定义了在浏览器中可见的内容,并在将创建视图的body中添加一个 <div> 元素。

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

<div> 的 id 为 viewDiv,以匹配在构造函数中传递给 MapView 中的 container 容器属性的 id。

6 CSS 样式

使用 <head> 标签内的 <style> 标签为页面内容设置样式。要使地图充满浏览器窗口,请在页面 <style> 标签中添加以下 CSS:

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

7 完整代码

代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
    <title>Intro to MapView - Create a 2D map</title>

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

    <!-- 从 CDN 加载 ArcGIS Maps SDK for JavaScript -->
    <link rel="stylesheet" href="https://js.arcgis.com/4.27/esri/themes/light/main.css" />
    <!-- 引用 main.css 样式表 -->
    <script src="https://js.arcgis.com/4.27/"></script>

</head>

<body>
    <!-- 存放地图内容的div -->
    <div id="viewDiv"></div>

    <script>
        require(["esri/Map", "esri/views/MapView"], (Map, MapView) => {
            // 创建Map对象,指定地图
            const map = new Map({
                basemap: "topo-vector"
            });

            // 创建MapView对象
            const view = new MapView({
                container: "viewDiv", // viewDiv为容器div的id
                map: map, // 地图所在的Map对象
                zoom: 4, // 初始LOD缩放等级(0-23) level of detail (LOD)
                // scale: 50000000, // 设置初始比例尺为 1:50,000,000  zoom和scale选其一即可
                center: [108, 32] // 地图初始中心位置经纬度 [longitude,latitude]
            });
        });
    </script>
</body>

</html>

结果展示:

在这里插入图片描述


参考链接:
https://developers.arcgis.com/javascript/latest/sample-code/intro-mapview/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/959417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9.物联网LWIP,ip数据报,udp数据报,tcp数据报

一。ip协议原理&#xff08;网络层&#xff09; 1.网络地址转换NAT 我们上网是通过运营商向我们提供的IP地址来上网的&#xff0c;并不是自身的IP地址&#xff0c;所以这就需要网络地址转换NAT的帮助。即内网访问外网所需要的ip转换装置。 2.ip数据报 &#xff08;1&#xff…

延长Flash存储器使用寿命的研究

发布时间&#xff1a;2009年12月15日   引 言 随着嵌入式系统在数码相机、数字摄像机、移动电话、MP3音乐播放器等移动设备中越来越广泛的应用&#xff0c;Flash存储器已经逐步取代其他半导体存储元件&#xff0c;成为嵌入式系统中主要数据和程序载体。Flash存储器又称闪存&…

黑马最新MybatisPlus教程!帮你实现快速开发

天下武功&#xff0c;唯快不破。在互联网世界中&#xff0c;更甚。产品更新要快、迭代要快、开发速度那必须得快。 在追求“快”的这条路上&#xff0c;大佬们都会使用上好的开发工具&#xff0c;来帮助自己实现高效开发&#xff0c;其中MybatisPlus便是提速的重要角色。 我们…

selenium+find_elements用法

1、假如我们遇到多个标签的class一样&#xff0c;比如像下面这样的 我们可以采用js语法去定位&#xff0c;比如&#xff1a; document.getElementsByClassName("ant-calendar-picker-input ant-input")[0]

【Vue3 知识第二讲】Vue3新特性、vue-devtools 调试工具、脚手架搭建

文章目录 一、Vue3 新特性1.1 重写双向数据绑定1.1.1 Vue2 基于Object.defineProperty() 实现1.1.2 Vue3 基于Proxy 实现 1.2 优化 虚拟DOM1.3 Fragments1.4 Tree shaking1.5 Composition API 二、 vue-devtools 调试工具三、环境配置四、脚手架目录介绍五、SFC 语法规范解析附…

打包——使用pyinstaller打包解决dll丢失问题

我们通常使用pyinstaller或者其对应的图形化的auto-py-to-exe来生成exe可执行文件时,换了一个电脑经常会出现报错,特别是我们当前开发大多数使用温室操作系统,而很多用户使用的是win7操作系统,这就造成了会提示缺少dll文件。如下图: 笔者总结了解决此问题的经验总结如下。…

做外贸的时候意见不被上级采纳真的错了吗

某日晚上&#xff0c;听了一场直播&#xff0c;然后有一个小伙伴在直播间里说自己很苦恼&#xff0c;为什么自己所有的意见老板都不采纳&#xff0c;都要给否决掉&#xff0c;感觉老板是故意针对她自己的。 事情的起因是因为这个业务员自己通过社媒开发出了一个客户&#xff0…

为什么选择搭建虚拟展会?如何搭建虚拟展会能给企业带来帮助

引言&#xff1a; 在当今数字化时代&#xff0c;宣传策略正在不断演变&#xff0c;企业需要跟上时代的脚步&#xff0c;这为企业带来了更多的机会和挑战。虚拟展会作为一种创新性的宣传手段&#xff0c;正逐渐受到企业的重视和青睐。 一&#xff0e;为什么选择搭建虚拟展会&am…

循环购模式:白酒企业的电商新机遇

白酒是中国传统的酒类&#xff0c;也是社交场合的必备佳品。白酒的品牌众多&#xff0c;竞争激烈&#xff0c;如何在电商市场中脱颖而出&#xff0c;提升销量和品牌影响力呢&#xff1f;循环购模式或许是一个新的答案。 循环购模式是一种新型的电商营销方式&#xff0c;它让消费…

day 44 | ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 此外&#xff0c;在返回的时候&#xff0c;由于状态234都是卖出的状态&#xff0c;所以要比较其最大值进行返回。 func maxProfit(prices []int) int {dp : make([][]int, len(prices))dp[0] make([]int, 4)dp[0][0] -prices[0]for i : 1; i &…

经纬恒润预期功能安全(SOTIF)解决方案为自动驾驶安全保驾护航

近年来&#xff0c;“安全”被普遍认为是智能驾驶汽车被用户接受或者得到商业应用最大的问题&#xff0c;ISO26262功能安全旨在避免由E/E系统功能失效导致的不可接受的风险&#xff0c;主要是针对系统性失效/随机硬件失效导致的风险进行分析和控制&#xff0c;然而传感器和感知…

安防监控/视频存储/视频汇聚平台EasyCVR接入海康Ehome车载设备出现收流超时的原因排查

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚平台既具…

2024河南太阳能光伏展览会|郑州光伏展会|郑州太阳能展会

2024第四届中国&#xff08;郑州&#xff09;太阳能光伏及储能产业展览会 时间&#xff1a;2024年2月26-28日 地点&#xff1a;郑州.中原国际博览中心 太阳能光伏及储能产业是未来能源发展的趋势&#xff0c;随着全球气候变化和能源危机的加剧&#xff0c;越来越多的国家开始…

ExpressLRS开源代码之工程结构

ExpressLRS开源代码之工程结构 1. 源由2. 工程3. 开发环境安装4. pio命令5. ExpressLRS配置6. 硬件认证过程7. 参考资料 1. 源由 ExpressLRS开源代码基于Arduino框架设计&#xff0c;在所支持的硬件环境下&#xff0c;提供900/2400发射机和接收机硬件方案。 该设计提供了一个…

25.选择排序,归并排序,基数排序

目录 一. 选择排序 &#xff08;1&#xff09;简单选择排序 &#xff08;2&#xff09;堆排序 二. 归并排序 三. 基数排序 四. 各种排序方法的比较 &#xff08;1&#xff09;时间性能 &#xff08;2&#xff09;空间性能 &#xff08;3&#xff09;排序方法的稳定性能…

港联证券|股票过户费是什么意思?

股票过户费是指在股票商场中&#xff0c;由于股份所有权的转让&#xff0c;双方需求付出的一种买卖费用。这种费用首要是为了付出证券公司和证券中介机构转让股票所发生的各项费用&#xff0c;如代理费、登记费、买卖税等。股票过户费的数额一般是按照股票的数量和买卖金额来核…

ffmpeg 配合Fiddler抓包获取视频操作

一&#xff0e;获取普通网站视频 1.安装Fiddler软件&#xff0c;直接点击绿色软件中Fiddler.exe&#xff0c;打开即可 2.打开后需要设置一下https解码 3.打开普通视频&#xff0c;获取视频链接在网页打开即可 二&#xff0e;获取一级反爬网站视频 1.随便找一个video/mp…

Redis主从复制的搭建及原理分析

目录 一、Redis主从复制 1.1 搭建主从复制架构 1.1.1 主从复制架构简介 1.1.2 搭建主从复制架构 1.2 主从复制工作流程 1.2.1 建立连接阶段 1.2.2 数据同步阶段 1.2.2.1 工作流程 1.2.2.2 增量同步原理 1.2.3 命令传播阶段 1.2.3.1 偏移量&#xff08;offset&#xf…

固定资产太多怎么管理好

固定资产太多时&#xff0c;可以采取以下措施进行管理&#xff1a;  分类管理&#xff1a;将固定资产按照种类、用途等进行分类&#xff0c;便于管理和查询。  建立台账&#xff1a;建立固定资产台账&#xff0c;记录每项资产的名称、编号、购置日期、购买价格、使用部门、…

keil在点击debug无法运行(全速运行)

1、今天发现我之前可以debug的程序&#xff0c;在板子上无法debug了&#xff0c;打断点完全没用 2、换了电脑&#xff0c;带板子过去也这样&#xff0c;之前可以运行的代码都debug不了 3、按照网上的方法&#xff0c;都不行&#xff0c;全速运行&#xff0c;单步执行都是灰色…