ArcGIS API for JavaScript 學習筆記(一)


終於開始了 噩夢一般的ArcGIS 我特別不習慣這種結構化的程序寫法 寫起來特別吃力 特別是把幾個功能整合到同一個頁面去的時候。

寫程序的時候,一般我喜歡先寫個Demo然后再把Demo上面的功能加到頁面里面去 結果 加進去之后老是有問題 早了半天 問題還沒找到 新的問題又出現了 好了不吐槽了 慢慢來 

有關於ArcGIS的介紹 我就不再贅述了 網上有很多。

如何初始化地圖

前端:

 1 html,body {
 2  padding-top: 25px;
 3  margin: 0;
 4  height: 100%;
 5 }
 6 
 7 #map {
 8  height: 100%;
 9  width: 100%;
10  margin: 0;
11  padding: 0;
12  position: relative;
13 }
View Code

這很重要 如果不定義html和body的高度 你的地圖只有400的行號 或者你定義了map的高度 只能是map的高度不能自適應屏幕

腳本:

 

 1 var map, pieChart, buffGeom;
 2         require(["esri/map",
 3                 "esri/basemaps",
 4                 "dojo/domReady!"],
 5             function (Map, esriBasemaps, dom) {
 6                 esriBasemaps.tdtvec = {
 7                     baseMapLayers: [{ url: "http://..." },
 8                                     { url: "http://..." }],
 9                     thumbnailUrl: "../Content/image/vectormap.png",
10                     title: "基礎地形"
11                 };
12 
13                 esriBasemaps.tdtimg = {
14                     baseMapLayers: [{ url: "http://..." },
15                                     { url: "http://..." }],
16                     thumbnailUrl: "../Content/image/imagemap.png",
17                     title: "影像地圖"
18                 };
19 
20                 map = new Map("map", {
21                     basemap: "tdtvec",
22                     center: [120.756, 30.766],
23                     zoom: 13
24                 });
25             });
View Code

 

 

 

這里我自定義了需要疊加的底圖(天地圖)

如何添加一些小工具

前端:

就是將那些工具定位在地圖上 這里就不寫出來了 注意的一點是 map的樣式上面 需要加上position: relative; 這樣 這些工具會隨着地圖變動 位置跟着移動

腳本:

 1 var map, msr;
 2         require(["esri/map",
 3                 "esri/basemaps",
 4                 "esri/units",
 5 
 6                 "esri/dijit/BasemapToggle",
 7                 "esri/dijit/HomeButton",
 8                 "esri/dijit/Scalebar",
 9                 "esri/dijit/Measurement",
10 
11                 "dojo/dom",
12                 "dojo/domReady!"],
13             function (Map, esriBasemaps, Units,BasemapToggle, HomeButton, Scalebar, Measurement, dom) {
14                 esriBasemaps.tdtvec = {
15                     baseMapLayers: [{ url: "http://..." },
16                                     { url: "http://..." }],
17                     thumbnailUrl: "../Content/image/vectormap.png",
18                     title: "基礎地形"
19                 };
20 
21                 esriBasemaps.tdtimg = {
22                     baseMapLayers: [{ url: "http://..." },
23                                     { url: "http://..." }],
24                     thumbnailUrl: "../Content/image/imagemap.png",
25                     title: "影像地圖"
26                 };
27 
28                 map = new Map("map", {
29                     basemap: "tdtvec",
30                     center: [120.756, 30.766],
31                     logo: false,
32                     zoom: 13
33                 });
34 
35                 //底圖切換
36                 var toggle = new BasemapToggle({
37                     map: window.map,
38                     basemap: "tdtimg"
39                 }, "BasemapToggle");
40                 toggle.startup();
41 
42                 //比例尺
43                 var scalebar = new Scalebar({
44                     map: window.map,
45                     scalebarUnit: "metric"
46                 });
47 
48                 //HOME按鈕
49                 var home = new HomeButton({
50                     map: window.map
51                 }, "HomeButton");
52                 home.startup();
53 
54                 //測量工具
55                 if (!msr) {
56                     msr = new Measurement({
57                         map: window.map,
58                         defaultAreaUnit: Units.SQUARE_KILOMETERS,
59                         defaultLengthUnit: Units.KILOMETERS
60                     }, dom.byId("measurementDiv"));
61                     msr.startup();
62 
63                     msr.on("measure-end", function (evt) {
64                         this.setTool(evt.toolName, false);
65                     });
66                 }
67             });
View Code

 

 

下面是實際樣式:

轉載請注明地址:http://www.cnblogs.com/CoffeeEddy/p/5643949.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM