What's new in ArcGIS API 3.3 for Flex
If you're upgrading an application from version 2.5 to 3.x, be sure to read Migrating from 2.5 to 3.x.
For full functionality, the latest ArcGIS API for Flex requires the latest version of ArcGIS 10.1. For most functionality (for example, basic mapping and query), ArcGIS Server 9.3 or later is more than adequate. For editing, time-aware layers, closest facility, and service area, the ArcGIS API for Flex 2.0 (or later) and ArcGIS Server 10.0 (or later) are required. For PrintTask, dynamic layers, and dynamic workspaces, the ArcGIS API 3.0 for Flex (or later) and ArcGIS for Server 10.1 (or later) are required. See system requirements for more details.
ArcGIS API for Flex
The following functionality, enhancements, changes, and bug fixes are new at version 3.3:
- Direction improvements: updated skin with added user options for optimizing route and return to start. The routing service URL now defaults to http://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World.
- New AttributeTable.exportColumnDelimiter property to support custom CSV delimiters.
- New GeocoderLocatorOptions.minScale property, to specify when the search should be based on the center of current map extent.
- New PortalInfo.helperServices property, that includes the default printing service, geocoding service etc when using an ArcGIS Organization or Portal for ArcGIS.
- The default for the “doNotLocateOnRestrictedElements” property on ClosestFacilityParameters, RouteParameters and ServiceAreaParameters have changed from false to true.
- Updated localization for Hebrew and several other locales.
- Better support for Portal for ArcGIS and hosted organizations.
Changes to be aware of when migrating from 3.2 to 3.3
The results of the Geocoder should be better since the map extent (technically, map center and a distance) is only used when zoomed in past 1:150,000.
- NIM090192 - The geoprocessing widget configured in Flex Viewer 3.2 prompts for credentials although the geoprocessing service has not been secured.
- NIM087793 - Certain WMTS (Web Map Tile Service) layer fails to load with ArcGIS API for Flex.
- NIM089743 - Longer field values in a relate are cut off in the popups.
- NIM090226 - Directions widget showed "Unknown" image for certain direction types.
- NIM090234 - Directions widget showed incorrect images for "Bear left, then right" and "Bear right, then left" directions.
- NIM090362- Show related records for map service layers with ID of 10 or higher not working.
- Legend component not honoring scale dependency for ArcGIS 10.0 and earlier map services.
- Allow horizontal scrolling in AttributeInspector and its RelationshipInspector.
- Updated LegendSkin to prevent runtime errors when parentLayerId is null.
- AttributeTable now properly honors column order when columnsOrder="fieldInspector".
- AttributeInspector fix for when skin changes.
- Directions widget - clicking "Directions" with no search strings removed point markers but not the line from previous directions.
- Support more WMTS services: There is now a certain tolerance for matching scales in LODs that aren't 100% identical.
- Better support for Web maps created using ArcGIS Explorer Online.
- The generalization/rounding of the screen coordinates for lines and symbols have been improved.
ArcGIS API 3.2 for Flex
The following functionality, enhancements, changes, and bug fixes are new at version 3.2:
- Six new locales: Danish, Estonian, Hebrew, Latvian, Lithuanian and Portuguese (Portugal) - for a total of 22 supported locales.
- New Geocoder component - a ready to use component for searching for locations and/or features. Supports both layers and tables. New related classes: GeocoderEvent, GeocoderLocatorOptions, GeocoderMapService, GeocoderSearchResult and GeocoderSkin. See the Geocoder sample.
- New Directions (routing) component - a ready to use component for creating driving directions in your application. You can either type in an address or a feature (see Geocoder above) or click on the map to add new stops. Adding a destination by clickingon the map will automatically reverse geocode to get a nice address label. New related classes: DirectionsEvent, DirectionsGeocoderOptions, DirectionsRouteOptions, DirectionsSkin, DirectionsStop and DirectionsStopSkin. See the Directions sample.
- New CallResponder class that helps manage results for asynchronous calls.
- New property AddressToLocationsParameters.sourceCountry to use with the World Geocoding Service on geocode.arcgis.com.
- New property LOD.levelValue to help create correct tile URLs.
- New property RouteParameters.directionsOutputType to specify content and verbosity of the returned directions.
- New properties on GeoRSSLayer to set different symbols based on geometry type: pointSymbol, polylineSymbol and polygonSymbol.
- New property showInLegend on Layer and LayerLegendInfo classes.
- New property showInLegendHiddenLayers on ArcGISDynamicMapServiceLayer and ArcGISTiledMapServiceLayer to specify which sublayers should not be shown in the legend.
- Automatic attribution (copyrights) that change based on current extent, added for World Imagery, World Street and Ocean basemap.
- WebMapUtil updated to support showLegend, web tiled layers (included WMTS layers converted to web tiled layers), GeoRSS layers and getting the Bing key from the portal organization if the bingMapsKey is not set.
- Samples available from GitHub: fork it or just download the zip.
- Samples for new components: Geocoder sample and Directions sample.
- OAuth sample showing how to sign in to the ArcGIS Platform.
- Detailed list of changes to samples since last version: https://github.com/Esri/arcgis-samples-flex/issues?labels=verified&milestone=1&state=closed
Changes to be aware of when migrating from 3.1 to 3.2
- If you are already using CallResponder, you might have to update your code.
- NIM088718 - Player can crash when a popup is highlighting a line and the user zooms in on the line. [See forum post and forum post]
- NIM089615 - The Flex Viewer Edit widget does not recognize numbers with more than two decimal places, regardless of the level of precision set on the field
- NIM089064 - Editor widget does not display attribute window properly after editing overlapping features
- NIM087717 - AIR application with ArcGISLocalTiledLayer does not show TPKs at larger scales(such as 1:2500 or 1:1000).
- NIM087691 - If wrapAround180 = true and the projection doesn't support wrapAround180, RTE are thrown because the wrapAround isn't set back to false.
ArcGIS API 3.1 for Flex
The following functionality, enhancements, changes, and bug fixes are new at version 3.1:
- New AttributeTable component - an interactive editable data table for feature layers and tables. Aside from providing a tabular display of the layer's data, graphics can be selected, deselected, and zoomed to by interacting with the AttributeTable. If the layer is editable, the feature attributes will be editable and it will support domains and subtypes as defined by the Feature Service. New related classes: AttributeTableColumn, AttributeTableEvent and AttributeTableSkin. See the AttributeTable sample.
- Better support for related records using the new RelationshipInspector component. New related classes: RelationshipInspectorAttributeInspectorSkin, RelationshipInspectorEvent and RelationshipInspectorSkin. See the Relationship Inspector sample.
- MobileArcGISLocalTiled: Support for Esri tile package (.tpk) in mobile applications - ArcGISLocalTiledLayer class.
- Automatic attribution (copyrights) at bottom right of map. Can be turned off with Map.attributionVisible. Three new related classes Attribution, AttributionSkin and IAttributionSupport.
- Support for rotating maps. New properties: Map.mapRotation, Map.middleButtonRotationEnabled, Map.multiTouchRotationEnabled and Layer.rotatedMapExtent. [NIM051617]. See the Map rotation sample.
- InfoWindow (pop-up windows) changes:
- InfoWindow auto-anchoring includes right, left, bottom, and top.
- InfoWindow now defaults to a RIGHT anchor.
- InfoWindow is draggable. This allows you to drag the InfoWindow to see what's under it, and also dock it to a different side of the feature.
- New layer types:
- WMTSLayer supports proxyURL properly.
- ArcGISTiledMapServiceLayer url property now defaults to http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer.
- Map enhancements
- New Map.zoomTo() method easily zoom to a feature.
- New center property to easily center map. Use this with the level property to start the map at a specific center and level.
- The default cyan highlight color for the graphic of the current popup window can be changed using the new Map.infoWindowRendererHighlightColor style on the Map component. Set to NaN to not highlight the selected feature. [NIM073051]
- Support for CSV by reference layers found in web maps.
- Ability to retrieve distinct values from a layer using the Query.returnDistinctValues property. Requires, at a minimum, ArcGIS 10.1 sp1, and a service that has been published with support for advanced queries.
- Symbol changes:
- Support for wraparound for custom symbols. Developers can use Symbol.getWrapAroundGeometries() in the draw function of their custom symbol to retrieve the geometry on multiple worlds, and then proceed as before. [NIM064744]
- Improved performance for most symbols.
- New MapMouseEvent.originalTarget property makes it easier to find out the orginal target (e.g. which layer) was clicked. [forum post]
- Additional styles for the ContentNavigator: headerPaddingBottom, headerPaddingLeft, headerPaddingRight and headerPaddingTop.
- New DrawEvent drawUpdate event on the DrawTool that is fired while drawing, and when the geometry of the feature is updated. This is useful if you want to display dynamic measurements while a feature is being drawn.
- FeatureLayer changes:
- FeatureLayer: Clear the existing selection when added to a Map if the Map's spatial reference is different than the spatial reference of the layer.
- FeatureLayer: Set the selectionColor to NaN to turn off the highlight ("selectionColor").
- New FeatureLayer.selectionSymbol property to use a symbol instead of, or in addition to, the default behavior of highlighting the selected features with a glow using selectionColor. [NIM073051]
- New FeatureLayer queryLimitExceeded event that is dispatched when the feature layer query hit the maxRecordCount limitation. Requires ArcGIS 10.1 or later.
- All samples have been updated with more comments and description.
- Samples have been updated to use the locator service: http://geocode.arcgis.com/ArcGIS/rest/services/World/GeocodeServer.
- Mobile samples have been updated to work better on different type of devices.
- New samples
- Add new workflows to an application with a tabular view of your data - The new AttributeTable component can provide new ways to allow your users to interact with data to view and edit information.
- Display pop-ups interactively - This sample shows one approach to provide programmatic access to display information in pop-up windows or by clicking on the map.
- Weighted Heatmaps - Configure heat maps using functions to to control density radius of the heatmap and index colors from the heatmap gradient used with its color palette.
- View features with related records - Use the new RelationshipInspector component to display/inspect features that have related records.
- Editing features with related records - Use the new RelationshipInspector component to make edits to features with related records.
- Create custom symbols supporting multiple worlds - This sample shows the steps necessary to create custom symbols which support map.wrapAround180="true" or duplicate displaying the geometry and symbol in multiple worlds.
- Use tabular information in CSV files as map layers - Use the new CSVLayer class to create map layers from comma separated values files.
- Add content to your map using standard web mapping tiled layers - Use the new WebTiledLayer class to add services from standard web mapping tiled layer sources from the web.
- Create a map by joining attributes in a table to features in a layer - Join a dynamic table's attributes to a layer's feature and attributes in a map service to create a thematic map using the dynamic tables information.
- Query a layer by joining attributes in a table to features in a layer - Perform a query on a map service joining information server-side from a states layer to a business table with ancestry information from a dynamic workspace.
- Explore ways to set the area of interest for your map - Use this sample to learn the ways you can use geographic (lat/lon) or web mercator map extents or a map location to set the area of interest for application.
- Query for statistics (advanced) sample - Querying for statistics now supports a geometry filter [requires ArcGIS 10.1 sp1 or higher].
- Enable map rotation in your web and mobile application - The Map class now supports rotation, and includes sample components (web and mobile) to provide an interactive user experience.
- Display features from a dynamic layer using FeatureLayer - Demonstrates how to view features client-side from a server-side dynamic layer using the FeatureLayer's source property.
- Explore the ability to generate labels interactively - Use this sample to learn how to create labels for features on the server-side using the new dynamic labeling features in ArcGIS 10.1 or higher.
Changes to be aware of when migrating from 3.0 to 3.1
- The default AttributeInspector.singleToMultilineThreshold property has increased from 40 to 50 to better align with the default length (50) for strings fields created in ArcMap.
- Mobile: the default panEasingFactor has changed for mobile applications to give a better "feel" when panning or "throwing" the map.
- There is a known-limit when working with pop-up windows in mobile applications created with version 3.1. If doing so, please note that you will need to either:
- add both mx.swc and sparkskins.swc to your project, or
- update the PopUpRendererSkin class and remove references to the RelationshipInspector component.
- The ArcGISTiledMapServiceLayer.url defaults to http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer
- Property changes:
- The copyright property has moved to Layer, instead of being on some of the *Layer(s) which now inherits it from Layer.copyright instead. This affects ArcGISDynamicMapServiceLayer.copyright, ArcGISImageServiceLayer.copyright, ArcGISTiledMapServiceLayer.copyright and WMTSLayer.copyright.
- The ownershipBasedAccessControlForFeatures property on FeatureLayerDetails is now inherited from LayerDetails.ownershipBasedAccessControlForFeatures.
- The ownershipBasedAccessControlForFeatures property on FeatureTableDetails is now inherited from TableDetails.ownershipBasedAccessControlForFeatures.
- Identify operation on pre-10.1 servers was sometime ignoring the spatial reference.
- Swatches for non-solid lines were not honoring color, alpha and width (but the actual feature rendering was still correct).[NIM081300]
- On mobile devices InfoWindow was flickering when panning.
- The SignInWindow is more mobile and tablet friendly. [NIM085020]
ArcGIS API 3.0 (final) for Flex
The following functionality, enhancements, changes, and bug fixes are new at version 3.0 (as compared to 3.0 prerelease):
- Connect to ArcGIS Online and Portal for ArcGIS by taking advantage of the ArcGIS Portal API.
- Requires Adobe Flex 4.6 SDK or higher, which in turn requires at least Flash Player 11.1.
- Since 2.5, 63 new classes, 138 properties on existing classes, and 57 methods on existing classes have been added to support new API functionality and support for ArcGIS 10.1 functionality, ArcGIS Online, and Portal for ArcGIS.
- Using panEasingFactor in mobile samples for better panning on mobile devices.
- The webmap package has been renamed to portal and includes new class for connecting to ArcGIS Online and Portal for ArcGIS.
- The arcgisSharingURL property in WebMapUtil has been renamed to portalURL.
- The default value for Map.openHandCursorVisible has changed from true to false.
- On the GeometryServicethe input parameter for the project() method is now projectParameters instead of geometries. This also allows for specifying datum transformations [requires ArcGIS Server 10.1].
- On the Locator the input parameter for the addressToLocation() method is now addressToLocationParameters instead of address, outfields. This also adds support for batch geocoding and searching within an extent [requires ArcGIS Server 10.1].
- The layerDefinitions property on ArcGISDynamicMapServiceLayer, FindParameters and IdentifyParameters can now take LayerDefinition in addition to a string. When using MXML, only LayerDefinition is allowed. When using ActionScript, both ways are allowed.
- The default value for the UniqueValueRenderer.fieldDelimiter (formerly UniqueValueRenderer.attributeDelimiter) has changed from "" (empty string) to "," (comma) and "" is no longer a valid value.
- The TextSymbol constructor now takes an alpha value as its 4th parameter. If you were using the TextSymbol constructor with more than three parameters, you need to adjust accordingly.
- The default for the visibleLayers property on ArcGISDynamicMapServiceLayer and ArcIMSMapServiceLayer changed to null.
Numerous bug fixes were made for 3.0 final.
ArcGIS API 3.0 (prerelease) for Flex
The following functionality, enhancements, changes, and bug fixes are new at version 3.0 prerelease:
- Requires Adobe Flex 4.5 SDK or higher, which in turn requires at least Flash Player 10.2.
- Support for new ArcGIS for Server 10.1 capabilities
- Change renderers or layer order in map services (dynamic layers).
- Add layers on the fly in map services (dynamic workspaces).
- Generate data classifications on the server for layers in map services.
- Use enhanced query options to order results and generate statistics.
- Rollback a group of edits if one of them fails.
- Editor tracking in feature services.
- Use the new PrintTask to generate printable output on the server.
- z/m value support in map and feature services.
- Geodatabase versions.
- Cancel geoprocessing jobs.
- An IdentityManager that automatically prompts the end user for logging in to secure ArcGIS Server.
- The pop-up window displays with multiple features (using the ContentNavigator class).
- When drawing freehand lines or polygons, the point interval (and thus the number of vertices) can be adjusted.
- KML layer supports refresh and httpquery.
- Better locale support for VETiledLayer (Bing Maps).
- The toJSON() and fromJSON() methods work with objects, not strings.
- The Domain class is now an interface and has been renamed to IDomain.
- The JSON class has been renamed JSONUtil, which is the same naming convention as for all the other classes in the utils package, and it also prevents collision with the JSON class added in Adobe Flash Player 11.
- The Renderer class implements the new IRenderer interface.
- The id property in LayerInfo has been renamed to layerId.
- The attribute, attribute2, attribute3, and attributeDelimiter properties that were deprecated at 2.5 have been removed at 3.0. Use field, field2, field3, and fieldDelimiter instead.
- The default value for the UniqueValueRenderer.fieldDelimiter (formerly UniqueValueRenderer.attributeDelimiter) have changed from "" to ",".
- The attribute property on the ClassBreaksRenderer class has been renamed to field.
- The defaultVisibleLayers() method has been removed. Setting the visibleLayers property on ArcGISDynamicMapServiceLayer and ArcIMSMapServiceLayer to null will achieve the same result.
- Removed the following deprecated properties: ArcGISTiledMapServiceLayer.visibleLayers, VEAddress.postalTown, VEGeocodeResult.calculationMethod, and VEGeocodeResult.matchCodes.
- Removed the following deprecated methods: FeatureSet.convertToJSON(), FeatureSet.convertFromJSON(), and NavigationToolzoomToFullExtent().
- Removed the following deprecated event: AttachmentInspector result event.
- Removed the unit property from the Map and Layer classes. This is now automatically inferred from the spatial reference.
- The default value for the visibleLayers property on ArcGISDynamicMapServiceLayer and ArcIMSMapServiceLayer have changed to null. Previously they defaulted to the visible layers as defined by the default visibility in LayerInfo.
- The ClassBreaksRenderer has a new property, isMaxInclusive, that defaults to true to align with ArcGIS for Server, which is always inclusive. Previously, the behavior was to not be inclusive.