亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

esri-leaflet入門教程(2)-地圖的HelloWorld

2024-04-27 15:11:08
字體:
來源:轉載
供稿:網友

esri-leaflet入門教程(2)-地圖的HelloWorld

by 李遠祥

      常言道“君子性非異也,善假于物也”。這句話在IT界同樣也適用,只不過IT界有更為時髦的說法:“不用重新制作輪子”。在當前各類框架盛行的年代,搭建Web應用程序已經是相當簡單的了,不管是搭建界面的還是構建地圖,都已經有現成的框架可以直接使用,使工程師們可以更加關注用戶的需求而不是苦于編碼。當然了,回歸事物的本質,就是工程師們可以少寫很多代碼?。?!  ^_^

      閑話不提了,接下來當然就是說說學習esri-leaflet的一些準備了。如果到了開始寫代碼階段還沒有弄懂所謂的HTML、CSS、javaScript的話,那可以直接將該網頁關掉了,因為這個博客不會去講基礎的web開發內容。說說接下來用到的一些工具和技術,開發工具使用國內的HBuilder,可以在其官網下載 http://www.dcloud.io/ (沒有為什么,因為簡單,下載下來解壓后直接可以使用),至于使用什么IDE根據各人喜好。界面框架使用Flat UI (在bootstrap 框架下衍生出來的框架,純屬個人喜好,用法跟bootstrap一樣,只是筆者喜歡它的風格),現成的一個外觀不錯的框架,原因很簡單,不需要重新發明輪子,不用自己重新去寫界面的代碼。地圖框架那就不用說了,就是使用esri-leaflet 。需要下載esri-leaflet (下載地址 https://github.com/Esri/esri-leaflet/releases/tag/v1.0.0)和leaftlet原生腳本(下載地址 http://leafletjs.com/download.html)

      準備工作妥善后就是創建工程了。使用IDE創建一個工程,然后將下載下來的腳本放在對應的目錄,js的目錄怎么放置,就開工程師們的習慣了。如下圖,可以看出本次程序代碼使用的一些技術框架

image

      在工程中需要引用的框架當然是需要flatui,這是界面部分所使用的,然后就是地圖部分的leaflet框架和esri-leaflet ,這兩部分解壓下來后其實只需要leaflet.js 和leaflet.css以及esri-leaflet.js ,相對于以前龐大的ArcGIS Javascript API,區區200來K的大小,真是足夠精簡,并且不需要配置復雜的ArcGIS JavaScript API ,直接拿來即用。

      接下來就是創建其界面和調用了。先不急著創建復雜的代碼,可以先根據bootstrap或flatui搭建一個簡單的界面,先讓自己找一點成就感。先利用FlatUI去做一個常規的地圖應用界面,當然要有菜單,地圖控件,信息展示面板等。先來看看筆者用十分鐘搭好的一個簡單界面,當然這里面為了顯示地圖,先行加入了地圖代碼,如下圖所示

image

      FlatUI的界面是非常美觀的,由于從bootstrap衍生出來,所以直接使用bootstrap的寫法來編寫就行了。接下來再看看地圖Hello World的寫法了。

      首先需要引入leaflet和esri-leaflet的腳本,當然了,這個代碼還會涉及到FlatUI,所以代碼也一并貼出來。

		<title>Esri-leaflet 功能</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<!-- Loading Bootstrap -->
		<link href="flatui/css/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
		<!-- Loading Flat UI -->
		<link href="flatui/css/flat-ui.css" rel="stylesheet">
		<link rel="shortcut icon" href="flatui/img/favicon.ico">
		<!-- 加載leaflet-->
		<link rel="stylesheet" href="leaflet/leaflet.css" />
		<script src="leaflet/leaflet.js"></script>
		<script src="esri/esri-leaflet.js"></script>

      正如之前所說,其實引入的腳本部分并不多。界面的搭建就不多說了,主要的是在地圖控件,需要在bootstrap的柵格布局中加入屬于地圖的DIV元素,例如設計好頁面布局之后,在屬于地圖展示區域的div中給一個id名稱如“mapDiv”,如下面代碼所示

