There are several new features in ArcGIS 9.2 that are specific to the ArcGIS Engine Java development experience.
There are also several core changes to the ArcGIS Engine Runtime, including new extensions and new components in various packages. Java developers will also be able to take advantage of these core changes.
Improved programming model
Support for casting and instanceof—No need for Query Interface (QI) (use of proxy classes).
Example 1:
Point p = (point)feature.getShape();
Not
Point p = new Point(feature.getShape());
Example 2:
Polygon p = (Polygon)geom.getEnvelope();
p.buffer(4.0);
Not
IEnvelope e = geom.getEnvelope();
ITopologicalOperator tope = new ITopologicalOperatorProxy(e);
topo.buffer(4.0);
Refer to the Casting and runtime type checking document for more detailed instructions and a list of classes, which cannot be cast to using this technique.
IDE integration
Refer to the IDE integration documents for more information. Highlights include the following:
- Eclipse plug-ins
- Integrated samples for an out-of-the-box experience
- Templates—Basic Viewer and Console templates to quickly create applications by going through a series of wizards
- Integrated Java help system
- Code snippets
- Licensing and geoprocessing tool UIs
- JBuilder and NetBeans getting started documents
Improved SDK structure and content
- Improved Javadoc—Unnecessary constructors have been removed and content generally improved.
- Samples
- New Domains—Tracking, Network Analyst, geoprocessing, new controls/tools
- Executable JAR files—Each sample contains a bin folder with the executable JAR to easily run the application.
ArcGIS 9.2 Desktop is Engine ready
You can now run your Java Engine applications on a computer with ArcGIS 9.2 Desktop installed. Therefore, existing ArcGIS Desktop users will not require an Engine Runtime to run Java Engine applications. ArcGIS 9.2 Desktop is a superset of Engine Runtime. It lays down the files necessary for running Java applications (along with the arobjects.jar). You can use the bootstrapping mechanism explained in the Deployment guide to locate the arobjects.jar file when deploying to ArcGIS Desktop machines.
Visual components
- Sample visual components—Allow developer to view the code and modify as needed.
- Symbology dialog, attribute table, select by location, query dialog, buffer dialog and find dialog are all available.
- Eclipse Visual Palette contains these components to drag and drop when creating an Engine application.
Deployment Documentation
A step-by-step guide for deploying Java-based Engine applications is available. Refer to the Deployment guide.
New extensions
A key focus of the 9.2 release for ArcGIS Engine was the addition of some more advanced extensions. The new extensions to ArcGIS Engine Runtime—Data Interoperability, Maplex, Schematics, and Tracking— follow the existing Engine Runtime extension pricing and licensing model.
- Data Interoperability — provides real data interoperability that works with all the major formats. The extension includes direct data access, transformation, and export capabilities and enables custom ArcGIS Engine applications to dynamically fuse together various data sources. The Data Interoperability license is needed when a custom application requires the functionality exposed via the extension. This functionality is exposed to developers through the DataInterop assembly, new at 9.2.
- Maplex — enables automation of high-quality cartographic text placement and labeling. Without the Maplex extension, the baseline labeling functionality prioritizes label placement based on which layer a feature is in. This powerful and flexible extension allows features from many layers to be prioritized equally and independently. This functionality is exposed to developers through the Maplex assembly, now available in ArcGIS Engine.
- Schematics — provides the ability to manage and view network data in a wide variety of geo-schematic and schematic representations. This functionality is exposed to developers through the Schematic assembly, now available in ArcGIS Engine.
- Tracking — allows your application to explore, visualize, and analyze change relative to time and location. The extension provides tracking of temporal data from GPS and other tracking and monitoring devices in real time and includes the playback and analysis of the time series data. This functionality is exposed to developers through the Tracking assembly, now available in ArcGIS Engine.
New packages
- Animation—contains objects to work with animations in ArcMap, ArcScene, or ArcGlobe. An animation in ArcMap, ArcScene or ArcGlobe is composed of animation tracks (AGAnimationTracks) which are further composed of keyframes (AGAnimationKeyframes) of the same type. Each keyframe stores properties of the animation objects. When an animation is played, keyframes are interpolated and the interpolated properties are then applied to the animated objects to create the dynamic visual effect.
- Controls—provides access to all ArcGIS Engine Controls (LicenseControl, MapControl, PageLayoutControl, GlobeControl, SceneControl, ToolbarControl, TOCControl, SymbologyControl) and all out of the box ArcGIS Engine commands, menus, palettes and multi-items. All controls, commands and HookHelper objects have been moved from the ControlsCommands, 3DAnalyst, and GlobeCore assemblies to the new Controls library.
- DataSourcesNetCDF—provides objects to access a netCDF file as a workspace and to create a raster layer, feature layer or table view from a netCDF.
- GeodatabaseExtensions—contains objects to aid in the creation, management, and use of terrain datasets and cadastral fabrics.
At the 9.2 release, the cadastral fabrics related objects are not yet fully implemented and we recommend that developers do not utilize them until the Cadastral Analyst extension is released.
- Geoprocessing—ArcGIS Engine Runtime at 9.2 includes the geoprocessing framework. The geoprocessing tools available to custom ArcGIS Engine applications depend upon the license the application is using. ArcGIS Engine applications can run ArcView' level GP tools and edit shapefiles and personal geodatabases using an ArcGIS Engine Runtime or ArcView license. ArcGIS Engine applications can run ArcEditor level geoprocessing tools and edit enterprise geodatabases using an ArcGIS Engine Runtime with Geodatabase Update extension or ArcEditor license. In order to run an ArcInfo level tool, an ArcInfo license is required.
Enhancements to existing packages
- Carto —exposes the new cartographic representation functionality. Custom applications can view and work with cartographic representations using an ArcGIS Engine Runtime or ArcView license; however, creating or editing a cartographic representation requires an ArcGIS Engine Runtime with Geodatabase Update extension or an ArcEditor license.
Additionally, the Carto and Display libraries both include objects needed to support the new display system available in ArcGIS 9.2, Dynamic Display. Dynamic Display is a core map rendering engine based on OpenGL technology, designed to support the requirements for a very active display environment. This includes the capability to move a large number of display objects at sub-second refresh rate and the manipulation of the entire display to support smooth panning, zooming, and rotation.
The following layer factories have also been added to the Carto library:
- CadastralFabricLayerFactory
- EngineCadAnnotationLayerFactory
- EngineCadFeatureLayerFactory
- EngineCadLayerFactory
- EngineCoverageAnnotationLayerFactory
- EngineIMSLayerFactory
- EngineNetworkLayerFactory
- EngineTopologyLayerFactory
- EngineWMSMapLayerFactory
- FeatureLayerFactory
- NetCDFLayerFactory
- RasterCatalogLayerFactory
- RasterLayerFactory
- TerrainLayerFactory
- TinLayerFactory
- DataSourceRaster —includes a new set of components that perform raster transformations such as polynomial transformation, RPC transformation, Coordinate transformation, and Spline transformation. In addition, APIs to build and retrieve raster attribute tables for all raster data sources are now available and the SaveAs capability has been extended to enable saving to raster formats such as PNG, JP2, BMP, JPG, PCRaster, X11 PixelMap, and file geodatabase.
- Display —provides new components for editing feature class representations so that cartographic editing and finishing maps is a more convenient process. Representation is symbology stored in the geodatabase for each feature. Representation rules define how a set of features in a feature class will be drawn, using representation symbology rather than standard ArcGIS symbols. New symbols called Basic symbols (BasicMarkerSymbol, BasicLineSymbol, BasicFillSymbol) are provided with ArcGIS 9.2. In addition, methods are provided to convert standard ArcGIS symbols to Basic symbols. Basic symbols are then used along with GeometricEffects to define RepresentationRules. GeometricEffects are special processes that allow you to dynamically alter the geometry of features as they are drawn on your map, without affecting their underlying shape or spatial relationships. GraphicAttributes enable you to define attributes for GeometricEffects (width, dash style, simplify options, etc), MarkerPlacements (X, Y offsets), Basic symbols (patterns, strokes, etc), and feature class representation properties (visibility). Features can be displayed using the feature geometry or shape overrides from the representation or as a free representation graphic.
Additionally, the Display and Carto libraries both include objects needed to support the new display system available in ArcGIS 9.2, Dynamic Display. Dynamic Display is a core map rendering engine based on OpenGL technology, designed to support the requirements for a very active display environment. This includes the capability to move a large number of display objects at sub-second refresh rate and the manipulation of the entire display to support smooth panning, zooming, and rotation.
- GeoAnalyst —Two new interfaces have been added to the GeoAnalyst library. The new interfaces are IInterpolationOp3 and IRasterNeighborhood2.
- Geodatabase —new components have been added that create and manage feature class representations. Representation is symbology stored in the geodatabase for each feature. Creating new representations for a feature class results in the addition of two new fields (RuleID and Override) to the feature class. A new workspace extension called RepresentationWorkspaceExtension maintains information about representations present in a workspace. RepresentationClass, RepresentationClassName, RepresentationClassNames, and Representation are some of the new classes added to this library.
- GeodatabaseDistributed —now provides components for geodatabase replication and a high level object model for using this functionality with ArcGIS Server.
- Geometry —now enables the creation of high precision spatial references and supports vertical coordinate systems to vector data, including shapefiles and feature classes.
A spatial reference is composed of two parts. The first includes the horizontal and vertical coordinate systems. The second includes storage and processing parameters for a dataset. Prior to this release storage parameters for a dataset were defined by the domains or area of interest (xy, z, and m) and the precision or scale values. The maximum precision value was 2147483647 if a domain had an extent of 1. This type of spatial reference is now called low precision. A high precision spatial reference, new at 9.2, has a maximum precision value of over 9000 trillion (9E15). The spatial reference concept of precision is difficult to understand so a new concept of 'resolution' is now in use. The resolution is the inverse of the precision and directly reflects the data's accuracy. Tolerances values are also supported. They are used with all geometric and relational operators.
The spatial reference coclass now supports ISpatialReferenceResolution and ISpatialReferenceTolerance interfaces. With the ISpatialReferenceResolution.ConstructFromHorizon method, you can automatically set the xy domain to the valid area of interest for a projected or geographic coordinate system. Use ISpatialReferenceFactory.ConstructHighPrecisionSpatialReference to create a high precision version of an existing low precision spatial reference.
Vertical coordinate system metadata is now supported for vector data including shapefiles and feature classes. A vertical coordinate system includes information on the origin and linear unit of z coordinates of a dataset. The ISpatialReferenceFactory3.CreateVerticalCoordinateSystem method to instantiate a predefined vertical coordinate system. Use IVerticalCoordinateSystemEdit.Define to create a custom vertical coordinate system. Set or retrieve the vertical coordinate system on a spatial reference with ISpatialReference3.VerticalCoordinateSystem.
- SpatialAnalyst —Two new interfaces, IHydrologyOp2 and ILogicalOperatorOp2, have been added to the SpatialAnalyst library. All GPValue, GPDataType, GPValueTableType, GPDomain and few other objects have been moved from SpatialAnalystUI assembly to SpatialAnalyst assembly.
New control and other enhancements
SymbologyControl
The SymbologyControl provides members to display the contents of server style files, style files, and custom symbology. The control displays the contents on one symbology style class at any one time (for example, marker symbols or color ramps) and provides members to select, remove and preview individual symbols. Selected symbols can be used to update part of an application, such as a layer's renderer, an element's symbol, or cartographic marginalia such as scale bars and north arrows.
- ToolbarControl —now includes the following:
- Appearance properties for vertical orientation, transparency, background color, and shading
- Support for XP themes
- Hidden items menu when ToolbarControl is not large enough to display all items
- Support for multi-item objects on ToolbarMenus
- ToolbarPalette object providing a popup palette of tools
- Right to left ToolbarMenus and ToolbarPalettes
- Customizable ToolbarMenus and ToolbarPalettes
- Support for buddy swapping
- Persisting and loading ToolbarControl items
- Context sensitive help
- TOCControl (Table of Contents control)—enhanced with the following:
- Getting and setting the selected layer
- Layer drag and drop from ArcMap
- Layer re-ordering by drag and drop
- Copying layers
- MapControl —mouse wheel and keyboard display navigation has been enabled.
- PageLayoutControl —mouse wheel and keyboard display navigation has been enabled.
- LicenseControl —updated with new ArcGIS Engine Runtime extensions and licensing levels.
New Commands and Tools
- Add Data command—provides support for file data sources (coverage, VPF, CAD, Data Interoperability), personal GDB, file GDB, server data (SDE, IMS, ArcGIS, ArcWeb), raster data (known file extensions) and schematics data.
- Full Screen command—toggles between full screen and windows mode.
- Map and Globe Inquiry commands—provides find, identify, measure, hyperlink, swipe and transparency commands.
- Ink commands—provides ink markup pens, highlighters and erasers, together with a find ink command. In addition the EngineInkEnvironment object manages the ink environment used by these commands and any custom commands you create.
- ArcWeb Services commands—provides commands for signing in to and managing an ArcWeb services account, and performing ArcWeb routing and place finding.
- Editing commands—provides commands for managing an edit session (starting, stopping, saving), managing selected graphics or features (cut, delete, copy, paste, move), managing the snapping environment, editing attributes, sketching and displaying sketch properties and a context menu for managing the current sketch (direction, deflection, length, endpoint, midpoint, vertex, streaming, absolute xy, delta xy). In addition the EngineEditor object manages the editing environment used by these commands and any custom commands you create. Custom ArcGIS Engine applications can edit shapefiles and personal GDB with these commands using an engine runtime or ArcView license, or enterprise GDB data using and engine runtime with GDB update or ArcEditor license.
- Network commands—provides commands for managing network locations (creating, selecting, moving), solving networks (route, closest facility, service area, OD cost matrix) and displaying directions. In addition the EngineNetworkAnalystEnvironment object manages the network environment used by these commands and any custom commands you create. Custom ArcGIS Engine applications must have a Network extension checked out in order to use these commands.
- Schematics commands—provides commands for managing schematics diagrams (create, update, save), managing schematics elements (edit, move, select) and managing label and symbol size. Custom ArcGIS Engine applications must have a Schematic extension checked out in order to use these commands.