簡單介紹:
開發環境是Visual Studio 2012,因為它為所有的.aspx文件、.htm文件以及外部的.js文件提供了IntelliSense(智能提示),相當於其他軟件的代碼自動補全功能,非常方便。接下來是我的第一個Javascript API 應用程序。ESRI在其arcgis online中提供了在線的ArcGIS API for JavaScript,在web應用中直接引用即可,無需下載安裝;當然也可以下載API,然后部署到自己的web服務器,在這里我使用在線的api。
1. 打開vs2012新建一個空web應用程序,然后添加一個html,起名為First.html;然后在<head>部分增加引用ESRI提供的樣式表.(主要用於esri提供的小部件與 組件,例如地圖、信息框等)。此外需要引用Dojo提供的樣式表,主要有四中,現在只學習常用的兩種,如下:
<link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css" /> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/dojo/dijit/themes/tundra/tundra.css" /> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/dojo/dijit/themes/claro/claro.css" />
(dojo后面我會接着學習,現在只能邊做邊學了。)
ArcGIS API For javascript離線包 下載可以戳這里 http://xiaobaigis.com/GiSarticles/GiSArticle?ID=68
2. 然后在<head>標簽中增加一個<script>標簽,在此標簽中引用API
<script src="http://js.arcgis.com/3.9/">
3. 在<body>區域增加一個<div>元素,用於顯示地圖
<body class="tundra" > <div id="mapDiv"></div> </body> 將class屬性設置為tundra后,body將自動引用dojo提供的樣式
4. 在<head>標簽部分,加入如下代碼,加載地圖模塊.
<script type="text/javascript"> require(["esri/map", "esri/layers/ArcGISTiledMapServiceLayer","dojo/domReady!"], function (Map, ArcGISTiledMapServiceLayer) { }); </script> //對上述代碼做一解釋 arcgis API for javascript 包含了許多資源,即地圖模塊,這些地圖模塊是按用途組織的,例如 esri/map用於地圖,幾何對象,圖形與符號; esri/tasks/locator 用於地理編碼等等,后面我會學習更多的地圖模塊。 要想使用這些資源,需要先調用Dojo提供的全局require函數。require函數包括兩個參數,第一個是依賴項,第二個參數是一個回調函數,第一個參數又包括兩類,一類是真正的依賴項,另一類是插件。 所以上述代碼中 ["esri/map", "esri/layers/ArcGISTiledMapServiceLayer","dojo/domReady!"]是第一個參數,前兩項為真正的依賴項地圖模塊,最后是插件(帶有!號); 回調函數中的參數依次是require函數的第一個參數指定的依賴類別名如:Map,ArcGISTiledMapServiceLayer) { } 我的通俗理解加載地圖模塊就相當於c#當中的命名空間一般,只有加入命名空間,才可以使用esri/map中的類的屬性方法。
5. 初始化地圖以及在地圖中加入內容,在require函數指定的回調函數中加入如下代碼:
// 以下是創建地圖與加入底圖的代碼 var map = new Map("mapDiv"); var agoServiceURL = "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"; var agoLayer = new ArcGISTiledMapServiceLayer(agoServiceURL, { displayLevels: [0, 1, 2, 3, 4, 5,6,7] }); map.addLayer(agoLayer); // 第一行使用Map類來創建一個新的地圖。第二行指定了一個地圖服務的URL,第三行通過URL創建一個切片圖層,第四行將切片圖層加入地圖。
6.所有代碼如下:

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>第一個JavaScript API應用</title> 6 <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css" /> 7 <style type="text/css"> 8 html, body, #mapDiv { 9 padding: 0; 10 margin: 0; 11 height: 100%; 12 } 13 </style> 14 <script type="text/javascript" src="http://js.arcgis.com/3.9/"> 15 </script> 16 <script type="text/javascript"> 17 require(["esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "dojo/domReady!"], function (Map, ArcGISTiledMapServiceLayer) { 18 // 以下是創建地圖與加入底圖的代碼 19 var map = new Map("mapDiv"); 20 var agoServiceURL = "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"; 21 var agoLayer = new ArcGISTiledMapServiceLayer(agoServiceURL, { displayLevels: [0, 1, 2, 3, 4, 5,6,7] }); 22 map.addLayer(agoLayer); 23 }); 24 </script> 25 </head> 26 <body class="tundra" > 27 <div id="mapDiv"></div> 28 </body> 29 </html>
7.運行結果