arcgis for js 3.x 学习记录(一)

一:侃

4.x主要更新的是对3维的操作吧,我们项目目前没用到3维地图,然后客户那面装的也都是arcgis 10.1?,所以觉得还是用3.x比较好,目前我们项目用的是arcgis for js  3.19

arcgis for js 3 开发者资料地址:https://developers.arcgis.com/javascript/3/

结合谷歌浏览器的翻译功能学习,比较方便,翻译质量还可以。

前面项目都是直接参考“Sample Code”(示例代码),找到相似功能,copy过来改改,也没学过arcmap啥工具的使用,就是能看懂js,依葫芦画瓢,填入公司同事发布好的服务地址,改改属性(attribute)基本就搞定了。

但是随着项目中用到的越来越多,想想还是主动的学习一下比较好,自己对地图这方面也比较感兴趣。

没什么学习方法,也懒得去看书,直接“API Reference"(API 参考)中,挨个走一遍,思路是,先通过几个基础的,眼熟的class(叫对象也无所谓),找到整个API结构的规则,然后再根据例子,找对应的 对象 学习。样例中的代码拷过来基本都能显示效果,还是很方便的。


二:开始学习

1.首先阅读 API Reference Overview(API 参考概述)【我为什么要中英都写,因为敲一敲,记得住啊,顺便学点English】

里面说了,模块和类是一一对应的(个别例外),也就是我们引3个模块,对应的function(1,2,3)的位置上写自定义类名就可以了,例子中的类名是推荐的但不强制。


2.然后阅读 Set up a development environment 搭建开发者环境

开发工具选择,和arcgis for js sdk本地部署,项目中最基本的要引入一个esri.css,一个init.js,它应该就会自动根据相对位置去找其他的js了吧,反正学习的时候,用例子中的网络地址引入就好了(网络地址js是版本号结尾的一个路径)。部署到本地不复杂,但是有个js里的地址要改,记不清了,大家部署的时候再自己查吧~


3.Preferred Argument Aliases 推荐参数别名

就是推荐模块对应的类名,这一页可以当目录去找自己想要学习的模块(类,对象)。


4.首先学习第一个esri/basemaps

示例代码:

 require([
   
"esri/basemaps",
   
"esri/map",
   
"dojo/domReady!"
 
], function (esriBasemaps, Map){
    esriBasemaps
.delorme = {
      baseMapLayers
: [{url: "https://services.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer"}
     
],
      thumbnailUrl
: "https://www.example.com/images/thumbnail_2014-11-25_61051.png",
      title
: "Delorme"
   
};

   
var map = new Map("ui-map", {
      basemap
: "delorme",
      center
: [-111.879655861, 40.571338776], // long, lat
      zoom
: 13,
      sliderStyle
: "small"
   
});
});
理解:

①问:啥是basemaps?

    答:要说它是啥,就说它是干啥用的,从字面看就是基础图层,扫了下文档,说为了定位啊,不轻易改变啊什么的。举例:我们有一个中国地图(map),这个中国地图在地球的什么位置呢,我们就需要一个全球地图(basemap),为什么不是两个map(layer?)叠着呢,因为这个地球图层(basemap)我们不操作,只是放在那当底图,是给map当陪衬的。那可以不要这个basemap吗,可以的,map是最终展示在页面对应div中的核心对象,如果你的map没有basemap,也没有layers(我理解map就是很多个layer组成的),那就是空空如也了。

②问:basemaps有啥属性,啥结构?

    答:从示例中可以看到,有baseMapLayers,thumbnailUrl,title,我监控了下官网basemap模块返还回来的esriBasemaps对象,里面就是esri弄好的十几个basemap供大家用的,属性就多了个itemId,看到这我就放心了,因为我找了半天也没找到这几个属性搁哪呢,比如thumbnailUrl(缩略图路径)。通过baseMapLayers属性,我们可以理解,basemap也就是个map,里面有很多layer,只是相对于map,能操作的少多了。(我对不同类型的layer认识不清楚,后面看吧)。示例代码中,是自定义了一个名为”delorme“的basemap(底图)。【delorme是个地方么?百度翻译”德洛姆“,解释为一个人名,管它呢。】

③问:basemaps我们咋用啊?

    答:咋用,当底图用呗,啊哈哈,我尝试着给baseMapLayers里乱加图层,反正就跟map一样啦,加两个图层,有覆盖的话,先加的在上面?


好了,我的学习记录以后就这套路了,很多地方不严谨,因为自己也是半调子嘛,记录下为了疏通自己的思路,当然如果有人真耐着性子看了我写的这些营养不高的东西,也希望你能有一点点收获。






评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值