The ArcGIS Maps SDK for JavaScript is Esri's premier web mapping SDK and the successor to version 3.x of ArcGIS API for JavaScript that was retired in 2024. Since version 4.x of the JavaScript Maps SDK has fundamental differences in architecture and coding patterns, migrating a solution from version 3.x often requires an application re-write. This topic aims to assist developers who are transitioning their 3.x-based solutions to the JavaScript Maps SDK.
There are many resources available to help migrate from 3.x to 4.x, including:
arcgis-map
(2D) and arcgis-scene
(3D) components.The functionality matrix provides a comparison of 3.x and 4.x to help you find the equivalent functionality in 4.x. The tables below are organized by module, with the 3.x module name in the first column and the 4.x equivalent in the second column. The third column provides additional notes and information about the differences between the two versions. The tables are not exhaustive, but they cover the most commonly used modules and functionality.
esri 3.x module name 4.x Note basemaps Map.basemap Color Color config config See table for details. Credential Credential Moved toesri/identity
folder. domUtils Not planned graphic Graphic Note the uppercase G
. See table for details. graphicsUtils Not planned To easily zoom to geometries or features, use arcgis-map
goTo()
(2D) or arcgis-scene
goTo()
(3D). IdentityManager IdentityManager Moved to esri/identity
folder. ImageSpatialReference SpatialReference.ImageCoordinateSystem InfoTemplate PopupTemplate InfoWindowBase Not planned kernel kernel lang lang Moved to esri/core
. See table for details. map Map Note the uppercase M
. See table for details. OperationBase Not planned request request See table for details. ServerInfo ServerInfo Moved to esri/identity
folder. SnappingManager Use SnappingOptions Snapping was added in version 4.18 for 3D (4.19 for 2D). support/expressionUtils Not planned Implemented internally. Not needed by app developers. SpatialReference SpatialReference Moved to esri/geometry
folder. TimeExtent TimeExtent UndoManager Not planned units Use string values specific to each class. See Circle.radiusUnit for example. urlUtils urlUtils Moved to esri/core
folder. esri/config esri/graphic 3.x capability or member name 4.x Note Create graphic object Graphic Module has been renamed from graphic
to Graphic
- note the uppercase G
. Set geometry
, symbol
, attributes
See properties Set infoTemplate
popupTemplate Toggle visibility visible Get popup title and content getEffectivePopupTemplate Access internal DOM nodes and GFX shapes Not planned Data attributes, attr()
Not planned draw()
Not planned esri/lang 3.x function name 4.x Note substitute()
intl.substitute() Other functions Not planned esri/map 3.x capability or member name 4.x Note Create map object arcgis-map
component (2D) or arcgis-scene
component (3D) Set basemap arcgis-map
basemap (2D) or arcgis-scene
basemap (3D) Add, remove layers add, addMany, remove, removeMany, removeAll Manage layers layers, allLayers Reorder layers reorder Access a layer by its id findLayerById Layer events layers is a Collection. Use Collection's change event. Load event arcgis-map
viewOnReady()
(2D) or arcgis-scene
viewOnReady()
(3D) Get spatialReference arcgis-map
spatialReference
(2D) or arcgis-scene
spatialReference
(3D) Get extent, scale, zoom level extent
, center
, scale
, viewpoint
and zoom
on arcgis-map
(2D) and arcgis-scene
(3D). Navigate to a location or extent arcgis-map
goTo()
(2D), arcgis-scene
goTo()
(3D) Set constraints: min/max zoom, min/max scale arcgis-map
constraints (2D), arcgis-scene
constraints (3D) Define LODs arcgis-map
constraints (2D), arcgis-scene
constraints (3D) getLayersVisibleAtScale()
Not planned Time awareness arcgis-map
timeExtent
(2D), arcgis-scene
timeExtent
(3D) Add graphics arcgis-map
graphics
(2D), arcgis-scene
graphics
(3D) InfoWindow arcgis-map
popup
(2D), arcgis-scene
popup
(3D) Convert between map point and screen point arcgis-map
toMap()
(2D), toScreen()
(2D), arcgis-scene
toMap()
(3D), arcgis-scene
toScreen()
(3D) Navigation events arcgis-map
interacting
(2D), arcgis-map
stationary
(2D); arcgis-scene
interacting
(3D), arcgis-scene
stationary
(3D) See this guide topic on watching for property changes Mouse and keyboard events arcgis-map
events (2D), arcgis-scene
events (3D) Enable/disable navigation arcgis-map
events (2D), arcgis-scene
events (3D) wrapAround180
(wrap features around the Dateline) SpatialReference.isWrappable smartNavigation
(Mac OS X only) Not planned Update events arcgis-map
updating
(2D), arcgis-scene
updating
(3D) See this guide topic on watching for property changes Display attribution Attribution is built into the arcgis-map
(2D) and arcgis-scene
(3D) components. Zoom buttons Zoom Set map cursor Not planned Display pan arrows Directional Pad Zoom slider Not planned autoResize
, resize()
, reposition()
Automatically managed by arcgis-map
(2D) and arcgis-scene
(3D). position
Not planned fadeOnZoom
, force3DTransforms
, navigationMode
Not planned Data attributes, attr()
Not planned esri/request esri/layers esri/layers/Layer (all layers) esri/layers/ArcGISDynamicMapServiceLayer 3.x capability or member name 4.x Notes ArcGISDynamicMapServiceLayer MapImageLayer popups (via infoTemplates) Sublayer.popupTemplate visibleLayers
/setVisibleLayers
Sublayer.visible layerDefinitions Sublayer.definitionExpression For example layer.findSublayerById(0).definitionExpression = null;
Dynamically add or remove layers, change order Since MapImageLayer.sublayers is a Collection, use the Collection methods for adding, removing, and reordering sublayers. Dynamically change sublayer rendering Sublayer.renderer For example layer.findSublayerById(0).renderer = new ClassBreaksRenderer();
Dynamically change sublayer labelingInfo Sublayer.labelingInfo For example layer.findSublayerById(0).labelingInfo = [ new LabelClass() ]
Create dynamic sublayers from registered workspaces Sublayer.source timeInfo, layerTimeOptions timeInfo useMapImage Not planned Deprecated in version 2.0. esri/layers/GraphicsLayer 3.x capability or member name 4.x Note Add, remove graphics add, addMany, remove, removeMany, removeAll Modify graphics Graphic objects can be modified in-place and will automatically trigger a display refresh when one of the following properties is reassigned: attributes, geometry, symbol, visible. Set infoTemplate
Graphic.popupTemplate Set renderer Graphic.symbol You can create a symbol and use it for all graphics if they all need to look alike. redraw()
GraphicsLayer will automatically redraw when graphics are changed, added, or removed from the layer. Toggle/monitor layer visibility visible Change layer opacity opacity Set custom scale range minScale, maxScale Scale-visibility change event Not planned Watch the minScale and maxScale properties of the layer. visibleAtMapScale
Not planned Watch the arcgis-map
scale (2D) arcgis-scene
scale (3D) and check the minScale
and maxScale
of the layer. isVisibleAtScale()
Not planned Mouse events arcgis-map
events (2D), arcgis-scene
events] (3D) Graphic events change graphics is a Collection. Use Collection's change event. Update events GraphicsLayerView.updating See this guide topic on watching for property changes Suspend, Resume events GraphicsLayerView.suspended See this guide topic on watching for property changes styling
, dataAttributes
, attr()
Not planned esri/layers/FeatureLayer 3.x capability or module name 4.x Note Snapshot, on-demand, selection and auto drawing modes Not planned When features are loaded and how many of them are loaded will be managed automatically and hence not a user option. See FeatureLayer doc for details. Use feature collection as source source See FeatureLayer doc for details. Selection symbol highlightOptions Use dynamic layer as source dynamicDataSource Point clustering FeatureReductionCluster Set GDB version gdbVersion Time awareness timeInfo, timeExtent, timeOffset, useViewTime Filter by attributes definitionExpression Filter by time extent Client-side filtering, FeatureLayer.timeExtent FeatureLayer.timeExtent added at 4.14 Set infoTemplate
popupTemplate htmlPopupType
Not planned Set renderer renderer Supports Simple, Unique Value and Class Breaks renderers and visual variables. See Renderers table. Modify renderer Installed To modify a layer's renderer you need to clone it, make the desired modifications and assign it to the layer. In-place modification of renderer properties will not trigger display refresh. redraw()
Installed A FeatureLayer will automatically redraw when its renderer or features change. Labeling labelingInfo Toggle/monitor layer visibility visible Change layer opacity opacity Access features FeatureLayerView.queryFeatures Query features queryFeatures Also see: queryObjectIds, queryFeatureCount, queryExtent Select features FeatureLayerView.highlight() Implemented on LayerViews with configurable options on arcgis-map
(2D) and arcgis-scene
(3D). Edit features: add, update, delete applyEdits Query attachments FeatureLayer.queryAttachments Edit attachments: add, delete FeatureLayer.addAttachment, FeatureLayer.deleteAttachments, FeatureLayer.updateAttachment Set refresh interval refreshInterval Set custom scale range minScale, maxScale Scale-visibility change event Not planned Watch the minScale and maxScale properties of the layer. visibleAtMapScale
Not planned Watch the arcgis-map
(2D) scale (2D) or arcgis-scene
scale (3D) and check the minScale
and maxScale
of the layer. isVisibleAtScale()
Not planned Set maxAllowableOffset Managed automatically - see note above on drawing modes. Toggle auto generalization, quantization Not planned Set orderByFields Not planned Mouse events arcgis-map
events (2D), arcgis-scene
events (3D) Graphic events Not planned Update events FeatureLayerView.updating See this guide topic on watching for property changes Suspend, Resume events FeatureLayerView.suspended See this guide topic on watching for property changes styling
, dataAttributes
, attr()
Not planned esri/geometry esri/symbols esri/renderers esri/tasks
Note 1: Methods return Promises instead of Deferreds and no longer emit events, nor take a callback/errback/progback parameter.
Note 2: Constants replaced by string values.
esri/tasks/datareviewer 3.x capability or module name 4.x Note Support for DataReviewer Not planned esri/tasks/geoenrichment 3.x capability or module name 4.x Note Support for geoenrichment Not planned as part of JSAPI See Get demographic data tutorial for an example of the ArcGIS REST JS GeoEnrichment Service used with the ArcGIS Maps SDK for JavaScript. esri/tasks/locationproviders 3.x capability or module name 4.x Note Using LocationProviders Not planned as part of JSAPI esri/dijit NoteUI elements in 4.x are implemented as web components in the map components package.
3.x capability or module name 4.x Note AttributeInspector FeatureForm widget Equivalent component planned for a later release. Attribution Attribution is built into thearcgis-map
(2D) and arcgis-scene
(3D) components. Basemap Basemap Moved from "esri/dijit/Basemap" to "esri/Basemap". BasemapGallery BasemapGallery BasemapLayer Basemap BasemapToggle BasemapToggle BookmarkItem Bookmark Bookmarks Bookmarks ClassedColorSlider ClassedColorSlider widget Equivalent component planned for a later release. ClassedSizeSlider ClassedSizeSlider widget Equivalent component planned for a later release. ColorInfoSlider ColorSlider widget Equivalent component planned for a later release. ColorPicker Not planned Directions Directions ElevationProfile ElevationProfile FeatureTable FeatureTable Gallery Not planned Gauge Not planned Geocoder Not planned Deprecated, use Search instead. HeatmapSlider HeatmapSlider widget Equivalent component planned for a later release. HistogramTimeSlider Not planned HomeButton Home HorizontalSlider Slider widget Equivalent component planned for a later release. ImageServiceMeasure Not planned InfoWindow Popup widget Equivalent component planned for a later release. InfoWindowLite Popup widget Equivalent component planned for a later release. LayerList LayerList LayerSwipe Swipe Legend Legend LocateButton Locate Locate behavior is in Locate component. Tracking behavior extracted to Track component. Measurement AreaMeasurement2D and DistanceMeasurement2D ObliqueViewer Not planned OpacitySlider OpacitySlider widget Equivalent component planned for a later release. OverviewMap Not planned Popup Popup widget Equivalent component planned for a later release. PopupMobile Popup widget Equivalent component planned for a later release. PopupTemplate PopupTemplate Print Print RendererSlider Not Planned Scalebar ScaleBar Note the corrected casing from "Scalebar" to "ScaleBar". Search Search SizeInfoSlider SizeSlider widget Equivalent component planned for a later release. SymbolStyler Not planned TimeSlider TimeSlider VisibleScaleRangeSlider ScaleRangeSlider esri/dijit/analysis/* Not planned as part of JSAPI esri/dijit/editing/* Editor See also: FeatureForm widget, FeatureTemplates widget, and Sketch esri/dijit/geoenrichment/* Not planned as part of JSAPI esri/dijit/util/busyIndicator Not planned esri/toolbars 3.x capability or module name 4.x Note Draw SketchViewModel Sketch and Draw are alternative solutions. Edit Editor ImageServiceMeasureTool Not planned Navigation Not planned esri/arcgis 3.x capability or module name 4.x Note OAuthInfo OAuthInfo Moved to esri/identity
folder Portal classes Portal Moved to esri/portal
folder utils Replaced by WebMap and PortalItem esri/opsdashboard 3.x capability or module name 4.x Note Support for Operations Dashboard Not planned esri/plugins 3.x capability or module name 4.x Note FeatureLayerStatistics summaryStatistics See all modules in the esri/smartMapping/statistics
folder. spatialIndex Not planned esri/process 3.x capability or module name 4.x Note Processor Not planned SpatialIndex Not planned esri/virtualearth 3.x capability or module name 4.x Note Support for Bing mapping (formerly known as Virtual Earth) BingMapsLayer BingMapsLayer is deprecated at version 4.33. Consider using basemaps instead. Support for Bing geocoding (formerly known as Virtual Earth) Not planned esri/workers
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4