Thursday, August 29, 2013

GTViewer for iOS and Android


Introduction

GTI has been working on versions of GTViewer for both iOS (iPhone/iPad) and Android (phone/tablet) for over a year.  The device version of GTViewer is roughly equivalent to the device version of the GTWeb client and both have a similar look and feel.   Both apps provide the same basic functionality like panning, zooming, locate queries, display presets, GPS tracking, attribute info, and favorites.   The defining difference between GTViewer on the device and GTWeb is that the data is local (on the device) for GTViewer and accessed through the internet or intranet for GTWeb.   This difference may seem trivial, but it is actually quite substantial.  GTWeb reads the GTViewer data, renders the view, and queries the database all on the server.  The server sends an image to the GTWeb client and it works with the image.  All of the heavy lifting is done by the GTWeb Server, and it shares a significant amount of code with the desktop version of GTViewer.  For GTViewer on the device, reading GTViewer data, rendering the views, and querying the database must all be done on the device without the assistance of a server (and all of that shared Windows code).

Getting Data onto the Device

Getting data on the device is not as easy as it is with a Windows laptop or even Windows Mobile.   Sandboxed apps, WiFi connectivity, no SD cards (iOS), and an inaccessible File System all make the simple process of copying data onto the device more complex.  To solve this problem, we have created a server component that is responsible for managing the data projects and distributing them to the devices.  GTViewer Data is placed on the server in its unextracted format (.GTM file plus dependencies) and the data is compressed (to .zip files) and cataloged in a manifest.  The GTViewer app on the device can query the server to see what projects are available and will check to see if any data projects currently loaded have been updated.  The user can then choose to update an existing dataset or download a new one.  Updating a dataset only requires the downloading of files that have changed in the GTViewer dataset, so an entire refresh may not be necessary in certain situations.

Limitations

There are some limitations with GTViewer for iOS and Android.  
  • You must have room on your device for the data.
  • Since data can be very large, we restrict the data downloads to WiFi.
  • There is a size limit of around 700M per .GTG and .GTN file on iOS.  All other files have a 2G limit (same as desktop GTViewer).
  • MrSID and ECW raster files are not supported yet on iOS or Android, so they cannot be supported as backdrop files.  However, it may not be practical to tote all of your raster files around with you anyway since their size may easily consume all of the space available on your device.
  • Only supports Standard fonts (.DFN), but we do provide assistance for converting TrueType fonts to .DFN.  This limitation may change in time as well.
  • Redlines are coming, but not here yet.
Demonstration

There are 3 videos below showing the new GTViewer app on various devices.


GTViewer on an iPad



GTViewer on a Moto X (Android Phone)



GTViewer on a Motorola Xoom (Android Tablet) - pardon the poor video quality with the Xoom.  Its extremely reflective screen did not play well with the camera.


No comments: