js 两个map合并为一个map_ArcGIS API for JS3.x教程二:构建第一个简单的程序

9ee7c43203bc677ec5b6af4404d7db4b.png

本文衔接上文:

不睡觉的怪叔叔:ArcGIS API for JS3.x教程一:本地开发环境配置​zhuanlan.zhihu.com
7b3d2fbf08c5821a66d2a53f3fa797e9.png

一、创建简单的HTML文档

创建一个简单的HTML文档:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Simple App</title>
</head>
<body></body>
</html>

二、引入ArcGIS API for JavaScript

要想在web程序中使用ArcGIS API for JS,当然就要引入该开发包:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Simple App</title><!-- 引入ArcGIS API for JS开发包 --><link rel="stylesheet" href="http://localhost:8080/arcgis3.30/esri/css/esri.css" /><script src="http://localhost:8080/arcgis3.30/init.js"></script>
</head>
<body></body>
</html>

上面引入的init.js包含ArcGIS API for JS的逻辑处理功能。

引入的esri.css样式文件用于指定程序小部件(widgets)和组件的样式。

还可以选择其他的四种主题的样式文件,有四个主题可供选择:

  • claro
  • tundra
  • soria
  • nihiilo

样式文件位于themes文件夹中:

c09a469c6da25b3e61527d469e280b42.png

当然也可以用CDN的方式引入(速度较慢):

    https://js.arcgis.com/3.30/dijit/themes/claro/claro.csshttps://js.arcgis.com/3.30/dijit/themes/tundra/tundra.csshttps://js.arcgis.com/3.30/dijit/themes/nihilo/nihilo.csshttps://js.arcgis.com/3.30/dijit/themes/soria/soria.css

可以自行尝试使用不同的主题样式,选择合适的样式来契合程序,使之更完美。

三、创建地图容器

地图容器。。。简单来说就是一个HTML的div元素,ArcGIS API for JS会使用canvas或者webgl技术在该div元素上绘制地图。

在body元素中创建一个div元素当作地图容器:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Simple App</title><!-- 引入ArcGIS API for JS开发包 --><link rel="stylesheet" href="http://localhost:8080/arcgis3.30/esri/css/esri.css" /><script src="http://localhost:8080/arcgis3.30/init.js"></script>
</head>
<body><!-- 地图容器 --><div id="map"></div></body>
</html>

四、加载模块

ArcGIS API for JS构建于Dojo框架(类似于jQuery)之上,它的模块导入使用Dojo的模块系统。没必要深入学习Dojo,知道一些简单的Dojo语法、功能就可以了。