<div class="row">
    <div class="col-xs-9" id="mapDiv" style="top: 55px; height:600px;"></div><!--地圖面板 –>

 

      可以看到筆者為了讓地圖控件占位,設定了一下其大小,因為了bootstrap框架中寬度是自動適應的,所以設置高度即可,后面會在一些頁面腳本中加入窗口大小響應代碼,讓地圖的高度能夠適用不同的窗口大小。

      接下來再看其地圖加載的腳本部分。在body標簽中設計好界面之后,在代碼的最后才加入初始化<script>,可以看下面代碼

    <div class="row">
      <!--底部狀態欄部分 -->
      <div class="col-xs-6" style="top: 50px;height: 50px;">
        <span class="label label-success">代碼實例來自博客  GIS制圖樂園  http://blog.csdn.net/liyuanxiang1984                                                              </span>
      </div>
    </div>
    <!--底部狀態欄部分 -->
    </div>
    
    <script>
      var map = L.map("mapDiv").setView([37.75, -122.23], 10);
      L.esri.basemapLayer("Topographic").addTo(map);
      //初始化使計算Map控件大小
      document.getElementById("mapDiv").style.height = document.documentElement.clientHeight-80+"px";
      document.getElementById("panDiv").style.height = document.documentElement.clientHeight-110+"px";
      //當網頁變化是重新計算地圖控件的大小
      window.onresize=function(){
        document.getElementById("mapDiv").style.height = document.documentElement.clientHeight-80+"px";
        document.getElementById("panDiv").style.height = document.documentElement.clientHeight-110+"px";
      }
    </script>
    <script src="flatui/js/vendor/jquery.min.js"></script>
    <script src="flatui/js/flat-ui.min.js"></script>
  </body>

      從上面的代碼可以看到,初始化頁面之后才初始化代碼,esri-leaflet的寫法非常簡單,這個Hello World 程序就是先生成一個map,然后加載ArcGIS Online上的底圖,并指定其初始顯示區域。leaflet的寫法大部分都是L. 開頭,而esri-leaflet的寫法也是遵循其規律,變為L.esri 開頭。地圖在一開始的初始化時就可以使用leaflet的setView 方法去指定初始化的位置了,兩個參數分別是坐標和地圖的級別。然后第二句 L.esri.basemapLayer("Topographic").addTo(map); 才是esri-leaflet的東西,使用basemapLayer方法去加載ArcGIS Online上的Topographic 底圖,并將其加載到map控件上。其寫法非常簡約。

      至于下面的代碼就是設置頁面加載時適應不同分辨率的屏幕,其地圖區域的高度設置。還有就是在window.onresize 事件中也加入該調整代碼,不然bootstrap是不認這些變化的。接下來再看看改變頁面的大小時界面的自適應,如下圖

