乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ArcGIS API for JavaScript 入門教程[4] 代碼的骨架

       路人甲Java 2020-09-17

       

      【回顧與本篇預(yù)覽】

      上篇簡單介紹了JsAPI中的數(shù)據(jù)與視圖,并告訴大家這兩部分有什么用、如何有機(jī)連接在一起。

      這一篇快速介紹一下前端代碼的骨架。當(dāng)然,假定你已經(jīng)熟悉HTML5、CSS3和JavaScript(最好了解一下ES6)

      轉(zhuǎn)載請注明出處,博客園/CSDN/bilibili:秋意正寒

      目錄:https://www.cnblogs.com/onsummer/p/9080204.html

      1. 代碼

      為了方便演示,我將js代碼和css代碼全都寫在一個(gè)html文件里,當(dāng)然,更合適的做法是三者分離,不過要注意引用的順序哦。

      使用上篇三維視圖的代碼↓

      <!DOCTYPE html>
      <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
        <title>Intro to SceneView - Create a 3D map - 4.7</title>
        <style>
          html,
          body,
          #viewDiv {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
          }
        </style>
      
        <link rel="stylesheet" href="https://js./4.7/esri/css/main.css">
        <script src="https://js./4.7/"></script>
      
        <script>
          require([
            "esri/Map",
            "esri/views/SceneView",
            "dojo/domReady!"
          ], function(Map, SceneView) {
      
            var map = new Map({
              basemap: "streets",
              ground: "world-elevation"
            });
      
            var view = new SceneView({
              container: "viewDiv",
              map: map,
              scale: 50000000,
              center: [-101.17, 21.78]
            });
      
          });
        </script>
      </head>
      
      <body>
        <div id="viewDiv"></div>
      </body>
      </html>
      三維視圖代碼

      2. HTML組成/CSS簡單解釋

      先把標(biāo)簽都折疊,過一下HTML的組成。

      什么?你說你不喜歡看代碼?那怎么行,得培養(yǎng)梳理代碼的能力。我在這繼續(xù)用圖解法,剖析頁面結(jié)構(gòu):

      其中,第二個(gè)script標(biāo)簽是我們自己的代碼。

      link標(biāo)簽用于引用官方預(yù)設(shè)css,沒有它頁面不能工作。

      第一個(gè)script標(biāo)簽用于引用JsAPI的核心文件。

      注意到,body是整個(gè)頁面的組織,在這里只有一個(gè)id為viewDiv的div,用于承載視圖。

      在link標(biāo)簽上還有這么一個(gè)style樣式標(biāo)簽,是對頁面樣式的預(yù)設(shè),其實(shí)很簡單,僅僅是對html的一些元素做無邊框處理而已。

      3. script標(biāo)簽的內(nèi)容

      把js代碼折疊后,是這樣的:

      收縮起的代碼上篇已經(jīng)解釋過了,map是數(shù)據(jù),view是視圖,view通過SceneView類的構(gòu)造函數(shù)中的傳參中的map屬性進(jìn)行連通,這里就不再復(fù)述。

      結(jié)構(gòu)圖是這樣的:

      require()是JsAPI的基礎(chǔ)——Dojo框架規(guī)定的一個(gè)全局入口,與初學(xué)C語言時(shí)接觸的main()函數(shù)類似。

      3.1 類引用列表

      第一個(gè)參數(shù),是一個(gè)字符串?dāng)?shù)組。它規(guī)定了接下來的代碼需要用哪些類(官方說法叫模塊),用字符串描述了所需類(模塊)所在的包路徑。與C#中using 命名空間;類似。

      如"esri/views/SceneView"就代表引用esri這個(gè)包下的views這個(gè)包里的SceneView這個(gè)類。不妨在瀏覽器調(diào)試窗口中看看資源:

      因?yàn)榈谝粋€(gè)script標(biāo)簽引用的地址是“https://js./4.7/”,所以esri這個(gè)包就是基于此目錄下的相對路徑了。

      同理,"esri/Map"也是這樣引用的一個(gè)類。

      至于"dojo/domReady!"這個(gè),則是dojo框架的一個(gè)特殊類(模塊),所以會在"domReady"后加一個(gè)嘆號,這是dojo的一個(gè)插件,代表DOM加載完成后再執(zhí)行后面的代碼。

      3.2 回調(diào)函數(shù)

      回調(diào)函數(shù)的形參列表除了"dojo/domReady!"這個(gè)特殊的之外,均要與類引用列表中的類順序上一一對應(yīng),但是名字可以自由,一般與官方的類名一致。

      至于本例中回調(diào)函數(shù)的內(nèi)容,上篇講過啦。

      既可以用Lambda表達(dá)式,也可以在外部定義函數(shù),傳函數(shù)名進(jìn)require()中。

      對了,上篇沒講如何將SceneView與HTML元素綁定的,其實(shí)只是SceneView構(gòu)造函數(shù)中的一個(gè)屬性而已:

      container屬性利用id選擇器(不用寫#)選擇div。

      scale是比例尺,center是中央經(jīng)緯度。

      3.3 總結(jié)

      由于AMD規(guī)范的要求,require()就是這么一個(gè)異步操作。你要告訴后臺,你要用哪些功能(參數(shù)1,類引用列表),你要拿這些功能做什么(參數(shù)2,回調(diào)函數(shù))。

      回調(diào)函數(shù)就代表,等相關(guān)的資源準(zhǔn)備好后,再根據(jù)此回調(diào)函數(shù)做事情?;卣{(diào)函數(shù)中仍存在很多異步操作,這就是ES6中Promise的用法了,when()異步鏈?zhǔn)沟卯惒讲僮鲗懫饋砀奖悖绻麑Ξ惒胶突卣{(diào)有什么不懂的,請到網(wǎng)上查資料學(xué)習(xí),在此不展開了——但是,異步操作仍然是JsAPI中極為重要的一個(gè)技術(shù)。

      4. 骨架整理圖&總結(jié)

      總結(jié)就是,require()這個(gè)唯一入口,帶了一個(gè)引用列表(字符串?dāng)?shù)組),帶了一個(gè)回調(diào)函數(shù)。

      回調(diào)函數(shù)里寫你需要做的事情,當(dāng)然,回調(diào)的形參要與引用列表一一對應(yīng)。

      以下是骨架圖。

      本篇到此結(jié)束,有了這個(gè)骨架,后面只是在script標(biāo)簽里加自己的內(nèi)容而已。

      待工程茁壯到一定規(guī)模的時(shí)候,dojo的模塊化技術(shù)才能用得上,那并不是本入門教程的內(nèi)容了。

      背景也交代完了,下篇進(jìn)入約定好的幾個(gè)部分的API的講解。

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多