19 Feb 2012

Geocloud: Bing Maps API Reviewed

This is the second part in a series of articles from Georelated providing a summary of some of the major cloud mapping services, their capabilities and key differentiators. This article will examine Microsoft Bing Maps API. In the first part of the series Georelated examined Google Maps API v3. The articles are aimed at a technical audience of architects or developers. Bing Maps is Microsofts cloud mapping service API. Bing Maps was originally launched in 2005 as MSN Virtual Earth and has seen many different names since this time (Live Search Maps, Windows Live Maps, Windows Live Local, and MSN Virtual Earth). 

Bing Maps provides Javascript, and Silverlight Web RIA controls, WPF Control, REST and SOAP web services and mobile SDKs for Windows Phone, Android and iOS. Bing Maps provides a more comprehensive offering than Google Maps API offering more functional depth within the controls and services and additional capability such as data services. This article will highlight some of these differences. Bing does however suffering like many Microsoft offerings with a lack of sex appeal. You will not find dedicated support for putting your photos on the map or funky HTML5 support. In addition powerful capability like the location free text search is hidden within less interesting service titles; in this case the Location Service.

A later part of this article series will provide a more in-depth comparison of all the reviewed services.

Web User Interface Controls
Silverlight, AJAX & Recently Retired 3D
Both Bing map controls provide the usual set of capability you would expect from a map control including slippy map pan, zoom, call out and base map data selection. Bing also provides a selection of map styles within some of the base map types - a capability not available in Google Maps API. Bing Maps also provides a bread crumb location control that provides a nice way to move between zoom levels using named national, political or physical boundaries. Similar to Google Maps, Bing Maps provides the ability to draw geometry layers on the map. Bing Maps also provides client side clustering to represent multiple points on the map as a single graduated symbol. Another way to add your data to the control is through custom tile layers that enable developers to add alternative data layers from other tile image services. To help organizations create map tiles to overlay on the map control Microsoft offers a tool called MapCruncher. Bing also supports consumption of GeoRSS feeds similar to Google Maps API but unlike Google also offers support for consuming OGC WMS services.

Bing Maps provides support for 2D mapping only following the withdrawl of the 3d map control in December 2011. The map on the right shows an illustration of the former 3D visualisation.

Some interesting consumer features are included in Bing Maps. These include support for accessing your location from your browsers location api. Venue Maps have been added providing mapping inside of major buildings such as Malls. Currently Venues only has limited geographical coverage and highly variable depth within geographies. Google has also started to rollout a similar functionality in their mobile maps offering.

Javascript AJAX Control - (version 7)
The AJAX control is supported on desktop (Internet Explorer, Firefox, Chrome, Safari for mac) and mobile browsers (Apple Iphone 3GS/4, Android 2.x Blackberry 6). At present the AJAX control does not appear to take significant advantage of HTML5 capability unlike Google Maps that already uses SVG and WebGL.
Silverlight RIA Control (version 1.0.1)
The silverlight control has a sligntly different user interface to the AJAX control but provides mostly similar features. Currently, only the beta edition of the Silverlight map control supports Birds Eye and Streetside data.


The WPF Control (version 1.0) provides a desktop windows presentation foundation control with similar levels of functionality to the Silverlight web control but exposed as desktop compatible XAML. The control is supported on Windows 2000, Windows 7, Windows Server 2008, Windows Vista and requires .Net 4 to run.

Web Services
The REST Services offer the following capability:
  1. Locations Service - The service provides the ability to geocode textual addresses and reverse geocode coordinates into textual locations. The service also, provides a very handy location search for unstructured textual location searches.
  2. Route Service - The service provides routes and directions for driving, walking and transit. The service offers a fairly detailed control over the route calculation and returned information however, the transit service has limited geographic coverage.
  3. Imagery Service - This service provides map images as a single image for embedding within web sites. The service supports creation of maps at defined locations and zooms using coordinates or textual locations. Maps can be rendered with overlays of Bings data layers,  push pins, showing a routes and with a choice of base mapping including Aerial imagery, street maps, ordnance survey and Collins Bart imagery.
  4. Traffic Service - Get traffic information for a defined area. The service even allows you to control the type of event to return including Accidents, congestion, disabled vehicles, planned closures, road hazards, weather issues and more...
