Last week Daudi Husbands and I hosted a live training seminar that introduced the ArcGIS API for Windows Phone. The video is now available on the Esri Training site. To view, click the Go To Seminar button on the right and log in with your global account. Click the Presentation link on the left, then click the View the presentation link to launch the presentation.
In addition to the API, a number of other topics were discussed, such as the Windows Phone development platform, the ArcGIS application, and the Windows Phone Marketplace. A series of Q&A sessions during the seminar provided those attending with an opportunity to dive into details about these topics. Unfortunately due to time constraints we were unable to answer all of the questions. As a result, I have included a comprehensive list of those questions with answers below.
Section 1: Windows Phone Platform
- What if I already have Visual Studio 2010 or Expression Blend 4 installed and I install the Windows Phone tools?
It will integrate with the Visual Studio 2010 and Expression Blend 4 edition you have installed.
- Can I install Windows Phone tools on Windows XP or a virtual machine?
The tools can only be installed on Windows Vista and Windows 7. They are not supported on VM’s running Hyper-V or VirtualPC. However you can install the tools on unsupported platforms to build Windows Phone libraries, as long as you don’t use the emulator. Here’s a blog post on the topic: http://blogs.msdn.com/b/astebner/archive/2010/05/02/10005980.aspx
- Is the Metro look and feel required?
No, but it is encouraged. Design resources for the Windows Phone 7 platform are available here: http://msdn.microsoft.com/en-us/library/ff637515(v=vs.92).aspx
Section 2: ArcGIS for Windows Phone application
- Does the ArcGIS for Windows Phone application do routing, and can you find nearby businesses?
No. We are looking into adding this into the application or another application in the future.
- Can you add ArcGIS Server services via REST directly in the Windows Phone application?
No. We are looking into adding this into the application in the future.
- Does the ArcGIS for Windows Phone application support geocoding and reverse geocoding outside the United States?
Yes, we use Bing geocode services, which have established, public coverage for different regions throughout the world. Documentation on Bing Maps geographic coverage for its service is available here: http://msdn.microsoft.com/en-us/library/dd435699.aspx
- How can I edit data using the ArcGIS for Windows Phone application?
Create an ArcGIS Server feature service (which requires feature layers stored in an enterprise or workgroup geodatabase). Add it to a webmap on arcgis.com or in a mobile content server. Access in Find Maps dialogs. Tap on existing features to edit or use the content menu when viewing the map to add new features.
- Can I host webmaps for the ArcGIS application instead of using ArcGIS.com?
Yes, ArcGIS Server 10 includes a Mobile Content Server that enabled you to create and host webmaps on your server. Sample webmaps hosted by a Mobile Content Server are available here: http://arcgismobile.esri.com/ArcGIS/Mobile/Content/MobileWeb. We also provide a document on the use and structure of a Mobile Content Server.
- Is the Mobile Content Server available with ArcGIS Server basic, standard or advanced editions?
It’s only licensed for use with the advanced edition.
- Is the ArcGIS application capable of auto updating?
The ArcGIS application does not poll for updates to layers within a map, but upon an extent change in the map or if the map is reloaded, changes to layers (e.g. new features in a feature layer) will be displayed.
- Do you have to be a registered user to download the ArcGIS application?
Yes, you need to have a Windows Live account when using Zune on the desktop or Marketplace on the phone.
- Is the code for this application available?
No, the source code for the ArcGIS application is not available.
- Does the ArcGIS application support custom map data (e.g. data not found on ArcGIS Online)?
The ArcGIS application is built on the use of the webmap, which consists of a basemap layer and operational layers. With ArcGIS.com viewers you can select from ArcGIS Online, Bing, and OpenStreetMap basemaps. You can define the basemap layers in a webmap for the Mobile Content Server. In general, they should be cached map services. Operational layers in the current webmap specification (1.2) can be ArcGIS Server image, map and feature services. Map notes are also supported in the current webmap specification, but are not supported in the current ArcGIS application. They will be supported in the next major version of the ArcGIS application. Note, documentation on the webmap specification is not public at this time.
- How do you find the ArcGIS application in the Marketplace?
Use Zune on the desktop or the Marketplace app on a Windows Phone. You can search apps for “Esri” or “ArcGIS”.
Microsoft is looking into providing a better browser experience for searching the Windows Phone Marketplace. In the meantime, here are a few third party sites that offer a smooth experience:
Section 3: ArcGIS API for Windows Phone
- What are the differences between the Silverlight/WPF and Windows Phone APIs?
The Windows Phone API does not include a BehaviorsActions library, a few client-side toolkit data sources are not supported (HeatMap and GeoRSS), graphics layer map tips are not available (although InfoWindow in the toolkit will work), and the toolkit has only a few controls that have been refactored for the Windows Phone experience. Note, Silverlight for the Windows Phone does not include some key functionality provided in Silverlight 4, such as dictionary binding, custom namespace schemas, and support for commanding. Here’s a comprehensive review of the differences between Silverlight for the Web and Silverlight for Windows Phone: http://msdn.microsoft.com/en-us/library/ff426930%28v=VS.96%29.aspx
- Does the API support disconnected scenarios?
Not out of the box, however the API is extensible so you can build on existing layers to populate and retrieve features and map image data in isolated storage or prepackaged with the application. Of course if you prepackage data you’ll need to be careful about how it impacts the size of the application. We do not have a provisioning or synchronization solution in place for the Windows Phone API, like we have for Windows Mobile, but we are taking a serious look at providing something along these lines in the future.
- How do you use ArcGIS Server secure services?
You can use token secured services reliably with short term token and the Token property. To use long term tokens you need a web app host url (which doesn’t apply) or an ip. The ip address for a Windows Phone connecting via 3G is not static, so it’s not conducive for long term tokens. You can use a long term token in a proxy (via ProxyUrl on layers and tasks). With respect to httpWindows secured services, we are adding a Credentials property for layers and tasks in 2.2 so you can set these values explicitly.
- What kind of integration with Visual Studio 2010 and Expression Blend 4 does the ArcGIS API for Windows Phone installation provide?
Adds registry entries to easily reference ArcGIS assemblies in projects. The Toolbox is not accessible at this time, so we’re unable to add to it. We do not provide any templates (project or item) at this time, but we are considering it depending on demand.
- Does the ArcGIS API for Windows Phone work on Mono for Android (MonoDroid)?
No. The ArcGIS API libraries would need to be recompiled for the MonoDroid base class libraries. Also, the ArcGIS API for Windows Phone relies heavily on the use of XAML, which is not supported in MonoDroid. There are no plans to support MonoDroid at this time.
- Can we use MVVM with ArcGIS API for Windows Phone?
In general, yes, we seek to facilitate building applications that leverage MVVM.
- For locations entered through a mobile device, is there a way to post them back to a desktop client?
Basically you can push data into a centralized repository and retrieve it as needed from any client. For example, in an ArcGIS system you can push geographic data into a feature class in a geodatabase hosted via a feature service. Clients can access the geodatabase directly or use a map/feature service to query and view data within the feature class. Fortunately the ArcGIS API for Silverlight, WPF, and Windows Phone share much of the same core logic. So you can build a Windows Phone application and a desktop application that share patterns for accessing the same sources of data.
- Does the ArcGIS App for Windows Phone work with Windows Mobile 6.5?
No, it is only designed for the Windows Phone 7 platform.
- Can geoprocessing and 3d analysis and viewing be accessed using the ArcGIS API for Windows Phone?
Core functionality in the API is founded on the capabilities of ArcGIS Server exposed through the REST API. The API includes a Geoprocessor class which represents a geoprocessing service and the tasks it contains. A limited subset of GP types are supported via ArcGIS Server, which will likely impact how a GP tool can be used on the desktop versus on the server. 3D analysisviewing is not supported by ArcGIS Server via the REST API at this time. However, we are looking at including support for z values in ArcGIS Server REST and in the client APIs in the future.
- Are the routing and geocoding capabilities used by the API provided by Bing or Esri?
You can use either. Support for Bing geocode and routing services is provided in the ESRI.ArcGIS.Client.Bing library. Support for geocode and routing (NAServer) services hosted by ArcGIS Server is included with the Locator and RouteTask in the core ESRI.ArcGIS.Client library. You can use ArcGIS Server services hosted by ArcGIS Online or your own services.
- Can you develop a desktop app with functionality that will be included and deployed to an application on a Window Phone?
Yes, the ArcGIS APIs for Silverlight, WPF, and Windows Phone contain basically the same core functionality, so you can build a WPF map application for the desktop and reuse much of the same ArcGIS API logic for your Windows Phone map application.
- Will the interactive SDK include VB.NET sample code in the future?
Yes. This should be available near the final release of 2.2.
- For commercial apps, can a developer deploy solutions using Bing Maps for free, or is there a licensing fee?
There are some limits, but generally if a mobile application is available to the public (free or fee), it can use Bing Maps services free of charge. One notable exception, you’re not permitted to use Bing Maps services “real-time” navigation applications. Feel free to review the terms and conditions here: http://www.microsoft.com/maps/product/mobileterms.html
- Can I install an application developed with Windows Phone API without using the public Marketplace?
Technically you can deploy internal application to a Windows Phone
- Is there a way to detect what kind of phone a user is using and redirect it to the relevant page? (for Windows Phone, iOS, Android)?
The context of the question does not apply to the ArcGIS API for Windows Phone which is used to build native (local) applications for the Windows Phone 7 platform. If building a Web page to be accessed on a mobile device in a browser, you can determine the device via the User-Agent header.
- Does the ArcGIS API for Windows Phone have the ability to access spatial data available locally (e.g. shapefiles, personal geodatabases) on the phone?
No. Although you can store map cache tiles and featuresets in isolated storage and reuse.
- Is there a matrix comparing the capabilities of iOS, Windows Phone, and the upcoming Android API’s?
No. Ideally the APIs should all have the same functionality.
- Does feature editing support versioned SDE data?
No. ArcGIS Server 10 feature services do not support versioned editing.
- How do you create one mobile application for multiple mobile platforms?
Generally efforts to try to create one mobile application that works across multiple platforms results in a poor user experience. Even if you create a “cross-platform” Web application for mobile devices you need to account for differences in browser functionality and manage user expectations. If the browser experience is adequate, it may be the best option since you can consolidate application logic into one application. If you seek to provide the best user experience and leverage all available local resources, you’ll need to build native applications for each platform you want to support.
- Is ArcGIS Server 10 required to use the ArcGIS API?
No, but some functionality in the API will not work with prior ArcGIS Server versions. For example, prior to version 10 geometry operations such as autocomplete, intersect, and generalize are not available, services did not support spatial reference defined as WKT, and editing of feature layers in a service was not possible.
- Is there Cocoa Touch support for Esri components?
Cocoa Touch is an API created by Apple for iOS. Our ArcGIS API for iOS utilizes this API for animation, touch and gestures, etc.
- If you don’t have access to an ArcGIS Server to host data, are there other low/no cost options?
There are a variety of open geospatial standards you can choose from, such as WMS, GeoRSS, GML, KML, etc. The ArcGIS APIs do include support for some non-ArcGIS Server service types out of the box, such as WMS and KML. The API is extensible so you can build a layer type for almost any format you desire.
- Does the API make any service calls using SOAP or are they all REST?
Currently we use SOAP to work with Bing Maps services. All interaction with ArcGIS Server is built on the REST API.
- Are there any special requirements for publishing ArcGIS Server services for the ArcGIS API for Windows Phone?
No, although you may want to consider that the services will be used on a mobile device. This may impact cache properties, number and content of layers, and feature layer rendering all working together to provide a more effective mobile experience.
- If a feature service supports attachments, can the API and application take photos captured in real-time and add them as attachments to a feature layer?
Yes. The ArcGIS application supports this now. If an editable feature layer has attachments, and you choose to add one, you will be prompted to pick an existing photo from a gallery or take a new photo with the camera. In the API, use the AddAttachment method on a FeatureLayer.
- Can you use the GPS location of the mobile device in the API and application?
Yes, assuming location services are enabled on the device. The ArcGIS application includes the ability to show the current location of the Windows Phone device on a map. When enabled, the map will zoom to the current location. The API can access the Windows Phone location service directly (http://msdn.microsoft.com/en-us/library/ff431803(v=VS.92).aspx), or use the GpsLayer included with the Toolkit Data Source assembly (v2.2).
- What is the GPS accuracy for a mobile device?
GPS accuracy depends on the hardware capabilities and settings when using the Windows Phone location service. You can set the desired accuracy for the location service to default, which is a low-power but less accurate option that uses cell and network connectivity to establish a location. Set the desired accuracy to high to enable the built-in GPS chip, which provides a more accurate result, but requires more power. Note, the accuracy of the location coordinate returned from the location service contains an accuracy value in meters.
- Are there any limitations with complex data types such as geometric networks?
Since the API does not support working with local data, geometric networks would be hosted in an ArcGIS Server service and accessed via the REST API. The capabilities of the REST API dictate what type of interaction with data we can support.
- Are there plans for a Windows Phone application builder similar to the Site Builder included in Server Manager for the Web ADF?
No, not at this time. However we are interested in hearing more about the requirements something such as this. Please post your ideas and thoughts on http://ideas.arcgis.com.
- Can we add any type of animation? For example, animated temporal data?
Yes, the Silverlight development platform for Windows Phone does support much of the same animation capabilities present in Silverlight for the Web. You can animate the display of temporal data (feature or dynamic map image) as you would with the ArcGIS API for Silverlight.
- Can you access the geographic coordinates of photos taken with the phone?
Yes, Silverlight on the Windows Phone platform does support this. Basically you’ll need to be able to access the EXIF data in a jpeg (photo). You’ll probably use the MediaLibrary to peruse photos in albums, or use the prepackaged PhotoChooserTask to interactively choose a photo. In either case, you’ll have access to the byte stream of the image. Instead of building a library to extract the EXIF data, use one that’s already available: http://www.codeproject.com/KB/silverlight/Exif_Data.aspx. This library provides access to the latitude and longitude properties of the image. Note, if you’re looking to debug into a Windows Phone application that access the media library on the phone, you’ll need to WPConnect.
- Is Esri considering a multi-platform API such as PhoneGap?
- Does Esri provide public Web services that can be used for free with Windows Phone applications?
Some ArcGIS Online services are available at no cost, regardless of use. See this page for details: http://www.esri.com/software/arcgis/arcgisonline/standard-maps.html.
- Are there any plans to allow download of the ArcGIS API libraries and dependencies via NuGet?
No, but it’s an interesting idea.
- Will we provide Visual Studio templates or extensions for the ArcGIS API for Windows Phone?
Yes, we are considering both at this time.
Section 4: Windows Phone Marketplace
- How much does it cost to register a Windows Live account with AppHub as a Windows Phone developer?
$99. Note you will go through an identity verification process, so registration may not happen immediately. You can register 3 developer phones initially. To add more, you need to contact Microsoft directly. See the AppHub forums for more info.
- How much does it cost to use the API?
It’s free to use the API, no ArcGIS Server license is required. It’s also free to deploy apps that use the API to the Marketplace as long as your app is free. If you charge for your app, there will be a cost. Consult our deployment guide to get the process started.
- How long does it take to publish an application to the Marketplace?
Depends on the complexity and functionality of the application. We’ve seen anywhere from a couple days to longer than a week.
- Does Microsoft provide an on-premise (private) Marketplace for internal applications?
Not yet, but they are planning on making one available soon. For now, you have to register developer phones and deploy apps directly to the phone using the Windows Phone Tools.
- Can you install an application developed with ArcGIS API for Windows Phone without using the public Marketplace?
Yes, but you’re limited to the deployment model highlighted in the answer to the previous question.
Thank you to all who participated in the live training seminar!
Silverlight, WPF, Windows Phone