What's new in version 2.2 (update 2.2.1)
New Features
- Improved performance of geometric operations using AGSGeometryEngine. On an average, most operations are 2 to 3 times faster.
- Added support for WMS layers
- Added support for accessing & searching content, users, and groups of a Portal for ArcGIS (either an on-premise private instance or Esri's ArcGIS.com). Refer to the documentation for more information.
- Faster rendering of point, polyline, and polygon graphics. For instance, rendering 10,000 picture marker symbols is almost 5 times faster.
- Better support for modifying geometries which wrap-around the dateline using the Sketch layer.
- Added the ability to force all web requests made by the API to use POST instead of GET.
//Force POST [AGSRequest setForcePostForAllRequests: YES];
- Better handling of "No Data" tiles for cached map services and tile packages. Tiles from the closest scale level are re-sampled to "fill-in" missing areas instead of displaying the generic "No Data" tile.
- Added support for inspecting the contents of a web map, such as basemap layers, operational layers, predefined queries, feature collections, and so on.
- Added support for Military Grid Reference System (MGRS) coordinates. For more information, refer to the API reference documentation of pointFromMGRS: and mgrsFromPoint:numDigits:rounding:addSpaces: methods on AGSGeometryEngine
Migrating existing applications from v2.1
Migrating existing applications and projects to use the new API is relatively easy and straight-forward. Where possible, the new API is backwards-compatible and maintains the existing behavior. Note that iOS 3.x is no longer supported by the API from this release. You need to be running a minimum of iOS 4 on your device(s) and building your applications with iOS SDK 4 or higher.
XCode Project Changes
Starting from v2.2, the API is available as framework (ArcGIS.framework) and not a static library (libArcGIS.a). This makes it easier to configure new projects for development with the API. However, this also means that you need to make the following changes to any existing projects :
1. Remove the ArcGIS Library
Select the libArcGIS.a library in the Project Navigator pane, right-click on it to bring up the context menu, and select the Delete option.
2. Remove the Library Search Paths entry
Under the Build Settings tab, type "Library Search Paths" in the Search bar to quickly find the Library Search Paths setting. Double-click on its value and delete the following entry :
${HOME}/Library/SDKs/ArcGIS/iOS.sdk/usr/local/lib
3. Remove the User Header Search Paths entry
Under the Build Settings tab, type "User Header Search Paths" in the Search bar to quickly find the User Header Search Paths setting. Double-click on its value and delete the following entry:
${HOME}/Library/SDKs/ArcGIS/iOS.sdk/usr/local/include/**
4. Remove & re-add reference to the resource bundle
This step updates your project to use the new bundle inside the ArcGIS framework.
Select the ArcGIS.bundle in the Project Navigator pane, right-click on it to bring up the context menu, and select the Delete option.
Then go to the File menu, select the Add Files to <project> item, browse to the location ${HOME}/Library/SDKs/ArcGIS/ArcGIS.framework/Versions/Current/Resources, select the ArcGIS.bundle file, and click Add.
5. Add build flags
This step instructs XCode to load the ArcGIS framework.
Under the Build Settings tab, type "Other Linker Flags" in the Search bar to quickly find the Other Linker Flags setting. Double click on its value, and use the plus button to add the following entries : -framework and ArcGIS . The original entries -all_load and -ObjC are still required. Click Done when you are finished.
6. Add the Frameworks Search Paths entry
This step allows XCode to find ArcGIS framework on your disk.
Under the Build Settings tab, type "Frameworks Search Paths" in the Search bar to quickly find the Frameworks Search Paths setting. Double click in the empty space under the target column, and use the plus button to add the following entry:
${HOME}/Library/SDKs/ArcGIS/**
7. Modify Import statements
The following import statement :
import "ArcGIS.h"
import <ArcGIS/ArcGIS.h>
API Syntax Changes
- The signature of the method openIntoMapView:withAlternateBaseMap: on class AGSWebMap has been changed. The type for withAlternateBaseMap: parameter has been changed from AGSWebMap to AGSWebMapBaseMap.
Updates to v2.2
2.2.1
This update contains a minor fix to the SDK installer. The v2.2 installer was unnecessarily laying down files related to ArcGIS Project Templates for XCode. As many of you might recall, these templates were deprecated and removed back at v2.1.
In majority of the cases, the laying down of these template files did not cause any harm. However, in exceptional cases, users were not able to install the v2.2 SDK due to permission issues related to where the files were being written. Even worse, the templates were being recognized by XCode giving users the false impression that ArcGIS project templates were still available and supported in v2.2. To clarify, these templates are legacy, left over from the pre-v2.1 days.
The 2.2.1 installer has been fixed to not lay down the templates. There is no change to the API or the functionality.
If you already installed v2.2, simply uninstalling it will not remove the templates. You can manually remove the templates by deleting the ArcGIS folder under ${HOME}/Library/Developer/XCode/Templates