ArcGis for JavaScript SDK
作者:BLUE日期:2019-07-09
描述:arcgis for js 開發包,基于arcgis for js 3.9
點擊【這里】下載SDK
該開發包是基于arcgis for javascript 3.9,是對原始API的一個擴充,原始API正常使用,該SDK僅封裝了開發過程中常用的方法,開發包內使用瓦片下載的方式對全國天地圖底圖進行加載,默認坐標系為WGS 84,如果你是CGCS2000坐標系,那你可以放心使用;如果需要使用其他REST服務作為底圖,你可以構造BaseMap實例的時候自己指定坐標系。
目錄
使用步驟
BaseMap類(基礎底圖類)
initTdt() -- 初始化全國天地圖底圖
initTiledMap(sldtserver?,slbzserver?,yxdtserver?) -- 初始化緩存映射服務資源作為底圖
changeBaseMap(id) -- 切換底圖類型
toggleLable() -- 切換標注
goto(lng, lat , zoom?) -- 定位點,將點拉到屏幕中心
adbLayer(layer, index?) -- 附加圖層,可用于圖層管理
hideAttachLayer(name) -- 隱藏附加圖層
showAttachLayer(name) -- 顯示附加圖層
destoryAttachLayer(name) -- 銷毀附加圖層
hasLayer(name) -- 判斷圖層是否存在
zoomIn(zoom) -- 放大地圖
zoomOut(zoom) -- 縮小地圖
addWMSLayer(url, name, extent, callback?) -- 添加WMS圖層
addPointGeoJsonLayer(name, url, infoTemplate1?, symbol?, callback?, options?, maxdraw?) -- 添加GeoJson點圖層
addLineGeoJsonLayer(name, url, infoTemplate1?, symbol?, callback?, options?, maxdraw?) -- 添加GeoJson線圖層
addGonGeoJsonLayer(name, url, infoTemplate1?, symbol?, callback?, options?, maxdraw?) -- 添加GeoJson線圖層
DrawLayer類(繪制類)
drawPoint(callback?) -- 繪制點
drawMultiPoint(callback?) --繪制多點
drawLine(callback?) -- 繪制直線段
drawPolyLine(callback?) -- 繪制折線
drawPolyGon(callback?) -- 繪制多邊形
drawFreePolyGon(callback?) -- 手繪多邊形
drawArrow(callback?) -- 繪制箭頭
drawTrianGle(callback?) -- 繪制三角形
drawCircle(callback?) -- 繪制圓形
drawEllipse(callback?) -- 繪制橢圓
drawRectangle(callback?) -- 繪制矩形
clear() -- 清除繪制并釋放繪制狀態
clsAndte() -- 清除繪制并保持繪制狀態
deactivate() -- 釋放繪制狀態不清空繪制要素
GraphicLayer類(要素圖層類)
addPoint(lng, lat, infoTemplate?, attr?, symbol?, localAnim?) -- 添加點要素
addMultiPoint(points, infoTemplate?, attr?, symbol?) -- 添加多點
addLine(path, infoTemplate?, attr?, symbol?) -- 添加線要素
addGon(path, infoTemplate?, attr?, symbol?) -- 添加面要素
addCricle(lng, lat, radius?, infoTemplate?, attr?, symbol?) -- 添加圓
addText(text, lng, lat, symbol?, offset?) -- 添加文字要素
addFlowText(text, path, symbol?, offset?) -- 添加流式文字/沿線文字(均分字間距)
addSupFlowText(text, path, symbol?, offset?) -- 添加流式文字/沿線文字(路徑點坐標)
DijitLayer類(工具類)
measureDis() -- 測距
measureArea() -- 測面
clearMeas() -- 清空測量數據
activateToolbar(graphic) -- 編輯要素
deactivate() -- 釋放編輯狀態
getCurrentState() --獲取當前編輯的一些狀態
refresh() -- 刷新編輯的內部狀態
1. 使用步驟將該SDK包放置于項目工程根目錄,如果使用的靜態化資源的情況,請靜態化該SDK包以保證路徑“/arcgisdk”可以訪問SDK包內文件
在html頁面中添加資源引用,如果你是用的是模塊化進行開發,請暫時將地圖界面抽離成多帶帶的html,該SDK可能會引起模塊化關鍵字沖突
簡潔版資源:
完整版資源:
修改SDK包源碼引用
若你是使用的完整版請將 /arcgisdk/3.9compact/init.js 和 /arcgisdk/3.9compact/js/dojo/dojo/dojo.js 中的 localhost:8009 修改成你的項目地址和端口若你是使用的是完整版請將 /arcgisdk/3.9/init.js 和 /arcgisdk/3.9/js/dojo/dojo/dojo.js 中的 localhost:8009 修改成你的項目地址和端口
請開始你的代碼,下面是個初始化例子
2. Class: BaseMap(基礎底圖類)
基礎底圖類,該類繼承于Map 對象,有關Map對象的資料請看【這里】
【提示】該類所有的非原始方法都可以鏈式調用
2.1 AMD Module Requirerequire(["BAMAP/BaseMap"], function(BaseMap) { /* code goes here */ });2.2 Constructors
new BaseMap(divId, options?); // 一般建議使用下面這樣進行實例化的同時進行初始化,這樣可以直接呈現底圖 new BaseMap("map", { center: [116.39, 39.91],zoom:9 }).initTdt();
options參數請點擊這里
2.3 Method Details# initTdt()
初始化全國天地圖作為底圖
# initTiledMap(sldtserver?,slbzserver?,yxdtserver?)
初始化有公開的緩存映射服務資源作為底圖
【提示】默認加載成都天地圖作為底圖,不保證永遠能成功,如果服務被關閉則加載會失敗
sldtserver [String] 電子底圖服務地址
slbzserver [String] 矢量標注服務地址
yxdtserver [String] 影像底圖服務地址
# changeBaseMap(id)
切換底圖類型
id [String] 底圖類型標識 sldt-矢量底圖,imgdt-影像底圖,dxdt-地形底圖
# toggleLable()
切換標注
# goto(lng, lat, zoom?)
將底圖中心定位到指定位置
lng [Float] 經度
lat [Float] 緯度
zoom [Int] 縮放層級 默認當前層級
# adbLayer(layer, index?)
特殊的附加圖層,可用于圖層管理,不建議直接使用原型的添加圖層方法
layer [Layer] 所有繼承于 esri/layers 的實例
index [Int] 圖層層級,值越大越靠近用戶
# hideAttachLayer(name)
隱藏附加圖層,只針對 adbLayer 方法添加的圖層有效
name [String] 圖層名稱或者id
# showAttachLayer(name)
顯示附加圖層,只針對 adbLayer 方法添加的圖層有效
name [String] 圖層名稱或者id
# destoryAttachLayer(name)
銷毀附加圖層,只針對 adbLayer 方法添加的圖層有效
name [String] 圖層名稱或者id
# hasLayer(name)
判斷圖層是否存在,只針對 adbLayer 方法添加的圖層有效
name [String] 圖層名稱或者id
# zoomIn(zoom)
地圖放大
zoom [Number] 放大層級
# zoomOut(zoom)
地圖縮小
zoom [Number] 縮小層級
# addWMSLayer(url, name, extent, callback?)
添加WMS圖層
url [String] WMS圖層服務地址
name [String] 命名空間:圖層名稱
extent [Object] 坐標范圍{xmin, ymin, xmax, ymax}
callback [Function] 回調函數
# addPointGeoJsonLayer(name, url, infoTemplate1?, symbol?, callback?, options?, maxdraw?)
添加GeoJson點圖層
name [String] 圖層名稱或id
url [String] 服務或GeoJson文件的地址(同域)
infoTemplate1 [Object] 信息框內容
symbol [Object] imgurl & heigth & width
callback [Function] 回調函數
options [Object] GraphicsLayer類的所有構造參數,點擊查看
maxdraw [Int] 最大繪制量 default 1,000,000
【注意】調用此API時候請添加以下兩個引用
var infoTemplate1 = { title: "地塊信息", content: "地塊編碼:${DKBM}[br/]面積(畝):${面積畝}" } var symbol={ imgurl:"/static/map/img/local-marker.png", width:10, height:10 } baseMap.addPointGeoJsonLayer("dk", "/main/map/geodata/xinjingdk.json", infoTemplate1, symbol, function (layer) {/* code goes here */ });
# addLineGeoJsonLayer(name, url, infoTemplate1?, symbol?, callback?, options?, maxdraw?)
添加GeoJson點圖層
name [String] 圖層名稱或id
url [String] 服務或GeoJson文件的地址(同域)
infoTemplate1 [Object] 信息框內容
symbol [Object] color & width
callback [Function] 回調函數
options [Object] GraphicsLayer類的所有構造參數,點擊查看
maxdraw [Int] 最大繪制量 default 1,000,000
【注意】調用此API時候請添加以下兩個引用
# addGonGeoJsonLayer(name, url, infoTemplate1?, symbol?, callback?, options?, maxdraw?)
添加GeoJson面圖層
name [String] 圖層名稱或id
url [String] 服務或GeoJson文件的地址(同域)
infoTemplate1 [Object] 信息框內容
symbol [Object] color & width & fillcolor [255, 255, 0, 0.25]
callback [Function] 回調函數
options [Object] GraphicsLayer類的所有構造參數,點擊查看
maxdraw [Int] 最大繪制量 default 1,000,000
【注意】調用此API時候請添加以下兩個引用
3. Class: DrawLayer(繪制類)
圖形繪制類,該類中封裝了一些常用的繪制方法;實例化是時候傳入BaseMap實例對象,不要將該類的實例作為圖層疊加。
3.1 AMD Module Requirerequire(["BAMAP/DrawLayer"], function(DrawLayer) { /* code goes here */ });3.2 Constructors
new DrawLayer(Map) // Map為BaseMap類的實例3.3 Method Details
# drawPoint(callback?)
繪制點
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawMultiPoint(callback?)
繪制多點
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawLine(callback?)
繪制直線段
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawPolyLine(callback?)
繪制折線
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawPolyGon(callback?)
繪制多邊形
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawFreePolyGon(callback?)
手繪多邊形
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawArrow(callback?)
繪制箭頭
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawTrianGle(callback?)
繪制三角形
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawCircle(callback?)
繪制圓形
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawEllipse(callback?)
繪制橢圓
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# drawRectangle(callback?)
繪制矩形
callback [Function] 繪制完成的回調函數,相關的繪制信息以回調參數對象傳入
# clear()
清除繪制圖層并釋放繪制狀態
# clsAndte()
清除繪制并保持繪制狀態
# deactivate()
釋放繪制狀態不清空繪制要素
4. Class: GraphicLayer(要素圖層類)該圖層類可根據坐標點繪制各種各樣的要素,常用于繪制專題圖層,該對象繼承于GraphicsLayer對象,有關GraphicsLayer對象的信息,你可以戳【這里】
【注意】該圖層的方法需要調在實例添加到BaseMap中后才可以使用,也就是調用BaseMap的adbLayer方法之后
4.1 AMD Module Requirerequire(["BAMAP/GraphicLayer"], function(GraphicLayer) { /* code goes here */ });4.2 Constructors
new GraphicLayer(options?)
有關options的詳情,戳【這里】
4.3 Method Details# addPoint(lng, lat, infoTemplate?, attr?, symbol?, localAnim?)
添加點要素
lng [Float] 經度
lat [Float] 緯度
infoTemplate [Object] 信息框格式{title:標題,content:正文}
attr [Object] 該要素的屬性值,供infoTemplate使用
symbol [Object] 點樣式{url:圖片路徑,width:寬,height:高}
localAnim [Boolean] 動畫,可用于定位的時候,默認為false
var infoTemplate = {title:"測試",content:"${foo}
"}; var attr = {foo:"hello"}
# addMultiPoint(points, infoTemplate?, attr?, symbol?)
添加多點要素
points [Array] 二維經緯度數組
infoTemplate [Object] 信息框格式{title:標題,content:正文}
attr [Object] 該要素的屬性值,供infoTemplate使用
symbol [Object] 點樣式{url:圖片路徑,width:寬,height:高}
# addLine(path, infoTemplate?, attr?, symbol?)
添加線要素
path [Array] 路徑二維經緯度數組
infoTemplate [Object] 信息框格式{title:標題,content:正文}
attr [Object] 該要素的屬性值,供infoTemplate使用
symbol [Object] 要素樣式{color:顏色,width:線寬}
# addGon(path, infoTemplate?, attr?, symbol?)
添加面要素
path [Array] 路徑二維經緯度數組
infoTemplate [Object] 信息框格式{title:標題,content:正文}
attr [Object] 該要素的屬性值,供infoTemplate使用
symbol [Object] 要素樣式{color:邊線顏色,width:邊線線寬,fillColor:填充色}
【提示】這兒得顏色最好使用[R,G,B,A]的形式
# addCricle(lng, lat, radius, infoTemplate?, attr?, symbol?)
添加圓要素
lng [Float] 經度
lat [Float] 緯度
radius [Number] 半徑(米) 默認1000
infoTemplate [Object] 信息框格式{title:標題,content:正文}
attr [Object] 該要素的屬性值,供infoTemplate使用
symbol [Object] 要素樣式{color:邊線顏色,width:邊線線寬,fillColor:填充色}
【提示】這兒得顏色最好使用[R,G,B,A]的形式
# addText(text, lng, lat, symbol?,offset?)
添加文字要素
text [String] 文字內容
lng [Float] 經度
lat [Float] 緯度
symbol [Object] 要素樣式{size:文字大小,family:文字字體,color:文字顏色}
offset [Object] 文字坐標偏移 {x:橫向偏移,y:縱向偏移}
# addFlowText(text, paths, symbol?,offset?)
添加流式文字/沿線文字,均分文字間距
text [String] 文字內容
paths [Array] 線段坐標三維數組[[[x1,y1],[x2,y2]]]
symbol [Object] 要素樣式{size:文字大小,family:文字字體,color:文字顏色}
offset [Object] 文字坐標偏移 {x:橫向偏移,y:縱向偏移}
【注意】該方法不要大數據量調用,大數據量有內存溢出風險
# addSupFlowText(text, paths, symbol?,offset?)
添加流式文字/沿線文字
該方法適用于線的坐標點數量大于文字數量時候,并不是均分文字間距
text [String] 文字內容
paths [Array] 線段坐標三維數組[[[x1,y1],[x2,y2]]]
symbol [Object] 要素樣式{size:文字大小,family:文字字體,color:文字顏色}
offset [Object] 文字坐標偏移 {x:橫向偏移,y:縱向偏移}
5. Class: DijitLayer(工具類)工具圖層,比如測距,側面,當然可以使用arcgis提供的原生的。
實例化是時候傳入BaseMap實例對象,不要將該類的實例作為圖層疊加。
require(["BAMAP/DijitLayer"], function(DijitLayer) { /* code goes here */ });5.2 Constructors
new DijitLayer(Map,options?) // Map為BaseMap類的實例
options是一個鍵值對對象,值都為函數,在對應狀態的時候會被回調,回調參數都為一個對象
activate [Function] 激活編輯狀態時候觸發 {graphic,tool}
deactivate [Function] 釋放編輯狀態時候觸發 {graphic,info,tool}
graphic-click [Function] 單擊要素時觸發 {graphic,info}
graphic-first-move [Function] 開始移動要素時觸發 {graphic}
graphic-move [Function] 要素移動持續觸發 {graphic,transform}
graphic-move-start [Function] 在要素上按下鼠標按鈕時觸發,通常在移動要素時觸發{graphic}
graphic-move-stop [Function] 在釋放鼠標按鈕時觸發,通常在移動圖形后觸發 {graphic,transform}
rotate [Function] 圖形旋轉時連續觸發 {graphic,info}
rotate-first-move [Function] 當用戶開始拖動句柄以旋轉要素時觸發 {graphic}
rotate-start [Function] 當用戶單擊手柄開始旋轉要素時觸發 {graphic}
rotate-stop [Function] 從旋轉手柄釋放鼠標按鈕以完成要素旋轉時觸發 {graphic,info}
scale [Function] 在縮放要要素時持續觸發 {graphic,info}
scale-first-move [Function] 當用戶開始拖動句柄以縮放圖形時觸發 {graphic}
scale-start [Function] 當用戶單擊手柄以縮放或調整圖形大小時觸發 {graphic}
scale-stop [Function] 從縮放手柄釋放鼠標按鈕以完成對圖形的縮放時觸發 {graphic,info}
vertex-add [Function] 在將新頂點添加到多段線或多邊形或將新點添加到多點后觸發 {graphic,vertexinfo}
vertex-click [Function] 在多段線或多邊形的頂點或多點中的點上單擊鼠標按鈕時觸發 {graphic,vertexinfo}
vertex-delete [Function] 刪除頂點(多段線、多邊形)或點(多點)后觸發 {graphic,vertexinfo}
vertex-first-move [Function] 當用戶開始移動多段線、多邊形或多點的頂點時觸發 {graphic,vertexinfo}
vertex-mouse-out [Function] 當鼠標退出頂點(多段線、多邊形)或點(多點)時觸發 {graphic,vertexinfo}
vertex-mouse-over [Function] 當鼠標移過頂點(多段線、多邊形)或點(多點)時觸發 {graphic,vertexinfo}
vertex-move [Function] 在用戶移動頂點(多段線、多邊形)或點(多點)時連續觸發 {graphic,vertexinfo,transform}
vertex-move-start [Function] 在頂點(多段線、多邊形)或點(多點)上按下鼠標按鈕時觸發 {graphic,vertexinfo}
vertex-move-stop [Function] 當鼠標按鈕從頂點(多段線、多邊形)或點(多點)釋放時觸發 {graphic,vertexinfo,transform}
5.3 Method Details# measureDis()
測距
# measureArea()
測面
# clearMeas()
清空測量數據
# activateToolbar(graphic)
編輯要素
graphic [Object] 圖形要素
# deactivate()
釋放編輯狀態
# getCurrentState()
獲取當前編輯的一些狀態
{tool:當前工具,graphic:正在編輯的要素,isModified:要素是否被修改}
# refresh()
刷新工具類的內部狀態
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105645.html
摘要:不建議底圖選擇中存在兩種不同坐標體系,如下圖坐標存在明顯的偏差,火星坐標在采用坐標系的地圖上位置偏上彩色中國天地圖全球衛星地圖例如我們使用的類進行查找,返回的數據都是國際坐標,因此必須進行偏差糾正。 ArcGIS for javascript開發心得 本次實例中采用ArcGIS for javascript3.24版本,由于版本3與4在API等存在較大區別,就不一一列舉,詳細區別看官方...
摘要:技術路線的選擇技術學習內容匯總技術路線的選擇項目的技術路線是使用構建一套前端應用,更加具體的技術路線實際上是,應用到了技術棧加上了最新版的。不管怎么說,以這次項目對的使用體驗挺好。本次項目沒有使用開源的要求,自然是最好的選擇。 寫這篇總結的意義:總結,回顧,反思項目進行過程和這套Vue + ArcGIS API for JavaScriptGIS前端應用技術路線,從項目與技術兩個方面積...
摘要:使用柵格函數支持直接在前端使用柵格函數來重新渲染影像服務。針對數據在柵格函數模版編輯器中使用渲染地貌函數,并且設計好結果的渲染方式。配置柵格函數模版可以在兩種情況下進行。 ArcGIS 柵格函數在線調用詳解 導讀:ArcGIS從10.0版本開始引用鑲嵌數據集,并且第一次在影像中加入柵格函數(raster functions),使得影像的呈現和信息提取與GIS緊密的結合起來,簡單的影像功...
閱讀 1815·2019-08-30 15:55
閱讀 1007·2019-08-26 11:57
閱讀 507·2019-08-26 11:29
閱讀 3358·2019-08-26 10:49
閱讀 1910·2019-08-23 18:40
閱讀 1749·2019-08-23 16:04
閱讀 3104·2019-08-23 11:01
閱讀 2271·2019-08-23 10:56