Thursday, September 16, 2010

Using Google Maps to broaden the reach of GIS: Ubisense myWorld

Readers of my blog will know that for several years I have been advocating that Google Maps and other "neogeography" systems have a strong role to play in more traditional GIS application areas. In recent months I've been quite busy working on making this a reality, and last week at the Smallworld User conference in Baltimore we announced a new product called Ubisense myWorld. I'm really excited about what we've come up with. Check out the video demo, and read on below for more information (demo video best viewed in full screen, HD, no scaling).
Our initial focus has been on using myWorld with GE Smallworld data (for those not familiar with GE Smallworld, that's where I used to work a few jobs back, and they are still the market leader for GIS in utilities and telecom). However, we are using the excellent Arc2Earth Cloud as the repository for our geospatial data in the cloud (running on Google App Engine), which has comprehensive support for uploading ESRI data, so we can integrate with ESRI too. And much of our functionality is quite applicable to other application areas. So if you might be interested in using myWorld outside a Smallworld environment, let me know!

We've had a really strong emphasis on usability - our aim is that people should be able to use the system with no training. We display all the asset data as raster tiles, which is essential for scalability - Smallworld data models tend to be among the most dense of any GIS applications, with very detailed network data, and tables often running into millions of records. But you can select anything with a single click on the map, which sends a query to the spatial database hosted in Arc2Earth (using a REST API, for those interested in that sort of thing) to get the relevant attribute information. We've found performance to be excellent with this approach.

We've implemented a very fast Google style single box search across the whole geospatial database (well, whichever tables and columns the administrator designates), so users don't need to know any technical details about table names, field names or query structures to find what they are interested in - they can just start typing a pole number, asset id, customer name, etc and we have an autocomplete capability that will show them a list of options to choose from. This uses Google's App Engine datastore, which is based on BigTable, the same technology that powers Google Search, so is obviously very fast and scalable.

Another cool feature, which I haven't seen elsewhere yet done in the same way that we've done it, is tight integration with Google Street View. When you click on an item on the map, like a pole or a customer, we calculate the best street view to show you what that looks like (where one exists - it doesn't in all cases, as not everywhere is covered by street view). So far in our testing, the data has matched up better than I thought it would, with the automatic calculation working well in most cases. However, in some cases there will be mismatches between the data in the GIS and the data in street view, so we make it easy to adjust the view and save it, so that next time you click on the same item it will remember the adjusted view. This street view capability is one of the main reasons we decided to use Google Maps rather than the various other options out there.

We also see a lot of potential for the idea of "enterprise mashups" - being able to easily pull data from other systems within an enterprise that also contain spatial data, like outage management, vehicle tracking, work management, and customer information systems, as well as data from external sources like traffic, weather and more.

Since the application is just based on JavaScript with no plug-ins, it also runs really nicely on the iPad, and on smart phones like the iPhone and Android (with a modified user interface for the phones, to accommodate the smaller screen size). We think that all of these devices have great potential for use in the field.

We are just scratching the surface with what we're showing so far - we have a long list of ideas for more things we want to do, while at the same time maintaining a very strong focus on keeping the user interface super simple. I'll post more in due course about some more detailed aspects of what we've been doing.

You also can see some of my broader perspectives behind what we're doing in the presentation I did at the Smallworld user conference in Baltimore last week:

Smallworld and Google: the best of both worlds from Peter Batty on Vimeo.

1 comment:

Jesper Ladegaard said...

It's the best presentation I've seen in a long time. It hits the nail on the head!

I've been playing with Google Fusion Tables and App Engine. It's surprisingly easy to work with. But I guess using Arc2Earth will give you more power, such as uploading tiles to the cloud.

Would be nice to have a graph/network service though. There must be a way to structure network data in bigtable to enable simpel tracing. Upstream/downstream tracing, feeder coloring, finding all upstream devices etc. - that's something power users, e.g. operators in the field, really love.

Your presentation has convinced me to dive deeper into this subject.