Arcgis api for javascript學習筆記(3.2X版本)-初步嘗試


 

Arcgis api for javascript(3.22版本)官方地址 :https://developers.arcgis.com/javascript/3/

1. 根據官方示例實現一個簡單地圖展示功能。

       示例代碼:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <link rel="stylesheet" href="https://js.arcgis.com/3.22/esri/css/esri.css">
 5     <style type="text/css">
 6         html, body { margin: 0; padding: 0; height: 100%; width: 100%; }
 7         #viewDiv{ width:100%;height:100%; }
 8     </style>
 9     <script src="https://js.arcgis.com/3.22/"></script>
10 </head>
11 <body>
12     <div id="viewDiv"></div>
13     <script type="text/javascript">
14         require(["esri/map", "dojo/domReady!"], function(Map) {
15             var map = new Map("viewDiv", {
16                 "basemap": "streets"
17             });
18         });
19     </script>
20 </body>
21 </html>

示例截圖:

 

2. Arcgis api for javascript離線部署

引用官網上的資源文件通常請求和加載比較慢,所以離線部署在本地會更好。

第一步:下載 arcgis js api壓縮包並解壓,有需要的也可以將arcgis js sdk也下載一份。api是我們開發需要的庫,sdk是說明文檔和例子;

第二步:替換域名 [HOSTNAME_AND_PATH_TO_JSAPI];

找到下面這兩個文件,並將文件里面的“[HOSTNAME_AND_PATH_TO_JSAPI]”內容替換成相應的域名(ip地址:端口)

D:\arcgis_js_api\arcgis_js_v320_api\library\3.20\3.20\init.js
D:\arcgis_js_api\arcgis_js_v320_api\library\3.20\3.20\dojo\dojo.js

第三部:將該文件夾作為部署包在IIS或其他服務器進行發布,具體部署方法網上有很多教程;

部署成功后,只需將原來的css和js文件引用改成本地地址就可以了,如下圖所示:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <link rel="stylesheet" href="http://localhost:8003/arcgis_js_v320_api/library/3.20/3.20/esri/css/esri.css">
 5     <style type="text/css">
 6         html, body { margin: 0; padding: 0; height: 100%; width: 100%; }
 7         #viewDiv{ width:100%;height:100%; }
 8     </style>
 9 </head>
10 <body>
11     <div id="viewDiv"></div>
12     <script src="http://localhost:8003/arcgis_js_v320_api/library/3.20/3.20/init.js"></script>
13     <script type="text/javascript">
14         require(["esri/map", "dojo/domReady!"], function(Map) {
15             var map = new Map("viewDiv", {
16                 "basemap": "streets"
17             });
18         });
19     </script>
20 </body>
21 </html>

 

3. 示例代碼分析

  • 創建一個id為"viewDiv"的div作為map對象渲染地圖的容器
  <div id="viewDiv"></div>
  • js在執行過程中可能會用到其他js文件,但是不需要自定義引入相應的js文件。所以如果api中缺少相關文件,可能會出現異常。我們把require那一段代碼注釋掉,發現引入init.js文件后,會自動動態引入其他js文件。如下圖所示:

客戶端發送的請求資源信息

  

  瀏覽器加載后的dom結構:

  • arcgis js 依賴 dojo,所以有必要了解一些常用dojo基本操作。這里先簡單說一下require

  在老版本中的寫法中,對require的作用可能更好理解一點。可以理解為:要new 一個esri.Map對象需要先引入其所在的包 esri.map  

    <script type="text/javascript">
        dojo.require("esri.map");        
        function init() {
            var map = new esri.Map("viewDiv", {
                "basemap": "oceans"
            });
        }
        dojo.addOnLoad(init);
    </script>

  而示例中可以看作是老版本的簡寫。require([],function(){})函數中第一個參數可以看作是要引入的包數組,第二個參數function函數中的參數就是引入包(按順序)的別名,引入包成功后就會執行該函數。

  • basemap參數,即為該地圖的底圖,可以在此底圖上疊加其他圖層。basemap官方提供有很多種:

  

 


免責聲明!

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



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