Meta

Matt SheehanMatt holds an MSc in Geography and GIS. He has been working with clients solving problems with GIS for over 17 years. Matt founded WebMapSolutions whose mission is to put innovative, intuitive GIS driven applications into the hands of new and existing users.

Is Google Maps GIS Lite?

We’ve never been a company which sits on its hands and wonders what is around the corner. Sure we have some key partners, but they don’t limit our reach and exploration. Our goal is to provide the most appropriate solution to our clients. That might be an ESRI solution, Google, MapQuest, technology combination, open source. We are continually working to expand our skills and add more tools to our geospatial toolbox. The more tools we have available, the more effective we are at picking the right tool for the job. (we all know using pliers as a hammer is never ideal.)

In the past we have leaned on the likes of ESRI’s ArcGIS Server (and their various web mapping APIs) as well as some of the more advanced open-source options like GeoServer, OpenLayers, OpenScales, etc. But things are changing. Attend any GIS focused conference and you will notice two things. First, that ESRI now talk about “non GIS users”, and not just in passing; all the time. And second that Google are usually there in one form or other. After chatting with one senior Google geo person we decided to look at their offering in greater depth.

Google are considered by many professionals to be on the lighter side of geospatial. Their flagship products like Google Maps and Google Earth shook up the geospatial world in the mid 2000’s. Recently Google has been working hard to expand and deepen their roots into the geospatial world, particularly on the mobile side.

Rory (me) went out and did his own Google geo investigation.

Google Maps Geospatial Scope

Google obviously have many software products, services, and APIs related to geospatial so for my purposes I’ve limited my investigation to those areas applicable to mobile platforms. By no means is this intended to be an in-depth evaluation of all of their geospatial products, but more of a light overview of what’s available (or that we know they’re experimenting with), focusing on the potential for mobile applications in particular. Within the mobile realm, further separation must initially be made between native and web-based/cross-platform development. Google now has native Google Maps APIs available for both Android (MapView) and iOS (MapKit) for building custom mapping tools for those individual platforms. While single-platform (native) development can offer hardware specific advantages, the increased efforts to support multiple platforms tends to push us as a company more towards cross-platform, hybrid approaches such as Flex (via Adobe AIR) and increasingly HTML5/Javascript applications. Google Maps has now deprecated their Flash API in favor of their Javascript API in an effort to push the HTML5 advantages of plugin-less tools that work cross platform. Currently on its third version, it appears to be heavily oriented towards supporting mobile platforms.

Google API Buffet

The Google Maps Javascript API v3 is now the primary API for developing google-based maps in both the web and mobile environments. In addition to this main API, there are several sub/add-on APIs providing additional web services such as directions, distance, elevation, geocoding, streetview, latitude, and places. Some of these even have their own sub APIs as well such as the Places Autocomplete API which allows developers to not only leverage the power of Google’s places database, but also incorporate it as autocomplete suggestions to users typing a search, something that has almost come to be expected nowadays thanks to Google incorporating it into their primary search engine page. The power of these location-based searching and geo-marketing capabilities is undoubtedly leaps and bounds above their competitors in this area. Additionally, for consumer check-in/check-out applications the Latitude API can be used to access and update locations programmatically.

Google GIS lite – Static, Standard, Styled, and Custom Maps

For low bandwidth applications or mobile browsers that don’t fully support the power of these advanced javascript APIs, there is also a Static Maps API. A simple URL call can quickly return a custom static map image to the mobile application.

This may suit the user’s needs perfectly well in certain applications. For users that need full dynamic “slippy maps” the plethora of javascript APIs described above provides a variety of tools and standard Google map types such as terrain, streets, satellite imagery (with or without annotations), and even off-nadir 45-degree aerial imagery. However, lesser known options now available include adding your own styling to standard Google map types (e.g. different colored roads, parks, or backgrounds) or including your own custom basemaps (ie: your own imagery), tiled overlays (such as your own annotation layers) on top of basemaps, or even your own custom streetview panoramas.

Additionally, while Google uses the webmap-standard Mercator projection (EPSG 3857) for all of its maps, you are allowed to implement your own custom projections as well. Needless to say, Google Maps has worked hard to provide options beyond the basic streetmap.

Google Geospatial – Capabilities and Functionality

