ArcGIS API ForJS 3.25開發總結(持續更新)
一、關於Graphic
首先看張圖:
這是整個Graphic涉及的一些類,上圖中的可以進行客戶端點、線、面的表示。在伺服器端的進行修改時applyEdits函式傳入的也是graphic,drawToolbar繪圖類也涉及到graphic,總而言之,graphic可以視為一個要素元素,感覺更應該稱之為圖形
返回一個字串,data是資料,template是中佔位符模板
1、模板的寫法
HTML寫法
var t = "<b>${NAME}</b><hr><b>2000 人口數量: </b>${POP2000:NumberFormat}<br>" + "<b>2000 人口密度: </b>${POP00_SQMI:NumberFormat}<br>" + "<b>2007 人口密度:</b>${POP2007:NumberFormat}<br>" + "<b>2007 人口密度: </b>${POP07_SQMI:NumberFormat}"; //attributes中的欄位進行替換 var content = esriLang.substitute(evt.graphic.attributes, t);
該方法一般與infoTemplate類一塊用
三、關於FeatureLayer載入服務
1、釋出的要素服務無
2、地圖服務的單個圖層
四、關於TiledMapServiceLayer的子類
1、ArcGISTiledMapServiceLayer:用於訪問ArcGIS Server釋出的地圖切片服務
2、VETiledLayer:用於訪問微軟的Bing地圖,但是其 名稱空間在3.25不在layer圖層下,在"esri/virtualearth/VETiledLayer"
3、OpenStreetMapLayer:用於訪問開放街道地圖(OSM)
4、WMTSLayer:用於訪問OGC標準的WMTS服務
5、WebTiledLayer:用於訪問非ArcGIS Server釋出的切片服務
五、esri/config模組
ArcGIS API For JS有一些預設的配置,例如漫遊動畫時間、縮放持續時間、縮放重新整理速度等,都可以通過該模組進行控制。
使用示例:
esriConfig.defaults.map.panDuration = 1000; esriConfig.defaults.map.panRate = 50; esriConfig.defaults.map.zoomDuration = 1000; esriConfig.defaults.map.zoomRate = 50;
六、關於地圖的配置(寫成一個物件)
好處:開發人員容易配置,程式碼不亂,更改服務更容易。
示例:
/* --------------------------------地圖初始資訊配置-------------------------------- */
function MapConfig() { }
MapConfig.mapInitParams = {
fullExtent: {//全圖範圍
xmin: 121.29585473952106,
ymin: 39.49550677343447,
xmax: 123.05162192862765,
ymax: 139.982938778863684
},
extent: {//初始化範圍
xmin: 120.8696333,
ymin: 38.65953686,
xmax: 123.6199347,
ymax: 40.202622
},
spatialReference: {//地圖空間參考座標系
wkid: 4326
},
lods: [//針對瓦片的地圖服務的,用來控制瓦片級別的顯示,有時候切片級別太多的話,可以只顯示部分的級別地圖
//resolution scale這些值的獲取參照釋出的切片地圖服務詳情
{ "level": 0, "resolution": 0.00118973050291514, "scale": 500000 },
{ "level": 1, "resolution": 5.9486525145757E-4, "scale": 250000 },
{ "level": 2, "resolution": 2.3794610058302802E-4, "scale": 100000 },
{ "level": 3, "resolution": 5.710706413992673E-5, "scale": 24000 },
{ "level": 4, "resolution": 2.3794610058302804E-5, "scale": 10000 }
]
}
/*地圖呼叫*/
MapConfig.vecMapUrl = "http://localhost:6080/arcgis/r ... rcGIS動態服務
MapConfig.imgMapUrl = "http://localhost:6080/arcgis/r ... rcGIS切圖服務
七、Dojo類的程式碼宣告示例
define(["dojo/_base/declare"], function (declare) {
return declare("aClass", null, {
mynum: 10, //宣告一個變數(在這個類裡是全域性的)
constructor: function (num) { //這個是建構函式,宣告類的例項時,傳的引數在這裡
console.log(num); //我們讓宣告例項時,輸出他傳的引數
},
add: function (num1) { //類方法,呼叫類方法時,返回值是引數+10
return this.mynum + num1; //必須加this.mynum才能呼叫類內建的變數
},
getMynum: function () { //返回類內部的變數
return this.mynum;
},
mynumAdd:function(){
this.mynum++;
return this.mynum;
}
})
})
八、我們在要釋出模型工具(插值、緩衝區、等值線、等值面等等)之前,為什麼會要把輸入要素型別改成輸入要素類?
當我們使用查詢、地理處理和路徑分析的時候我們常常將FeatureSet輸入和輸出引數。
FeatureSet:是要素類的輕量級的表示,相當於地理資料庫的一個要素類,是Feature(要素)的集合,FeatureSet的每個Feature可能包含Geometry、符號、屬性、和一個InfoTemplate。如果FeatureSet不包含Geometry,只包含屬性,那麼FeatureSet可以看作一個表,其中每個Feature是一個行物件。
九、兩個修改要素方面的小部件
1、AttributeInspector
效果如上圖,點擊出現彈窗,進行要素的編輯修改,點我檢視demo
2、FeatureTable
這個基本功能和上面差不多,點我檢視demo
十、esri/config類
1、IO:這裡面涉及一些跨域等方面的設定
2、map:這裡面主要涉及一些地圖狀態引數設定
3、workers:AMD載入一些設定
4、kmlService:該引數預設為空,具體什麼用還沒看懂
5、geometryService:該引數對於一些分析類的東西雖然有時候我們無法釋出我們的模型,但是我們可以用online上面的,非常方便的。
使用示例:
esriConfig.defaults.map.panDuration = 1; // time in milliseconds, default panDuration: 350
esriConfig.defaults.map.panRate = 1; // default panRate: 25
esriConfig.defaults.map.zoomDuration = 100; // default zoomDuration: 500
esriConfig.defaults.map.zoomRate = 1; // default zoomRate: 25
esriConfig.defaults.geometryService = new GeometryService("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
esriConfig.defaults.io.proxyUrl = "/proxy/";
esriConfig.defaults.io.alwaysUseProxy = false;
十一、未完待續。。。。。