博客
关于我
ArcGIS API for JavaScript 4.2学习笔记[1] 显示地图
阅读量:453 次
发布时间:2019-03-06

本文共 1901 字,大约阅读时间需要 6 分钟。

 

ArcGIS API for JavaScript 4.2直接从官网的Sample中学习,API Reference也是从官网翻译理解过来,鉴于网上截稿前还没有人发布过4.2的学习笔记,我就试试吧。

什么是ArcGIS API for JS?这里就不多介绍了,最关键的一点是4.x版本与3.x版本的变化,按官方的意思是重新写了底层。

笔记中规定:

ArcGIS API for JavaScript简称AJS

使用CDN(即不配置本地环境)进行测试开发

其余根据需要进行修改、增删。

 


 

要将地图显示在html页面上,那就要有一个块元素承接并执行渲染。

本节以最简单、最低需求的2D地图显示为例。

 

首先在html页面中肯定要有一个div,官方命名为“viewDiv”。然后就在js代码中对这个div进行输出即可。先贴出js代码的骨架部分(展开即可查看代码)

这部分代码将位于4.2的js文件引用之下。

require(    [      "esri/Map",      "esri/views/MapView",      "dojo/domReady!"    ] ,    function(Map, MapView) {        //你的代码    });

 

现在对require入口函数的第一个参数(字符串数组)中的三个字符串的含义进行解释。

这三个字符串与C#中的using命名空间、C++中的include头文件、Java中的#import类似,是对第二个参数所需要的功能进行引用。

具体为什么是这三个字符串,后面再解释。

第二个参数是一个函数(C#里会传委托吧大概忽略这个括号),这个函数的函数体如下:

function(Map, MapView){  var map = new Map({    basemap: "osm" // 基础地图类型  });  var view = new MapView({    container: "viewDiv",  // 承接地图的块元素的ID    map: map,  // 地图对象,由上方new出    zoom: 8,  // 缩放级别    center: [114, 30]  // 中心经纬度  });}

我们对这里的两个实例化的对象map、view进行解释说明。

【map对象是地图的数据部分,而view则是地图的可视化部分。】

map对象的创建参数,在本例中是basemap,查询参考可以知道使用了osm这一个类型的基础地图。basemap是一个类,在参考文档中也可以查询到。官方使用的是streets地图,而114,30附近streets是没有的,我切换到了osm地图。

view对象构造时,拥有4个参数,注释中容易懂,就不做多的解释了,重要的是map对象是由上面new实例化出来的。

至于JS的function参数和奇怪的构造函数,我也不多解释了,总之,Map和MapView两个名词,是esri/Map模块和esri/views模块下的两个类而已。

这便是在第一个参数数组中前两个字符串的含义了。

["esri/Map", "esri/views/MapView", "dojo/domReady!"] //第三个字符串暂时不解释

 

【Map类和MapView类的引用】

对Map类的信息截图如下:

继承自Accessor,子类有WebMap和WebScene。

构造函数的参数有一个:basemap类型的参数

对于Map对象的属性和方法,可以参考下文:

同理,MapView对象参考下文如下:

MapView对象构造函数、属性和函数也写的很详细了。MapView继承自View类,而View类则继承自Accessor类。

以上便为第二个参数的笔记。

现在,贴出完整的html页面代码,可以自行复制粘贴到本地html文件,双击打开即可看到地图。

Get started with MapView - Create a 2D map
第一个例子

不出意外的话,会是这样子:

本人使用chrome 56浏览器,这是在网吧的机器,Win7+Chrome 55.


 

补充:

link和第一个script标签是对官方样式表和类库的引用,没有这俩是运行不了的。

因为AJS是基于dojo的,所以需要在require的第一个字符串数组参数的第三个元素中使用dojo/domReady!,具体是为什么,官方例子有写,作为应用级别的开发就不深入了,有兴趣的同学可以试看AJS的框架什么的。

转载地址:http://qgwfz.baihongyu.com/

你可能感兴趣的文章
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>
MYSQL:基础——3N范式的表结构设计
查看>>