When you think of Google Maps, you think of fast basemaps, streetviews, routing, kml’s, etc… Very GIS-lite kinda stuff, but can it do more? Google Maps doesn’t try to be a full GIS, but to paraphrase them…many of their solutions come pretty close.
One exciting new area Google is experimenting with is Fusion Table Layers. To quote them, “Google Fusion Tables lets you store, share, query and visualize data tables. It offers a REST API to run SQL-like queries to manage tables […] The results of queries can be a .CSV or used in the Google Maps API or Google Chart Tools.” Any data that can be mapped in a fusion table can apparently be used as a layer in a webmap via the Maps API v3 now. Basic data such as points with field attributes can be put into a Google webmap or mobile application and even made clickable with info window popups. But what about more complex geometries? Can a fusion table layer contain lines and polygons? Could we take something like an ESRI shapefile and turn it into a fusion table layer for use in our maps? Quite possibly….yes! Further experimentation is needed on this idea, but in creating a fusion table for use as a map layer, you need at least one location column which can be lat/lon, geocoded addresses, OR “KML geometric data”. Could you import the geometry from a shapefile into a KML geometry and use it as your fusion table layer location field along with the other field attributes of your original shapefile? We haven’t tried it yet, but we think so. If you beat us to the punch and getting this tested before we do, be sure to let us know!

Aside from fusion table layers there are Overlay objects that can represent spatial data in the form of markers(points), polylines, circles, rectangles, or polygons. Any overlay can be made editable and combined with the Drawing library for allowing users to edit the overlay object. This editing is done on the client-side (basically as a graphics layer) and once the application is loaded, does not need to be online to edit. Thus offline editing could be possible using Google Maps, however the syncing of those edits back to a server appears to be lacking right now. Enter ODK (Open Data Kit), created by University of Washington’s Computer Science and Engineering. The Google Earth Outreach team seems to be currently recommending the use of ODK for offline field data collection. ODK currently works only on android devices (or simulated on a PC) and seems to be geared towards field data to replace paper forms rather than more complex GIS operations such as heads-up digitizing in the field. Although it should be noted that the obvious potential for combing the ODK system with overlays or fusion table layers is certainly something to be excited about and we’ll be looking into further. Additionally, the data collection part of ODK is a native android application and thus has the ability to tap into the hardware sensors of the device to collect location via the GPS chip, images or videos via the camera, and audio via the microphone. The real power of ODK though is the ability to collect data offline and then sync it to a server later on when the user has a connection again. The Google Earth team outlines a process by which to do this and eventually import the data collected into a fusion table for viewing as a layer on Google Maps. It’d be nice to see this process more streamlined and built into the abilities of the Maps API since offline editing requests are continuing to explode in the mobile geospatial realm, but at least there is a solution available, even if it’s not ideal.

Last to explore is the capabilities of hosting your own spatial data on a GIS server (or equivalent) for disseminating out to webmaps and mobile applications. Currently ESRI’s ArcGIS Server and the open-source GeoServer lead the pack here. Google’s answer to this is their new Earth Builder product. Google Earth Builder is designed to let users publish geospatial data into Google’s secure cloud. Google Earth Builder supports ESRI JP2, MrSID, GeoTiff, JPEG file formats for raster and ESRI Shapefiles, MapInfo Tabfiles, CSV, KML, KMZ for vector. Once published, the data can be accessed via the Maps or Earth APIs and viewed on webmaps, desktop apps, or android apps. Sharing and access control relies on Google Accounts and OAuth2. According to their site, “Google Earth Builder pricing is based on the amount of storage quota and pageviews for the account”, but no rates were listed.

Google Mobile Location Solutions – Licensing and Limitations

Google Maps data, APIs, and services have licensing and usage constraints. The Maps API is free to use as long as your site or application is free and publicly accessible. If usage of the Maps API by a for-profit site or application consistently exceeds the free daily usage limits, you’ll need to purchase additional map loads or purchase a Google Maps API for Business license. For-profit sites are permitted to generate up to 25,000 map loads per day for free, other services’ limits vary.

Conclusion

Overall Google’s buffet of geospatial tools and development APIs is actually pretty impressive! When compared to the expensive, but well-polished products of ESRI, they may seem a bit rough in some areas, but they are also considerably cheaper or free to use as well. Everything is a trade-off. The hardcore GIS capabilities are not up to the same level as others such as GeoServer or ESRI, but then again that’s not what Google is shooting for either. They seem to be happy helping to expand the lighter, much larger-scoped public side of geospatial (which do cover a lot of use-case scenarios). And they’ve done an excellent job on that side with the Maps and Earth products and associated APIs. The heavy emphasis on HTML5/javascript as well as tight cohesion amongst their APIs is really nice to see as well. However, the geospatial side of Google seems to be continuing to advance. The direction is not towards traditional GIS work, but more into expanding the geospatial capability and usability on mobile devices. Personally, we think this is a brilliant move.

The time they certainly are a changing. If you’ve hitched yourselves to ESRI, some exciting things are in the works with ArcGIS online. But the real action in the geospatial world is mobile and no one company solution will prevail. Many location based API’s have now been released, more are planned. Spatial problems we could not solve before, now have potential solutions. A wider, deeper approach is required. Google kicked the old GIS world in the pants in 2005. They have plenty of expertise and money on their side to do it again.

As a company we look widely for the best solutions, and Google is part of that solution mix.