Responses from the REST services are delivered in XML or JSON.  The SOAP Service provides similar functionality to the REST services with some slightly different names. In addition to the REST services capability the SOAP service also supports data search.
  • Geocode - This service provides similar capability to the Location REST service.
  • Route - This service is similar to the Route REST service. 
  • Imagery - This service is similar ot the Imagery REST service
  • Search - This service provides the ability to search the bing maps points of interest database. In the REST service this has mostly been replaced by the text search in the locations service. 
Support for SSL is available for SOAP and REST services.
 
Bing Maps Spatial Data Services provides services for batch geocoding, hosting, managing and querying customers own point data within Bing.
  • Geocode Data Flow API - The api provides the ability to geocode and reverse geocode batches of spatial data. This is achieved through a RESTful interface for uploading data and creating a data processing job. It is possible to monitor progress of data processing jobs. Once completed the progress service delivers download urls for successfully processed data and data with errors. The service allows up to 200,000 records or 300 MB of uncompressed data to be processed in a job.
  • Query API  - The query service provides spatial and attribute query capabilities for customers own point data hosted in Bing. Data is uploaded and managed in Bing using the Data Source Management API. The services supports: querying within a radius of a point, within a bounding box, within a buffer of a route and querying properties. The API also offers data retrieval using entity ids. All query types allow developers to set the fields to return and offer rich filtering conditions similar to SQL. It is also possible to control the order of the data returned. The query api is a RESTful interface supporting JSON or ATOM XML oData protocol responses. The query api can return up to 250 results only however, it is possible to page results.
Mobile
Bing Maps provides support for Windows Phone 7 API, Android, iOS.
  • Windows Phone 7 - support for Windows Phone 7 is provided through Silverlight for mobile. The control provides a good level of functionality closely aligned to the web Silverlight control. A full class library is available here.
  • Android SDK - The Android SDK was originally developed by InKnowledge. It is built using the Bing Maps AJAX v7 control. The SDK provides Java wrappers for the majority of the capability make Bing Maps available to Android Java development. Bing Maps Android SDK is an open source project using the Microsoft Public License. Commercial editions are available from InKnowledge.
  • iOS -  The iOS SDK is an Objective-C control that can be used to embed Bing Maps into native iOS Apps. The SDK is a subset of the capability of the web SDKs hence, developers should explore the available functionality before taking the plunge on a live project. The SDK is availble on the Apple Developer site.


Data

Bing Maps provides Road, Aerial, Birds Eye, Street Side and buildings data. Microsofts dropped 3D support in December 2011 hence, no longer competes with Google Maps for 3D content. Microsoft offers additional datasets in the UK where Bing provides Ordnance Survey and Collins Bart imagery. Bing Maps has adopted this additional regional support as a result of Microsofts aquisition of Multimap.com. The impact of this acquistion can also be seen in several of Bing Maps features for example location bread crumb and enhancements to pan animation.




Bing uses mostly third party data suppliers for its data. There is  strong geographic coverage to a similar level as Google. 

Licensing
Bing maps offers several license models supporting different types of organisations and usage levels. There is a "Free" level providing a very flexible starting point for limited commerical use and educational / non profit organisations. In addition there are options for full commercial use and use of Bing Maps for organisations with existing Microsoft volume licensing agreements. The "Free" use options are summarised below:

1. Education and Non-Profit Organisations
These terms of use are available for Educational and Non Profit organisations. Microsoft defines the use of the software in an "application is publically available without restriction (for example, login or password must not be required) or available internally for free instructional or non-commercial research use." (see terms of use setion 2). This license model is also not for use by commercially funded research bodies.

2. Limited Commercial, Non Commercial, Government Use  
This license is designed for use of the services for limited commercial, non-commercial or government use. The application must be publically available with no login or password required and not located behind a firewall. This license also applies a usage limit. The application must not exceed either 125,000 session type transactions per year or 500,000 transactions of any type per annum.

