日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程

發布時間:2024/10/12 javascript 95 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【回顧】前4篇交代了JsAPI的背景、資源如何獲取,簡介了數據與視圖分離的概念與實現,剖析了頁面的大骨架。

這篇開始,講Map類。

轉載注明出處,博客園/CSDN/B站/知乎:秋意正寒

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

1. Map類的屬性與方法

Map類繼承自Accessor,有子類WebMap , WebScene。

這玩意兒是什么?通俗說,Map就是一張地圖,它屬于數據部分,需要用視圖展示它。

視圖,在jsAPI中,就是View,它負責把Map描繪出來,用WebGL的手段。

那么,Map類如何組織數據呢?用圖層。對,圖層,Layer!(至于Layer那是后話了,我們先談Map數據的組織)

所以,你看到的很多Map類的方法,都是控制圖層的。

屬性方法
  • ground:高程,Ground類型
  • basemap:底圖,Basemap類型
  • allLayers:全部平面圖層,Collection類型
  • layers:全部可操作圖層,Coolection類型
  • add():添加一個圖層,可指定圖層位置
  • addMany():添加多個圖層,可指定位置
  • findLayerById():根據ID尋找圖層
  • remove():移除指定圖層
  • removeAll():移除全部圖層
  • removeMany():移除多個圖層
  • reorder():對某個圖層進行重排序(id變換)

?

?

?

?

?

?

?

方法都很簡單,自行查閱官方API就知道怎么寫了,我重點講一下屬性,尤其是ground屬性、basemap屬性。

有人說為什么不講layers和allLayers?圖層固然是Map的組成,但是這里是說Map,數據的承載體——Layer,還要等到下篇再說。

2. 屬性:basemap詳解

這個詞直譯是基礎地圖,我通俗地翻譯為底圖。就是最底下的圖,像桌布一樣。

2.1 Basemap類

本質上,basemap還是圖層。

basemap是Basemap類型的,Basemap類型的對象是如何創建的呢?

當然還是由服務器上的各種數據服務創建的,查閱Basemap的構造器,其實basemap就是一堆堆的“layer”組成的。

如果需要自定義底圖,可以深入研究研究Basemap類如何實例化。

2.2 預置basemap

如果對自定義底圖沒什么功夫,其實可以直接用官方給的預置圖層,只需將basemap屬性賦予幾個預置的字符串即可。

例如:

var map = new Map({basemap: "streets",ground: "world-elevation"} );

basemap就指定為街道圖了(打開好像是OpenStreetMap)

官方預置了十幾種底圖,有興趣可以去看看。

3. 屬性:ground詳解

這單詞直譯是地面,形象翻譯為高程。與底圖一樣,允許你使用字符串的方式,使用官方給的預置世界高程信息。

如果有更精確的或者符合自己坐標系需要的高程信息,這可能就需要通過實例化Ground對象來賦值了。

實際上,Ground類,也是由圖層構成的。

它是由服務器上的高程影像服務組成的,前端這邊叫高程圖層——ElevationLayer類。

例如:

var worldElevation = ElevationLayer({url: "//elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer" }); var customElevation = ElevationLayer({url: "http://my.server.com/arcgis/rest/service/MyElevationService/ImageServer" }); var map = new Map({basemap: "topo",ground: new Ground({layers: [ worldElevation, customElevation ]}) });

4. 總結

實際上,Map就是個圖層容器,只不過官方對各種圖層的功能進行了分類。

底圖做底,高程作高度信息,還有其他的圖層,展示各種地理信息,構成了三層式體系。

下一節,我就簡單說說“其他的圖層”,有哪些,怎么創建,這可能要提及服務端了。

?

plus:要斷更比較長的時間,暫時把這個寫上,見諒。

轉載于:https://www.cnblogs.com/onsummer/p/9091052.html

總結

以上是生活随笔為你收集整理的ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。