8 Feb 2012

Geocloud: Google Maps API Reviewed

There are many cloud web map APIs available to embed mapping directly into a web application or web site. Services are available from Google Maps, Bing Maps, ESRI ArcGIS Online, MapQuest and many smaller vendors such as GIS Cloud. This is the first in a series of articles from Georelated providing a summary of some of the major cloud services, their capabilities and key differentiators. The articles are aimed at a technical audience of architects or developers.
This article examines Google Maps API. Google Maps API v3 provides a Javascript and Flash RIA controls,  web services and embeddable Google Earth. It supplies base mapping and geocoding data within the service.

The Javascript RIA control is based on readily available standardized browser technology. It predominantly utilizes HTML/Javascript/CSS/images but where available (most browsers today) it will take advantage of SVG. The control enables developers to simply integrate a fully functional map into a web page. The control provides a comprehensive Javascript object model to manipulate the map content, position, zoom, base maps etc. Additional Javascript libraries are available for drawing geometries on the map and calculating earth geometric data. The map control also provides libraries for integration with Adsense, Panoramio (Geotagged Photos) and Googles experimental places service. Since v3 the Javascript map control is available with support for mobile browsers.

The Flash RIA control provides similar capability designed for embedding within action script applications. The Flash RIA has been depreciated since v3 of the Javascript API was launched. It appears that the rise of HTML5 has convinced Google to move away from the flash API.

The limitations of Google maps are found when you want to use the map control to support your own GIS data. The map control supports KML, and GeoRSS vector layers and overlays with support for markers and many geometry types. However, creating complex thematic or analytical mapping is more tricky and often leads to compromises. With the massive improvements in web browser performance this is likely to be less of a barrier in the future.

The web services APIs provide a collection of HTTP web services with geographical capability. This includes:
  1. Static Map -  Delivers maps (Street View panorama or cartographic map) as static images for embedding into pages.
  2. Directions - Provides directions between locations.
  3. Distance Matrix - Provides travel distance and time between a matrix of locations.
  4. Elevation - Elevation data for all locations on the surface of the earth, including depth locations on the ocean floor (which return negative values).
  5. Geocoding - Provides the ability to convert textual addresses into geographic coordinates.
  6. Places - Provides a range of capability to work with places in google maps. This includes check ins, add/remove places to your service, find nearby places to a location and get detailed information about a place. The places api is currently "experimental" so be careful creating production applications on this api.
Responses from the web services are delivered in XML or JSON and support SSL is available.

Google provides base mapping for a vast array of countries around the world. The coverage is very comprehensive and deep. When this article was published Google map data coverage included 218 countries. Google uses many traditional geospatial data suppliers, captures some of its own data in some regions and supplements these in some less well mapped countries with crowd sourced data using its Map Maker capability. Google Maps API provides wide coverage of street level mapping, terrain and aerial imagery. Street view data is available in 23 countries but other map data sources have very limited coverage. Google geocoding coverage supports currently supports 209 countries however, its unclear how many countries support detailed level geocoding to street, building or parcel level.

Google Maps API is currently free for "Not For Profit" organizations. Its also "free" for "For Profit" applications with use up to 25,000 map loads per day that conform to a set of other limitations described in the licensing. Commercial use beyond this limit and wider licensing constraints requires a Google for business license (Premier). The free edition limitations include:
  • Developers cannot control in map advertising that Google places on the map. 
  • Using the "free" edition Google also requires you to "give Google a perpetual, irrevocable, worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publicly perform, publicly display and distribute Your Content through the Service and as search results through Google Services". 
  • The "free edition" license also prevents organizations using the apis to creating asset tracking applications that are not free for users and completely prohibits real time satellite navigation applications.
  • The "For Profit" use is limited to publicly available commercial web sites or free applications. It's worth checking with one of the many Google partners or Google direct if your planning to use Google Maps API in a commercial application. No one wants a license compliance suit from Google!
Google Maps Premier licensing provides:
  • SLA guarantee for up time of the map service but not the geocoding! 
  • Control over in map adverts allowing you to prevent adverts
  • Support - thanks to the freemium model Google Maps has a very active developer community and there is a wide partner community hence, the need for direct support is much lower.
  • Allows for use on private sites
  • Licensing costs are available with several usage levels based on a fixed price of a defined number of map page load bundles per annum.
Georelated provides this information in good faith but it should not be used as a substitute for reading the full licensing agreement. Full licensing information is available from Google:
Organizations planning to use "free" Google Maps APIs should check the alignment of their use with Google or a Google Partner to ensure correct interpretation of Googles licensing.

    No comments:

    Post a Comment