全是干活,你值得擁有
要素圖層類簡介:
Class:FeatureLayer
//調用方式:
require(["esri/layers/FeatureLayer"],function(FeaturLayer){});
/*描述:
要素圖層繼承幾何圖層,可以用來顯示地圖服務中的單一圖層的服務或要素服務。
要素圖層可以是一個圖層后者一個屬性表。如果可編輯方法是true的話,要素圖層中的要素可以被編輯。
注意:arcgis 和桌面中的符號尺寸使用時點,在API for JavaScript中使用的是像素。
*/
類的層級
esri/layers/Layer
esri/layers/GraphicsLayer
esri/layers/FeatureLayer
----------------------------------------------
子類:
CSVLayer,DataAdapterFeatureLayer,StreamLayer
-----------------------------------------------
構造函數:
new FeatureLayer(url,options?) // 實例化對象, url為REST服務
new FeatrueLayer(featureCollectionObject,options?)//要素特征集實例化對象
-----------------------------------------------
常量:
Name 描述
MODE_AUTO 用於緩存,減少服務器的負載
MODE_ONDEMAND 此種模式,要素圖層可以在服務中檢索我們需要的要素。
MODE_SELECTION 在選擇模式下,要素是檢索服務僅選擇的。此功能只在客戶端可用時被選中。
MODE_SNAPSHOT 此模式下,要素圖層檢索所有相關圖層資源中要素將其顯示在客戶端上。
POPUP_HTML_TEXT 在彈出菜單中顯示html或文本信息
POPUP_URL 彈出顯示URL的類容
SELECTION_ADD 將功能添加到當前的選擇集
SELECTION_NEW 新建一個選擇
SELECTION_SUBTRACT 從選擇集中移除要素。
----------------------------------------------------------------------------------------------
常用的屬性:
Name 概述
advancedQueryCapabilities 一個對象,其中包含服務水平層元數據是否支持使用統計、查詢命令字段,層次分明,分頁,隨着距離的查詢,並返回查詢擴展。
allowGeometryUpdates 返回true,如果幾何特征的層可以被編輯,否則假。
attributionDataUrl 當URL可用時圖層屬性將被保存
capabilities 支持這一圖層的信息功能
className 圖層節點的類屬性
copyright 版權信息層
dataAttributes String/String[]類型。 屬性列表字段作為自定義數據屬性添加到圖形節點。
defaultVisibility 顯示默認圖層的可見性
displayField 顯示圖層字段的屬性名
editFieldsInfo 顯示編輯字段的字段名
fields 圖層中的字段數組
fullExtent 圖層全部范圍
gdbVersion 地理數據庫的版本
geometryType 圖層要素的集合類型
graphics 層中的要素數組
layerId id要素圖層
loaded 當圖層加載,其值為true時可以訪問圖層屬性
---------------------------------------------------------------------------------
常用的方法:
Name 概述
addAttachment(objestId,formNode,callback?,errback?) 添加一個附件ObjectId所指定的功能。
applyEdits(adds?,updates?,Deferred deletes?,callback?,errback?) 編輯應用到功能層
attr(name,value) 添加一個新的屬性或更改現有的屬性的值在層的節點上。
clear() 清除多有的圖形
clearSelection() 清除當前的選擇
disableMouseEvents() 禁用圖形層上的所有鼠標事件。
enableMouseEvents() 圖層上的鼠標事件可用
getAttributionData() 返回自定義圖層的數據
getDefintionExpression() 返回當前定義的表達式
getDomain(fieldName,option?) 返回與給定字段相關聯的域值
getEditCapabilities(options?) 返回一個對象,描述的編輯功能層。
getEditInfo(feature,options?) 返回一個對象描述最近的編輯操作上執行給定的特性,如果可用。
getField(fieldName) 返回給定字段的名稱
getMap() 返回的引用添加到圖層的控制層
getOrderByFields() 返回的列表字段順序功能使用
getSelectionSynbol() 獲取當前選擇的要素
getType(feature) 返回描述描述要素 類型的 FeatureType
queryCount(query,callback?,errback?) 得到一個計數的數量滿足輸入查詢的功能。
queryFeatures(query,callback?,errback?) 在要素圖層中查詢要素
queryIds(query,callback?,errback?) 查詢對象ID
queryRelatedFeatures(relQuery,callback?,errback?) 查詢功能或記錄,從另一個圖層或表,相關功能在這一層。
redraw() 重繪圖層中多有圖形
refresh() 刷新特征圖層中的要素
remove(graphic) 移除圖像
resume() 重繪圖層
selectFeatures(query,selectionMethod?,callback?,errback?) 在要素圖層中選擇要素
setEditable(editable) FeatureLayer Set the editability of feature layers created from a feature collection.
setGDBVersion(versionName) FeatureLayer Set the layer's data source to the specified geodatabase version.
setInfoTemplate(infoTemplate) None Specify or change the info template for a layer.
setLabelingInfo(labelingInfo) None Sets labeling info on the layer.
setMaxAllowableOffset(offset) None Sets the maximum allowable offset used when generalizing geometries.
setMaxScale(scale) None Set the maximum scale for the layer.
setMinScale(scale) None Set the minimum scale for the layer.
setOpacity(opacity) None Initial opacity or transparency of layer.
---------------------------------------------------------------------------------
構造方法:
------------------------------------------------------------
new FeatureLayer(url,options?)
<string>url :使用地圖下的某一圖層,必須標明
<Object>options :可選的參數,參照可選參數表
options properties
.....
Sample:
require([
"esri/InfoTemplate","esri/layers/FeatureLayer",...
],function(InfoTemplate,FeatureLayer,....){
var infoTemplate=new InfoTemplate("${FIELD_NAME}",content);
var featureLayer=new FeatureLayer("http://..../0",{
mode:FeatureLayer.MODE_ONDEMAND,
infoTemplate:infoTemplate,
outFields:["*"]
});
...
});
----------------------------------------------------------------------
new FeatureLayer(featureCollectionObject,options?)
創建一個新的實例層使用FeatureCollection對象的特性。功能層,當初始化功能集合對象有以下行為:
這種方法可以用來訪問的可序列化的表示特性,可以保存在服務器上。
Sample
require([
"esri/layers/FeatureLayr",...
],function(FeatureLayer,..){
var layerDefinition={
"geometryType":"esriGeometryPolygon",
"fields":[{
"name":"BUFF_DIST",
"type":"esriFieldTypeInteger",
"alias":"Buffer Distance"
}]
}
var featureCollection={
layerDefinition:layerDefinition,
featuerSet:null
};
var featureLayer=new FeatureLayer(featureCollection,{
showLabels:ture
});
....
});
-------------------------------------------------------------------
Property Details
/*一個對象,其中包含服務水平層元數據是否支持使用統計、查詢命令字段,
層次分明,分頁,隨着距離的查詢,並返回查詢擴展。這個對象包含現有的
屬性supportsStatistics和supportsAdvancedQueries新的supportsOrderBy屬性返回的。
為了向后兼容supportsStatistics和FeatureLayer supportsAdvancedQueries仍將屬性。*/
Sample
var wildfireResponsePointsFeatureLayer = new FeatureLayer(url, featureLayerOptions);
map.addLayer(wildfireResponsePointsFeatureLayer);
wildfireResponsePointsFeatureLayer.on("load", function featureLayerLoaded(event){
console.log("advancedQueryCapabilities)", wildfireResponsePointsFeatureLayer.advancedQueryCapabilities);
/* Object {supportsStatistics: true, supportsOrderBy: true, supportsDistinct: true} */
});
----------------------------------------------------------------------------
id
//ID分配層。如果不指定,esri。地圖分配值。
//默認情況下,層的ID是“層”后跟一個數字。身份證只能在用戶定義層的構造函數。
1、在圖層構造函數設置層id。添加指定id的動態圖層
require([
"esri/layers/ArcGISDynamicMapServiceLayer",...
],function(ArcGISDynamicMapServiceLayer,..){
var population=new ArcGISDynamicMapServiceLayer("http://....",{id:"population"});
...
});
2、設置層的ID后層初始化
population.id="population";
3、檢索圖層id
function getMapLayers(){
for(var j=0;jl=map.layers.length;j<jl;j++){
var currentLayer=map.getLayer(map.layerIds[j]);
alert("id:"+ currentLayer.id);
}
}
---------------------------------------------------------------------------
labelingInfo
標簽信息,
用來顯示返回的信息
Sample
labelingInfo:[{
"labelExpression":"",
"labelExpressionInfo":{
{"value":"City Of {CITY_NAME} has population{POPULATION}"}
},
"useCodedValues": , //參數字段屬性域值時使用
"labelPlacement":"above-right",
"symbol":{....}, //用於標簽
"minScale":0,
"maxScale":5000,
//fieldInfos結構描述屬性字段格式
"fieldinfos":[
{fieldName:"created_date", format:{dateFormat:"shortData"}},//時間或日期的格式化
{fieldName:"last_edited_date",format:{dateFormat:"longDate"}},
{fieldName:"eventtype",format:{places:6,digitSeparatior:ture}}//數字格式化
],
"where":"POP_RAMK > AND POP_RAMK < 4"// where 條件句用於標簽上
}]
----------------------------------------------------