ArcGIS API ForJS 3.25開發總結(持續更新)

1、關於Graphicjavascript

首先看張圖:html

這是整個Graphic涉及的一些類,上圖中的能夠進行客戶端點、線、面的表示。在服務器端的進行修改時applyEdits函數傳入的也是graphic,drawToolbar繪圖類也涉及到graphic,總而言之,graphic能夠視爲一個要素元素,感受更應該稱之爲圖形java

2、關於esriLang類的substitute(data, template?, first?)方法數據庫

返回一個字符串,data是數據,template是中佔位符模板api

一、模板的寫法跨域

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類一塊用app

3、關於FeatureLayer加載服務函數

一、發佈的要素服務無          工具

二、地圖服務的單個圖層

4、關於TiledMapServiceLayer的子類

一、ArcGISTiledMapServiceLayer:用於訪問ArcGIS Server發佈的地圖切片服務

二、VETiledLayer:用於訪問微軟的Bing地圖,可是其        命名空間在3.25不在layer圖層下,在"esri/virtualearth/VETiledLayer"

三、OpenStreetMapLayer:用於訪問開放街道地圖(OSM)

四、WMTSLayer:用於訪問OGC標準的WMTS服務

五、WebTiledLayer:用於訪問非ArcGIS Server發佈的切片服務

5、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;

6、關於地圖的配置(寫成一個對象)

好處:開發人員容易配置,代碼不亂,更改服務更容易。

示例:

/* --------------------------------地圖初始信息配置-------------------------------- */
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切圖服務

7、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;
        }
    })
})

8、咱們在要發佈模型工具(插值、緩衝區、等值線、等值面等等)以前,爲何會要把輸入要素類型改爲輸入要素類?

當咱們使用查詢、地理處理和路徑分析的時候咱們經常將FeatureSet輸入和輸出參數。

FeatureSet:是要素類的輕量級的表示,至關於地理數據庫的一個要素類,是Feature(要素)的集合,FeatureSet的每一個Feature可能包含Geometry、符號、屬性、和一個InfoTemplate。若是FeatureSet不包含Geometry,只包含屬性,那麼FeatureSet能夠看做一個表,其中每一個Feature是一個行對象。

9、兩個修改要素方面的小部件

一、AttributeInspector

效果如上圖,點擊出現彈窗,進行要素的編輯修改,點我查看demo

二、FeatureTable

這個基本功能和上面差很少,點我查看demo

10、esri/config類

關於這個類主要設置地圖的默認配置即defaults,defaults 又分爲三個種類設置:

一、IO:這裏面涉及一些跨域等方面的設置

二、map:這裏面主要涉及一些地圖狀態參數設置

三、workers:AMD加載一些設置

四、kmlService:該參數默認爲空,具體什麼用還沒看懂

五、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;

11、未完待續。。。。。

相關文章
相關標籤/搜索