2013-10-01 70 views
3

我正在使用ArcGIS Javascript語言,並使用esri.tasks.FindTask,我想選擇所有功能。ARCGIS Javascript需要選擇地圖中的所有功能

當我通過空白參數比它不工作。 我正在粘貼一些代碼。在這段代碼中,我有searchid和seachField,而不是執行方法會調用。

var searchText = document.getElementById('txtSearch').value; 
     findTask = new esri.tasks.FindTask(SearchURL); 
     findParams = new esri.tasks.FindParameters(); 
     findParams.returnGeometry = true; 
     findParams.layerIds = [searchId]; 
     findParams.searchFields = [seachField];        
     findParams.searchText = searchText; 
     findTask.execute(findParams, showResults); 

但是如果假設我會在搜索文本中傳遞空值並且它沒有給我任何特徵。

任何想法...在此先感謝

回答

3

不,你不能這樣做與查找任務的自定義行爲,你需要做一個「解決辦法」。

要獲得查詢更多的靈活性,你需要使用查詢TAKS,並讓你可以使用此查詢波紋管的所有文件:當你問

var query = new esri.tasks.Query("http://myarcgisserver:6080/arcgis/rest/services/mymapservice/MapServer/8"); 
query.where = "1=1"; 
query.outSpatialReference = {wkid:102100}; 
query.returnGeometry = true; 
query.outFields = ["*"]; 
queryTask.execute(query, addPointsToMap); 

,做不同層次的查詢需要的是一個因此如果您想通過findTask執行此操作,則可以使用設置爲truecontains參數,並確保所有字段都具有空格字符,然後使用空格字符查找發送查找的所有功能。

+0

但esri.tasks.Query()中的問題是我們只能在一層中搜索功能。 like ... var query = new esri.tasks.Query(); queryTask = new esri.tasks.QueryTask(LayerName); query.where = WhereCondition; query.returnGeometry = true; query.outFields = [「*」]; queryTask.execute(query,showResultsForAdvance); –

+0

是的,你只需要指定一個帶有id的mapserver url。 –

+0

但克勞迪奧我想搜索地圖的所有功能..是否有可能與esri.tasks.Query().. –