image

      第一個Hello World代碼非常簡單,主要是讓讀者知道常規的搭建模式。后面章節將會更加詳細的接入ArcGIS的其他功能。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久国产精品一区| 国产成人精品一区| 成人精品久久av网站| 国产精品a久久久久久| 97精品久久久| 国产综合久久久久久| 久久不射电影网| 久久精品色欧美aⅴ一区二区| 亚洲精品资源在线| 丝袜亚洲欧美日韩综合| 久久男人资源视频| 国产欧美日韩精品丝袜高跟鞋| 欧美有码在线视频| 日韩在线视频观看| 国产精品久久一区主播| 久久久欧美一区二区| 欧美日韩福利电影| 亚洲国产精品va| 亚洲国产精品大全| 欧美xxxx做受欧美.88| 在线免费观看羞羞视频一区二区| 尤物九九久久国产精品的特点| 一级做a爰片久久毛片美女图片| 亚洲精品自拍第一页| 国产精品成人av性教育| 精品国产乱码久久久久久天美| 91美女片黄在线观| 精品久久久一区| 中文字幕久久久av一区| 日韩福利在线播放| 国产精品成人国产乱一区| 丝袜一区二区三区| 日av在线播放中文不卡| 国产suv精品一区二区三区88区| 欧美日韩亚洲精品一区二区三区| 欧美精品18videos性欧| 久久久久久亚洲精品中文字幕| 欧美精品九九久久| 日韩av123| 欧美风情在线观看| 国产v综合v亚洲欧美久久| 久久中文精品视频| 久久久久久久久久久国产| 国产成人综合av| 7m第一福利500精品视频| 日韩高清电影免费观看完整版| 国产91精品久久久| 欧美高清videos高潮hd| 2018国产精品视频| 国产精品极品美女在线观看免费| 亚洲香蕉在线观看| 久久精品美女视频网站| 国产不卡av在线免费观看| 成人福利网站在线观看| 国模gogo一区二区大胆私拍| 中文字幕精品影院| 成人福利网站在线观看| 亚洲美女精品久久| 国产极品精品在线观看| 黑人极品videos精品欧美裸| 久久精品一区中文字幕| 91亚洲永久免费精品| 亚洲成av人乱码色午夜| 一区二区三区亚洲| 日本一区二区在线免费播放| 欧美日韩性视频在线| 在线观看精品国产视频| 欧美激情按摩在线| 日韩免费视频在线观看| 欧美成年人视频网站欧美| 欧美重口另类videos人妖| 日韩中文字幕网址| 国产亚洲精品高潮| 亚洲午夜国产成人av电影男同| 大伊人狠狠躁夜夜躁av一区| 久久伊人色综合| 亚洲欧美一区二区精品久久久| 国产精品青青在线观看爽香蕉| 亚洲成人1234| 日韩女优人人人人射在线视频| 日韩欧美国产成人| 亚洲欧美日韩区| 国产亚洲精品91在线| 日本亚洲欧美成人| 国产欧美日韩亚洲精品| 96国产粉嫩美女| 亚洲国产91精品在线观看| 97久久精品视频| 亚洲国产成人精品久久久国产成人一区| 国产欧美最新羞羞视频在线观看| 亚洲第一区第一页| 久久国产精品久久久久久| 国产精品视频自拍| 欧美激情在线有限公司| 欧美极品美女视频网站在线观看免费| 久久免费精品视频| 琪琪第一精品导航| 欧美成人手机在线| 国产成人极品视频| 亚洲欧美国产视频| 国产亚洲精品美女| 亚洲精品在线观看www| 国产一区二区三区毛片| 欧美国产日韩中文字幕在线| www.午夜精品| 欧美劲爆第一页| 色偷偷88888欧美精品久久久| 色婷婷av一区二区三区久久| 成人妇女淫片aaaa视频| 亚洲人成绝费网站色www| 黑人极品videos精品欧美裸| 91在线视频精品| 韩国欧美亚洲国产| 欧美日韩成人免费| 久久久久日韩精品久久久男男| 日本久久亚洲电影| 色黄久久久久久| 欧美成人合集magnet| 亚洲欧洲在线观看| 国产精品一区二区电影| 国产精品久久久久久久久久99| 欧美成人精品影院| 国产亚洲激情在线| 欧美日韩亚洲高清| 91夜夜揉人人捏人人添红杏| 操人视频在线观看欧美| 国产精品高清网站| 久久99精品久久久久久噜噜| 亚洲成人在线网| 欧美高清在线视频观看不卡| 日韩av综合网站| 欧美午夜宅男影院在线观看| 国产精品直播网红| 韩日欧美一区二区| 久久6精品影院| 国产网站欧美日韩免费精品在线观看| 国产大片精品免费永久看nba| 亚洲美女av在线播放| 91美女福利视频高清| 亚洲人成电影在线观看天堂色| 日韩av影片在线观看| 国产成人精品一区二区在线| 国产在线精品自拍| 少妇av一区二区三区| 狠狠躁夜夜躁久久躁别揉| 91性高湖久久久久久久久_久久99| 久久久久久久一区二区| 98视频在线噜噜噜国产| 精品亚洲男同gayvideo网站| 久久成人精品一区二区三区| 国产精品久久久久久网站| 在线电影av不卡网址| 国产999精品久久久影片官网| 午夜精品99久久免费| 国产噜噜噜噜久久久久久久久| 国产精品久久久久久av福利软件| 久久免费成人精品视频| 亚洲福利视频免费观看| 国产主播欧美精品| 性色av一区二区三区红粉影视| 久久精品久久久久电影| 国产精品日韩久久久久| 欧美高清videos高潮hd| 中文字幕日韩欧美|