arcgis_js_v33_API.zip:http://vdisk.weibo.com/s/nx2AM/1358216078
arcgis_js_v33_sdk.zip:http://vdisk.weibo.com/s/nwUDp/1358216099
ESRI 發布了最新了3.3版的ArcGIS API for JavaScript,並且更新了協助的介面。
圖 1.1 ArcGIS API for JavaScript 3.3版協助介面
圖1.2 ArcGIS API for JavaScript 3.2版協助介面
1、新的地理編碼控制項
使用ArcGIS API for JavaScript 3.3版僅需要幾句簡單的代碼就可以給自己的應用程式添加地理查詢方塊控制項。雖然該控制項預設採用的是ArcGIS Online的世界地理編碼服務(World Geocoding Service),但是也可以自訂採用一至多個ArcGIS Server中的地理編碼服務。
圖 2.1 新的地理編碼查詢控制項
點擊samples that use
thisnew widget 查看
2、新的地圖建構函式選項
在ArcGIS API for JavaScript 3.3版中map類的新的建構函式選項能協助使用者使用簡潔的代碼快速的構建地圖應用。
• basemap:ArcGIS.com 的地理底圖。可能的值有:"streets", "satellite", "hybrid", "topo", "gray", "oceans", "national-geographic" 或者"osm"。
• center: 以經度和緯度組成的座標數組或者一個點。
• zoom:地圖的縮放層級。
• minZoom: 地圖的最小縮小層級。
• maxZoom: 地圖的最大放大層級。
在新的介面中,地圖採用自動縮放,因此不再需要在地圖容器端設立事件監聽,監聽地圖容器大小變化來改變地圖範圍。
是在3.3 版本和3.3 以前的版本中,載入地圖的代碼對比圖。
圖 2.2 新版和之前版本載入地圖的對比圖
3、更簡單的底圖切換
在新版API中,新增加了兩個地圖方法,getBasemap 和setBasemap,使得底圖的切換更加的方便。setBasemap 接收上文提到的basemap的名字字串,並轉換其在ArcGIS.com 中相對應的底圖。如果在應用程式中使用map.options.basemap或者setBasemap方法來初始化底圖,則採用getBasemap方法能返回當前的地理底圖的名字的字串。
4、預設的地圖微縮放控制
在新的API中地圖的微縮放控制通過“+”和“-”來取代滑塊成為地圖的微縮放預設的控制方式,而通過將地圖的建構函式中選項中的sliderStyle屬性設定為“large”依然可以使用滑塊形式。
5、地圖的圖層中可以只包含一個圖形層或者要素層
在3.3版中,map不再必須要求先添加切片或者動態服務後才能添加其他圖層,可以直接添加圖形或者要素圖層。查看 Feature
Layer in anyprojection sample 或者
gas prices by stateexample 來查看新的該特性。
6、提升了經緯度座標的操作
esri.geometry 對象在建立的過程中如果沒有賦予空間參考,被假定採用的是地理座標系並且被預設為採用WGS 84 (wkid 4326)。在新版的API 中esri.geometry.Point 的執行個體新增加了getLatitude 和getLongitude的方法,如果點具有地理座標或者網路墨卡托座標,則通過這兩個方法可以擷取點的經度和緯度,反之,則這兩方法返回undefined。如果當map具有地理座標系或者網路墨卡托座標,則使用geographicExtent屬性擷取地理範圍。
7、繪圖工具的加強
繪圖工具條中的矩形,三角形,圓和橢圓工具支援滑鼠的單擊和拖拽來控製圖形的範圍。在新版API中工具條也能繪製上、下、左、右等特定方法的箭頭。這些新的功能可以在drawing
tools sample中可以查看。
8、附加功能
•要素圖層中的新redraw方法可以在無須返回到服務的情況下可以重繪要素。
• 通過傳遞函數來取代使用一類別的屬性欄位名渲染或者唯一值渲染來計算需要渲染的資料值。可以 查看USCounty population change
over time sample。
• 類別渲染中的setMaxInclusive方法用來指明符合某一symbol類的最大值的要素是否應該包含在類中。
• 編輯工具條新添加了uniformScaling這一選項,該選項在圖形大小變化的過程中保持了圖形的縱橫比不變。
9、新增加了執行個體
· Createa map using new simple options
· GeocoderWidget
· GeocoderWidget with custom options
· GeocoderWidget with custom style
· GeocoderWidget using a suffix to restrict
search area
· Locatepoints of interest(POIs)
· Featurelayer in any projection
· Featurelayer with no basemap
· Dailygas prices by state mashed up with
a feature layer
Rendererusing a function to determine
feature symbols
10、突破性變化
•建立geometry無須指定具體的空間參考,當沒有具體的空間參考時,API預設採用WGS84 (wkid 4326)。在應用程式中建立過去的那種非WGS84 座標的幾何圖形時,如果沒有空間參考則現在必須為幾何圖形指定具體的空間參考。
• map的預設的縮放滑塊樣式在發生了變化。建立地圖時,帶有刻度的滑塊不再是預設的樣式,但是可以通過將sliderStyle的屬性設定為"large" 來恢複到先前的樣式。
• 當dijits layout 和data-dojo-config(或dojoConfig)的locale或者extraLocale路徑沒設定的時,使用了lang=“en”的應用程式會遭到破壞。為了避免此類錯誤,推薦設定data-dojo-config中的locale或者extraLocale路徑或者移除lang=“en”屬性,否則在Chrome瀏覽器中會出現 “dojo/parser::parse() error TypeError”的錯誤,在Firefox中則會出現錯誤“TypeError:_72f(...)
is undefined”。查詢更多的錯誤資訊可以瀏覽網站http://trac.dojotoolkit.org/ticket/15630#comment:7 和http://trac.dojotoolkit.org/ticket/15768#comment:6
11、增強功能和Bug的修複
•NIM087469:ArcGISDynamicMapServiceLayer.setDynamicLayerInfos()不能正確的從JSON建立esri.layers.DynamicLayerInfo對象。
• NIM087472:在同一頁面上無法建立多時相的滑塊。
• NIM087503:儀錶控制項到AMD的轉換。
• NIM087504 :圖例控制項到AMD的轉換。
• NIM087499 Editor:當指定自訂的屬性時,空的檢查對話方塊會在選擇要素的時候彈出。
• NIM087510:當使用壓縮構建的API時esri.layers.WebTiledLayer無效。這是因該類沒有顯示的聲明dojo.stirng,而採用dojo.string的替代。
• NIM088028:esri.request 允許上傳檔案使用FormData形式,而瀏覽器能對FormData的支援。
• NIM087511:將esri._isDefined方法修改為public方法esri.isDefined。
• NIM087500:在3.2 的FeatureLayer 中劃線不顯示。
• NIM087507 IdentityManager:修複了令牌產生的參考。
• NIM087512 IdentityManager:通過geowarehouse server 的返回傳遞error.messageCode的屬性。
• NIM088031 :從map中移除某一圖層後,再將該圖層添加到map中時,圖層不可視。
• NIM088024 Legend widget:不添加margin為1的地圖比例。
• NIM087513 Popup:提供對shortDateLongTime和shortDateLongTime24兩種時間格式的支援。
• NIM088027 Popup:如果某一要素所在的圖層不具有SHAPE欄位,則該要素無法顯示。
• NIM088032 Popup:移除了圖片和圖表的邊框和背景顏色。
• NIM087501 Portal:添加getPortalUser方法,該方法返回當前登入PortalUser的對象。
• NIM087505 Portal:當調用Portal.signOut方法時出現null 異常。
• NIM088021 Printing: 給esri.tasks.printTemplate添加新屬性作為“:”“showAttribution”為輸出開關控制。
• NIM088026 Printing:當要素集中的要素不具有幾何形體,則列印任務中應該不包括這些要素。
• NIM088030 Printing:列印任務應該排除那些通過JavaScript API KMLLayer.js轉換過來的圖層,因為列印服務不知KML檔案夾。相反應該發送graphic slayers或者mapImageLayers作為工作區。
• NIM088035 Printing:PrintTask 應該排除非法的圖片,這些圖片來自MapImageLayer包含非法的URL或者ImageData屬性。
• NIM088029 Printing: esri.tasks.printTemplate.layeroutOptions支援customTextElements屬性。
• NIM085927 Printing:當執行列印時,基於要素圖層建立的要素集應該在圖例中顯示圖層名或者圖層ID。
• NIM088023:當連結到一個交叉的時間或者超過原先的範圍的時候儲存正常的範圍。
• NIM088034 :支援 directionsOutputType 和 directionsStyleName 參數 到 RouteParameters 和 ClosestFacilityParameters。
• NIM088033:esri.esri.tasks.ClosestFacilityParameters.directionsTimeAttribute的預設值應該為“null”而不是“false”。
• NIM088025:當在FireFox和IE中建立TimeExent對象,指定起始時間和終止時間時會丟失毫秒的精度。
• NIM083409 :當編輯的屬性為0, applyEdits 發送空的字串。.
• NIM088022:map空間在IE7中預覽時顯示esri的logo。
Dojo 1.8
ArcGIS API for JavaScript 3.3版採用了Dojo 1.8。