天天看點

ArcGIS API for Javascript 開發經驗心得

1、map對象中預設有一個GraphicLayer,置于最頂層,使用它的方式是map.graphics.  比如map.graphics.add(graphci);

2、可以給GraphicLayer添加事件,比如點選事件, dojo.connect(map.graphics, "onClick", capitalclick);傳回的是一個event對象,有三個值mapPoint(地圖坐标)、screenPoint(螢幕坐标) 、Graphic(你所點選的Graphic對象)。

3、聲明Graphic時參數都是可選的geometry、symbol、attributes、infoTemplate,如果添加了infoTemplate,不需要添加點選事件,點選Graphic,infoTemplate就會自動彈出,這個時候可以賦給相應的attributes,可以用來後續的查詢用,點選查詢時就不需要用identify這個工具了,直接取event.graphic.attributes.可以提高查詢效率。event.graphic.geometry.type這個語句可以得知你所點選的Graphic是什麼類型(點線面)。

4、map.setExtent(extent)這個函數要求extent的spatial reference必須和map是一樣的,否則設定無效

5、還有一種服務時Geometry,他不需要資源,但是要釋出,在GIS Servers中某個目錄下右鍵->Add New Services ,一直下一步就行了。在使用buffer的時候需要這個服務

6、easyui-combobox,在html中聲明控件時,寫好option值,再在後面寫onSelect函數有效,如果都是在js中loadData和寫onSelect事件,點選事件失效,但是選擇框中會顯示選中的選項。解決辦法,使用combotree,但是别寫multiple屬性,onSelect事件就有效。

7、如果使用IE11打開頁面, IE11已經不支援使用 if(window.ActiveXObject)來判斷是不是IE浏覽器了,要使用if ("ActiveXObject" in window)。同時如果使用IE11發現在地圖上使用滾輪,地圖不縮放時,考慮把arcgis for Javascript api更新,我是把3.3更新到3.9,就沒問題了。

8 、可以使用map.setMapCursor("url(images/cursor/identify.ico),auto");來設定在不同的應用場景下,地圖視窗顯示不同的滑鼠樣式,主義url()裡不用雙引号,同時不支援jpg,png之類的格式,支援ico,cur,window系統自帶很多.cur

的檔案,在c:/windows/cursor檔案夾内,可以拿來用

9、easyUI1.3.6版本中,tree控件的onCheck事件傳出的參數node,它的checked值反常,選中時,其值為false,推測node.checked值是選中之前的值,而在判斷node.checked的值之前加上

var n = $("#user_basemap").tree('getChecked', 'checked');  則回歸正常,估計是easyUI的bug

繼續閱讀