首先,导入"esri/map"模块:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Simple App</title><!-- 引入ArcGIS API for JS开发包 --><link rel="stylesheet" href="http://localhost:8080/arcgis3.30/esri/css/esri.css" /><script src="http://localhost:8080/arcgis3.30/init.js"></script>
</head>
<body><!-- 地图容器 --><div id="map"></div><script>require(["esri/map"], function(Map){    // 导入模块});</script>
</body>
</html>

模块导入的语法,以及模块名都能在API文档中找到,对应着导入就好。

比如刚才的"esri/map"其实就是导入了Map类的相关代码包,直接查Map类的API文档就能看到导入语法:

3d76fba12b6feade1f5968b1b1036fa2.png

五、创建地图

刚才导入了Map类,那么就能调用Map类创建地图:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Simple App</title><!-- 引入ArcGIS API for JS开发包 --><link rel="stylesheet" href="http://localhost:8080/arcgis3.30/esri/css/esri.css" /><script src="http://localhost:8080/arcgis3.30/init.js"></script>
</head>
<body><!-- 地图容器 --><div id="map"></div><script>var map;require(["esri/map"], function(Map){    // 导入模块// 创建地图map = new Map("map", {basemap: 'topo',center: [-122.45, 37.75],zoom: 13})});</script>
</body>
</html>

参数"map"对应地图容器div元素的id特性,这就相当于告诉ArcGIS API for JS请在id特性为"map"的div元素上绘制地图。

根据"地图三明治结构",一个WebGIS地图通常由底图+专题地图构成,上面的basemap就用于指定ArcGIS API for JS默认提供的底图,即直接填写对应的字符串它就能自动绘制对应的底图。该参数还可以指定为:"satellite", "hybrid", "topo", "gray", "oceans", "osm", "national-geographic"。自行尝试这些精美的底图吧!

六、指定样式

由于body元素默认有外边距值,会在页面上构成一个白色沟壑,比较丑,因此要消去它。

另外地图默认高度只会是页面的一半,让地图全屏显示会更美观。

那么指定想要的样式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Simple App</title><!-- 引入ArcGIS API for JS开发包 --><link rel="stylesheet" href="http://localhost:8080/arcgis3.30/esri/css/esri.css" /><script src="http://localhost:8080/arcgis3.30/init.js"></script><style>/* 指定样式 */html, body, #map{height: 100%;margin: 0;}</style>
</head>
<body><!-- 地图容器 --><div id="map"></div><script>var map;require(["esri/map"], function(Map){    // 导入模块// 创建地图map = new Map("map", {basemap: 'topo',center: [-122.45, 37.75],zoom: 13})});</script>
</body>
</html>

现在第一个简单的程序就构建完成了,使用浏览器打开效果如下:

64b9370081a14ff987987c08e496e95d.png

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

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

相关文章

计算机主机组成部分和功能,电脑的组成部分及作用

对于很多人来讲&#xff0c;电脑的使用似乎是一件很稀松平常的事情了。但是对于一些新手或者是一些初学者来说&#xff0c;电脑的相关组成部件还有相应的作用都不是很熟悉&#xff0c;那么电脑的组成部分及作用是什么呢?下面是学习啦小编收集的关于电脑的组成部分及作用&#…

android8 通知呼吸灯_正在消失的功能,为什么越来越多的手机没有呼吸灯?你知道原因吗...

正在消失的功能&#xff0c;为什么越来越多的手机没有呼吸灯&#xff1f;你知道原因吗其实说到手机呼吸灯&#xff0c;大家应该都不陌生&#xff0c;毕竟如果你有心心念念的人儿&#xff0c;每次呼吸灯闪烁&#xff0c;都会迫不及待的打开手机查看消息&#xff0c;想看看是不是…

巴川数据科学炼成记_【脑王直通车】小小记忆高手炼成记

“ 记住150个随机数字&#xff0c;你需要多久&#xff1f;【脑王直通车】第8站到来&#xff0c;杨老师将他在《最强大脑》比赛中运用的记忆方法倾囊相授&#xff0c;孩子们变身小小记忆高手&#xff01;”记忆探秘你们知道记忆是什么吗&#xff1f;我们从小到大&#xff0c;无论…

lrange是取出所有值并移除么_图解双指针 | LeetCode 27. 移除元素

题目描述 原题链接&#xff1a;LeetCode 27. 移除元素给定一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成…

Effective前端5:减少前端代码耦合

什么是代码耦合&#xff1f;代码耦合的表现是改了一点毛发而牵动了全身&#xff0c;或者是想要改点东西&#xff0c;需要在一堆代码里面找半天。由于前端需要组织js/css/html&#xff0c;耦合的问题可能会更加明显&#xff0c;下面按照耦合的情况分别说明&#xff1a; 1. 避免全…

戴尔笔记本电脑的计算机配置在哪,戴尔电脑的便签在哪里?笔记本电脑怎么设置便签?...

戴尔电脑是国内一些用户所使用的电脑品牌。如果戴尔电脑安装的是Windows系统&#xff0c;是可以在电脑附件中找到系统自带的便笺或者Sticky Notes工具的&#xff0c;可以粘贴在电脑桌面上记录简单的文字内容&#xff0c;但并不支持设置待办提醒事项。除了系统自带便笺之外&…

柔性体没有应变_边坡防护终结篇!柔性防护系统(主被动网)知识总结!

筑龙岩土20万岩土人在这里关注来源&#xff1a;北京科技大学课件版权归原作者所有有粉丝一定发现我们推送的几篇关于边坡防护与加固的文章&#xff0c;均整理自北京科技大学的课件。没有注意到的可以回顾一下下面的系列文章&#xff0c;今天还剩最后一小点&#xff0c;落石防护…

十六周个人作业

计划估计此程序需要3-5天。 开发需求分析用户故事&#xff1a;作为一个观众&#xff0c;我希望了解某一场比赛的比分&#xff0c;以便了解赛况。&#xff08;满意条件&#xff1a;精确到每一局的结果比分&#xff09;。 从分析用例故事可以知道完成此程序需要这两项任务&#x…

迁徙图_虾米音乐上的原住民会迁徙去哪呢?

一石激起千层浪。最近&#xff0c;认证为「前华纳音乐/环球音乐中国区市场总监」的相征(今年因《乐队的夏天》走红)发微博称&#xff1a;江湖传闻&#xff0c;虾米音乐明年1月份关闭&#xff0c;一个时代要结束了吗&#xff1f;时代是没那么容易结束的。只不过&#xff0c;每一…

个人作业

.计划 3天 .开发 .需求分析 用户故事&#xff1a;作为一个观众&#xff0c;我希望了解某一场比赛的比分&#xff0c;以便了解赛况。&#xff08;满意条件&#xff1a;精确到每一局的比分&#xff09;。 任务&#xff1a; 观众可以选择查看每局的比分&#xff0c;也可以查看每一…

xp做打印服务器 找不到驱动,XP系统安装打印机驱动提示找不到指定的模块怎么办...

‍‍今天一位用户反馈说XP系统安装打印机驱动提示“找不到指定的模块”&#xff0c;导致打印机驱动没办法正常使用&#xff0c;怎么办呢&#xff1f;如果已经安装过打印机驱动失败&#xff0c;可以先卸载&#xff0c;在重启电脑。接下去教程和大家分享XP系统安装打印机驱动提示…

判断点在多边形内部

项目的需要&#xff0c;需要判断点在多边形的内部&#xff0c;是整个算法必要的步骤&#xff0c;查了一些资料&#xff0c;中文很少&#xff0c;英文资料已经介绍的很清楚了&#xff0c;这里只是总结一下。 问题的完整描述是判断平面上一点在多边形的内部、外部或者边界上。 有…

服务器操作系统策略,服务器操作系统策略

服务器操作系统策略 内容精选换一换Windows操作系统的云服务器由于管理员设置的策略&#xff0c;该磁盘处于脱机状态&#xff0c;提示&#xff1a;由于管理员设置的策略&#xff0c;该磁盘处于脱机状态&#xff0c;如图1所示。Windows操作系统SAN策略分为三种类型&#xff1a;O…

as安装过程中gradle_在安装钢结构平台过程中需要注意哪些事项?

钢制平台货架是在厂房面积有限的情况下采用货架作为阁楼支撑&#xff0c;并可以设计多层&#xff08;通常2&#xff5e;3层&#xff09;的存储货架&#xff0c;阁楼可以采用楼梯或者液压升降平台做为登高设施&#xff0c;利用金属专用楼板作为楼层区分&#xff0c;每层可以放置…

服务器的显示器设置方法,服务器的显示器设置方法

服务器的显示器设置方法 内容精选换一换远程登录Windows弹性云服务器后&#xff0c;修改分辨率设置。不同版本的Windows操作系统&#xff0c;操作略有差异&#xff0c;本节以Windows Server 2016 标准版 64bit为例&#xff0c;介绍如何修改Windows弹性云服务器的分辨率。通过VN…

java解压服务器文件夹,java获取远程服务器上的文件夹

java获取远程服务器上的文件夹 内容精选换一换安装X722板载网卡驱动软件包&#xff0c;使裸金属服务器支持在v5服务器上下发。其他类型服务器可跳过此步骤。本文以Windows Server 2016为例&#xff0c;Windows Server 2012 R2与之类似。解压缩准备工作中的“onboard_driver_win…

矩阵求多元函数的通解_Hessian矩阵

黑塞矩阵(Hessian Matrix)&#xff0c;是一个多元函数的二阶偏导数构成的方阵&#xff0c;描述了函数的局部曲率。黑塞矩阵常用于牛顿法解决优化问题&#xff0c;利用黑塞矩阵可判定多元函数的极值问题。在工程实际问题的优化设计中&#xff0c;所列的目标函数往往很复杂&#…

坦克游戏服务器未响应,《坦克世界》退出战斗 退出战斗卡死解决办法

不知道大家有没有过&#xff0c;在玩坦克世界时&#xff0c;退出战斗会有卡死的情况。小编是没有遇到过。但却看到很多游戏中的朋友反映过。下面小编为大家整理了几个关于退出战斗卡死的情况&#xff0c;以及遇到此情况的玩家的解决办法。希望能给大家带来帮助哦~玩家遇到情况解…

js中当等于最小值是让代码不执行_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理...

前言见解有限&#xff0c;如有描述不当之处&#xff0c;请帮忙及时指出&#xff0c;如有错误&#xff0c;会及时修正。----------超长文多图预警&#xff0c;需要花费不少时间。----------如果看完本文后&#xff0c;还对进程线程傻傻分不清&#xff0c;不清楚浏览器多进程、浏…

HTML5笔记1——HTML5的发展史及标签的改变

记得第一次接触HTML5还是在《联信永益》实习那会儿&#xff08;2011&#xff09;&#xff0c;当时一个项目技术选型的时候面临两种选择&#xff0c;分别是Silverlight和HTML5&#xff0c;那是用的最新的IE浏览器版本还是IE9&#xff0c;而IE9才刚刚开始支持HTML5。后来考虑到当…