What's new in 10.1.1
This topic provides an introduction to the updates and enhancements in version 10.1.1 (including breaking changes), the complete list of changes between 10.1.1 and the previously released ArcGIS Runtime SDK for Windows Phone version 3.0, and issues resolved between the 3.0 release and the 10.1.1 release.
This is the final release of the ArcGIS Runtime SDK for Windows Phone to support the Windows Phone 7.1 platform. Windows Phone applications that target the 7.1 platform will run on Windows Phone 7.5 and later devices (including Windows Phone 8.0 devices). If you are building an application targeting Windows Phone 8.0, you can include the ArcGIS Runtime SDK for Windows Phone assemblies that target Windows Phone 7.1.
For changes in the previous version, 3.0, see What's new in 3.0.
Updates and enhancements
The following updates and enhancements are included in 10.1.1:
- Support for Visual Studio 2012 and Blend for Visual Studio 2012 on Windows 8
- Support for the ArcGIS Online World Geocoding Service
- More comprehensive support for the ArcGIS Portal API
- New ArcGISWebClient class to handle web requests to ArcGIS systems
- New CsvLayer data source
- OpenStreetMapLayer supports custom OpenStreetMap tile servers
- Additional enhancements include new properties on FeatureLayerInfo, the ability to convert FeatureLayerInfo and Geometry to and from JSON, and support in IdentityManager for ArcGIS Server services federated with Portal for ArcGIS.
- Breaking changes include returning a feature collection in a web map as a GroupLayer and the removal of the Osmarender style from OpenStreetMapLayer.
Support for Visual Studio 2012 and Blend for Visual Studio 2012 on Windows 8
The ArcGIS Runtime SDK for Windows Phone supports building Windows Phone 7.1 and 8.0 applications on Windows 8 with any of the following Visual Studio 2012 development environments:
- Visual Studio 2012 and the Windows Phone SDK 8.0
- Blend for Visual Studio 2012 and the Windows Phone SDK 8.0
- Visual Studio Express 2012 for Windows Phone (included with the Windows Phone SDK 8.0)
Prior editions of Visual Studio 2010 with the Windows Phone SDK 7.1 and Expression Blend are still supported on Windows 7.
Support for the ArcGIS Online World Geocoding Service
ArcGIS Online provides a World Geocoding Service (http://geocode.arcgis.com) that supports single line geocoding, as well as text search for points of interest, such as businesses and landmarks, filtered by proximity to an input location, extent, or country. In the API, the Locator task has been enhanced to support the Find operation with an additional method, handlers, input, and result types. The service also supports traditional geocoding, such as address to location and location to address, and batch geocoding.
Batch geocoding requires an ArcGIS Online account.
The following code sample shows using the Locator.FindAsync method to search for businesses named "Walmart," prioritizing based on the center of the map. Results include a host of information, such as distance to the point of interest from the search location, and type of location, such as "Department Store" or "Pharmacy."
string locatorUrl = "http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer";
Locator locatorTask = new Locator(locatorUrl);
locatorTask.FindCompleted += (s, e) =>
{
LocatorFindResult locatorFindResult = e.Result;
foreach (Location location in locatorFindResult.Locations)
{
// add to graphics/table
}
};
LocatorFindParameters locatorFindParams = new LocatorFindParameters()
{
Text = "Walmart",
Location = MyMap.Extent.GetCenter(),
Distance = MyMap.Extent.Width / 2,
MaxLocations = 5,
OutSpatialReference = MyMap.SpatialReference
};
locatorFindParams.OutFields.AddRange(
new string[]{"Score", "Distance", "Type", "Rank"});
locatorTask.FindAsync(locatorFindParams);
More comprehensive support for the ArcGIS Portal API
Enhancements to support of the ArcGIS Portal API focus on group and sharing information for portal items, changing the sharing status of portal items, getting information about the use of tags by a user, and listing helper services published by a portal.
Use ArcGISPortalItem.GetGroupsAsync to get the groups that contain a portal item as a member and that the current user can access. Use ArcGISPortalItem.GetSharingInfoAsync to get details on how an item is shared. As a complement, you can use ArcGISPortalItem.ShareAsync and UnshareAsync to change how an item is shared. Use ArcGISPortalUser.GetUserTagsAsync to determine what tags are used as keywords and how many times tags are used by the current user.
New ArcGISWebClient class to handle web requests to ArcGIS systems
The ArcGISWebClient class is used to create and manage raw web requests, optimized for use with ArcGIS for Server, ArcGIS Online, and Portal for ArcGIS. The class is built to switch between GET and POST depending on the length of a request, use GZIP to streamline downloads, handle decode errors from ArcGIS Server, use IdentityManager to access secure resources, disable client caching, or set a proxy URL. This class is ideal for communicating with ArcGIS resources not explicitly available in the API, such as retrieving a list of services on an ArcGIS Server site, communicating with an SOE, or publishing data to a portal.
New CsvLayer data source
A .csv file contains text as data separated by a delimiter, often a comma. The data can include location information, such as x and y coordinate values. The CsvLayer class makes it easy to add text files that contain coordinate information as graphics layer in a map. A set of properties can be defined to represent how the data is stored, such as XFieldName, YFieldName, and ColumnDelimiter. You can optionally limit the available SourceFields, or define the spatial reference using SourceSpatialReference. In the following XAML example, the CsvLayer references a .csv file hosted by the USGS. A renderer is required to view the layer in the map. An optional MapTip is configured to display the value of the Magnitude field in the .csv file for each feature.
<esri:CsvLayer
Url="http://earthquake.usgs.gov/earthquakes/feed/csv/1.0/hour"
Renderer="{StaticResource MySimpleRenderer}">
<esri:CsvLayer.MapTip>
<TextBlock Text="{Binding [Magnitude]}" />
</esri:CsvLayer.MapTip>
</esri:CsvLayer>
OpenStreetMapLayer supports custom OpenStreetMap tile servers
OpenStreetMap provides a standard used by many data providers to host map data as cached tiles. The OpenStreetMapLayer class now accepts a list of tile servers from which to retrieve map tiles. You can include more than one tile server to spread tile requests across multiple sites. In the following example, an OpenStreetMapLayer references a set of MapQuest-OSM tile servers:
<esri:OpenStreetMapLayer>
<esri:OpenStreetMapLayer.TileServers>
<sys:String>http://otile1.mqcdn.com/tiles/1.0.0/osm</sys:String>
<sys:String>http://otile2.mqcdn.com/tiles/1.0.0/osm</sys:String>
<sys:String>http://otile3.mqcdn.com/tiles/1.0.0/osm</sys:String>
</esri:OpenStreetMapLayer.TileServers>
</esri:OpenStreetMapLayer>
Additional enhancements
The following are additional enhancements in 10.1.1:
- Return new FeatureLayerInfo properties such as DefaultVisibility, EffectiveMaxScale, EffectiveMinScale, TimeInfo, and TimeReference.
- Create FeatureLayerInfo or Geometry from JSON and convert to JSON.
- Geometry.GetResolution provides a convenient method to convert scale to resolution.
- Support for allowing others to query (view) features in a feature service with ownership based access enabled.
- IdentityManager supports federating a token secured ArcGIS for Server site with Portal for ArcGIS.
- IdentityManager supports services secured using native authentication (for example, basic).
- Support for new web map enhancements, such as minimum and maximum scale on a layer.
- Support for hyperlinks in the description field of a pop-up window for a layer in a web map.
- Support for additional languages: Danish and Portugal Portuguese.
Breaking changes
The following are breaking changes in 10.1.1:
- Web map feature collection returned as a GroupLayer—Feature collections are composed of one or more feature layers in a web map. They can be created as editable layers or generated from CSV files, GPX files, and shapefiles. When a feature collection is present in a web map, ArcGIS Runtime SDK for Windows Phone returns it as a GroupLayer to match their structure in the web map.
- Osmarender style removed from OpenStreetMapLayer—The Osmarender map style is no longer supported and has been removed from the OpenStreetMapLayer.MapStyle enumeration.
Complete list of changes
For a complete list of changes in the API between versions 3.0 and 10.1.1, see the following assembly comparisons:
- ESRI.ArcGIS.Client assembly comparison
- ESRI.ArcGIS.Client.Bing assembly (no significant changes)
- ESRI.ArcGIS.Client.Portal assembly comparison
- ESRI.ArcGIS.Client.Printing assembly (no significant changes)
- ESRI.ArcGIS.Client.Toolkit assembly (no significant changes)
- ESRI.ArcGIS.Client.Toolkit.DataSources assembly comparison
Resolved issues
The following issues are resolved with the 10.1.1 release:
- Exception is thrown when constructing a map for printing that contains a single feature layer collection containing multiple geometry types (NIM080592)
- Graphics layer disappears when zooming in (NIM079559)
- Draw, DrawMode.Arrow results in geometry that is not topologically correct (NIM076337)
- With Editor, Save and Undo does not commit edits on FeatureLayer (NIM080872)
- Identify task does not return correct results from a DEM in an ArcGIS Server 10.1 map service (NIM085410)
- PrintTask.GetServiceInfoAsync is not performed on TaskBase, concurrent operations not checked (NIM084493)
- Support wraparound and normalized geometry with Map.ZoomTo (NIM085763)
- ArgumentOutOfRangeException is thrown when graphics layer does not auto-project because of different, yet equivalent, spatial references (NIM086616)
- DrawMode.Polygon shows an unnecessary dashed outline that is visible when FillSymbol BorderThickness is < 2 (NIM074793)
- FeatureLayerInfo.TimeInfo properties (i.e., TimeExtent) are inaccessible (NIM075573)
- VisibleLayers property not respected for feature collections in web maps (NIM085933)
- GeodesicArea may be wrong when a ring is not closed or when there are multiple rings (NIM085764)
- SetSnapToEdgeEnabled method causes the application error when working with data in WGS84 (NIM085556)
- Editor.EditCompleted is not raised when Cut, Reshape, or Union command fails or does not cause an edit (NIM079471)
- ExportWebMap task fails if multiple PictureMarkerSymbols are used to render points in a graphics layer (NIM085360)
- Legend control does not support a WMS service in a group layer (NIM082929)
Deprecated items
The GraphicsLayer.ClearGraphics method is no longer browseable and will be removed. Instead call the Clear method on a graphics layer's graphics collection (GraphicsLayer.Graphics.Clear()). The Clear method offers a more reliable and consistent method for removing all graphics from a graphics collection.