3. Evaluation:
A 90 day evaluation license is available to support asessment of the services for use in applications. Use of the service can not exceed 10,000 transactions of any type including sessions in any 30 day period. This is intended to ensure freedom for evaluation without unreasonable overhead.


The following restrictions are also applied to the above use types (1,2,3):
  • Microsoft can limit the rate of use of services, amount of storage available, duration of uploads / downloads from the services using throttling at any time. 
  • You may not allow your users of the applications to upload content to the services. 
  • Up to 50,000 geocoding or routing transactions in a 24 hour period are allowed. For Bing Data Services you may not do more than 5 batches with a maximum of 50 records each  in a 24 hour period.
  • The services cannot be used at all for fleet management, asset tracking or dispatch applications.
  • The services cannot be used for real time navigation (sat-nav).
  • Bings Maps “birds eye imagery” is only included in the evaluation licensing with some limitations on its use and may not be used in either of the other use types (1, 2 above). 
  • Traffic data can only be used on the internet and not "with messaging protocols such as email, SMS, MMS or other plain text or rich text messaging". Traffic data also cannot be used to provide or be licensed to standalone traffic providers such as radio stations, government traveller information services etc. 
  • Organisations using these licenses must provide a hypertext link to the Bing Maps TOU either at the bottom of each page or within the terms of use of the application. 
  • No Service Level Agreement – if it goes offline you have no comeback.
  • With any data you “submit” to Bing Maps you grant a license to Microsoft to re-use this data, however this does not cover the data that is part of your application hosting, only data hosted by Microsoft on your behalf. 
  • Microsoft may include a search box or advertisement within the served content.  
  • The terms of the agreement can change at any time without warning, meaning it might not be free tomorrow
The commercial Bing Maps agreement adds the usual refinements you would expect in a business solution but includes some use limitations. A summary of these differences are below:
  • The commercial edition provides an SLA and Warranty
  • You may test performance of Bing Maps services up to the peak performance of your application in the previous 3 months. Handy for simpler system benchmarking.
  • You may not use bird’s eye imagery of the United States, Canada, Mexico, New Zealand, Australia, and/or Japan by a government entity.
  • You may not use content from Ordnance Survey for non-publicly available applications. 
  • You may not exceed a total of 24 batch geocoding or file uploads with a maximum of 200,000 records each, using the Bing Spatial Data Services API, within any 24 hour period.
  • The services cannot be used at all for fleet management, asset tracking or dispatch applications.
  • The services cannot be used for real time navigation (sat-nav).
  • Traffic data can only be used on the internet and not "with messaging protocols such as email, SMS, MMS or other plain text or rich text messaging". Traffic data also cannot be used to provide or be licensed to standalone traffic providers such as radio stations, government traveller information services etc. 
Volume licensing allows Bing Maps to be licensed using a current Microsoft Volume Licensing Agreement.

Georelated provides this summary of Bing Maps Licensing information in good faith but it should not be used as a substitute for reading the full licensing agreement. Bing Licensing is not the simplest. Full licensing information is available from Microsoft here. Detailed terms and conditions of the licensing is here. Organizations planning to use "free" Bing Maps APIs should check the alignment of their use with Microsoft or a Microsoft Partner/Reseller to ensure correct interpretation of licensing.


Conclusions
Bing Maps API is a strong mapping service offering richer functionality than Google Maps API in some areas. Bing Maps offers wider support for development languages and technologies than Google Maps but utilises less open and standards focused technology. Both Bing Maps and Google Maps offer strong geographic coverage and a wide range of data. Bing Maps offers stronger country focused data support making it more applicable to than Google Maps API in some countries and markets. Both technologies provide great online support and have active developer communities. Bing Maps has weaker support for Andriod and iOS mobile than Google Maps. Both technologies are mature viable solutions for light weight web mapping. 


The next article from Georelated will examine ESRI ArcGIS Online.

1 comment: