The following are new features in the ArcGIS JavaScript API version 1.3:
Support for Dojo 1.2.3
When you reference the ArcGIS JavaScript API in your code, you also get a
reference to version 1.2.3 of the Dojo Toolkit. This version of Dojo contains a
patch that will not be released until Dojo 1.3. If you use an externally
hosted Dojo 1.2.3 such as the one on the AOL Content Delivery Network, you
will continue to see the following issues:
-
NIM035978: Graphic markers change position when panning the map in IE7
-
NIM039419: After adding a marker element to an ArcGIS Server JavaScript API
map, the marker symbol moves when panning in Internet Explorer 6 and 7.
-
NIM039287: onMouseMove event not firing for "older" graphics in IE when
PictureMarkerSymbol is used for rendering.
Layer extensibility
You can write custom tiled and dynamic layers that can be added to
your map. To get started, see Creating
custom layer types.
Error handling
Every layer and task now has an onError event, which returns more detail about
the error in a callback function.
-
*Task.command(..., callback?, errback?), *Task.onError. These return a
JavaScript Error object and are called whenever an error occurs either by the
REST service or when processing the results from the server. To catch any
exceptions in processing request params, wrap the Task.operation call within a try {
... } catch (err) { ... } block.
-
The errback/onError functions receive an 'Error' object
-
Layer.onError(error): The Layer's onError event is fired either when the layer
cannot be initialized or when the layer is unable to retrieve a tile/map image. For graphics layers, an error is returned any time the graphics layer is unable to draw a graphic.
- In case of server side errors, 'code' (Number) and 'details' (String[]) properties are mixed into the Error object.
Enhanced map layer management
You can now add layers at specific indices in a map and also remove layers from
a map.
-
Map.addLayer(layer, index?): A layer can be added at a
specific index in the map. If no index is specified or the index specified is
greater the current number of layers, the layer is automatically appended to the
list of layers in the map and the index is normalized.
-
Map.removeLayer(layer) removes the argument layer from the map if it is part of
the map. This fires the Map.onLayerRemove(layer) event.
-
Map.removeAllLayers() removes all layers from top to bottom. The
Map.onLayerRemove event fires as each layer is removed, and the
Map.onLayersRemoved event fires after all layers are removed
-
The Map's extent and spatial reference do not change even after all its layers have
been removed. When the next layer is added, the layer is displayed at the same
extent and spatial reference.
Other Map enhancements:
-
Map.setExtent(extent, fit?): The second
optional parameter "fit" (Boolean) forces the map to fit the specified extent.
-
Map.position (esri.geometry.Point): This point geometry in screen coordinates
represents the top left corner of the map container. This coordinate also acts
as the origin for all screen coordinates returned by the Map and Map.graphics
events.
- The info window style matches the style of the theme applied: tundra, soria & nihilo.
I/O enhancements
Other enhancements
-
In addition to GeometryService.project and simplify, the Graphics returned by
labelPoints event or callback return the attributes for each of the label points.
These attributes correspond to the Graphics passed to these functions.
-
A FeatureSet constructor has been added for using JSON.
-
esri.graphicsExtent(graphics): Returns the extent of all
the graphics in the argument array, such as Map.graphics.graphic,
FeatureSet.features, etc. If the width and height of the resulting extent are
0, null is returned.
Deprecations/Documentation fixes
-
esriConfig is now deprecated. Use esri.config.
-
Geoprocessor.checkJobStatus replaces Geoprocessor.checkJob in object model.
Bug fixes
The following are the identification numbers and summaries for bug fixes and
enhancements in version 1.3 of the ArcGIS JavaScript API. Some of these
summaries repeat information in the previous sections.
-
NIM036432: [JSAPI] Need to support functionality to add custom resources to JS
API
-
NIM035978: Graphic markers change position when panning the map in IE7
-
NIM037245: Calling map.resize() after map has been panned causes the drawing
toolbar to draw graphics incorrectly. Graphics are offset based on the distance
and direction of the pan
-
NIM039269: Need a way to trap errors from JS API that occur during the
execution of a geoprocessing task in synchronous mode
-
NIM039287: onMouseMove event not firing for "older" graphics in IE when
PictureMarkerSymbol is used for rendering
-
NIM039419: After adding a marker element to an ArcGIS Server JavaScript API
map, the marker symbol moves when panning in Internet Explorer 6 and 7
- NIM040669: When identifying a multipart point layer in Internet Explorer 7, the graphic selection is displaced visually after zoom operation.
-
NIM040840: Rubberband zoom graphic displays improperly in Internet Explorer 6
or Internet Explorer 7 after calling map.Resize
-
NIM041273: In JavaScript API v1.2, the graphics layer does not work properly in
Internet Explorer 6 and 7
-
NIM041482: Map applications keep downloading a non-existant picture/file when
some action, e.g., toggling map layers, is done on the map (using IE)