I'm a little late getting this post out, but twenty-five years ago this year, GTViewer and Pocket GTViewer were officially announced at GITA in San Diego on March 4th, 2001. GTViewer ran on Windows 2000/XP and Pocket GTViewer ran on Windows CE 2.11/Pocket PC.
The picture below is the HP Jornada 430 that Pocket GTViewer was developed on:
And yes, I still have the James Bond keychain it came with:
And here it is in the movie (disarming a nuclear warhead, no less):Pocket GTViewer
Pocket GTViewer traveled a long and winding road. It started with devices that weren't breaking any performance records and were hindered by limited resources, so there were a lot of challenges to overcome when making a usable map viewing application for them. The devices did improve significantly over the years, but they were a far cry from any PC. However, these limitations required a lot of optimizing and clever design which really paid off when running GTViewer on more powerful desktop machines.
In 2003,
when Pocket PC became Windows Mobile, Pocket GTViewer became GTViewer
for Windows Mobile. The last version (8.0.0.9) shipped in 2010, but it
lived on for over a decade as a .NET control allowing developers to embed map viewing capabilities into their own Windows Mobile applications.
In 2008, the mobile world shifted. The iPhone opened up to third-party apps and the App Store launched. In 2010, the iPad arrived and finally provided a viable platform for GTViewer. By 2013, GTViewer for iOS replaced GTViewer for Windows Mobile, and GTViewer for Android arrived shortly after.
Here is a picture showing several iOS and Android devices running GTViewer:
Microsoft replaced Windows Mobile with Windows Phone in 2010 to compete with Apple and Google. Unfortunately, the early versions were not capable of handling the graphics for our map rendering (we tried), and we abandoned the Windows Phone platform (and so did Microsoft in 2017). We did have a short-lived Windows Phone version of the GTWeb Client that worked pretty well, but GTWeb Server did all of the rendering.
Here is a sample from the GTI museum of the many devices GTViewer has run on, ranging from Windows CE to the iPad:
- GTViewer 1 (2000-2001) was the Beta version with Map Viewing, Redlining, Sessions, Extracts, Locate and Thematic Queries, Print and Print to Scale, Feature Counting, and Raster Backdrops. Exporters were available for FRAMME and MicroStation-based data.
- GTViewer 1.1 (2001) was the first released version. Support added for Smallworld data.
- GTViewer 2 (2002) supported developing your own applications (with Visual Basic 6 and Visual C++) using a COM interface.
- GTViewer 3 (2003) gave us the Style Manager and support for TrueType fonts. Exporter added for G/Tech.
- GTViewer 4 (2004) added UI upgrades and non-category Raster. FME Reader/Writer Plugins were created to read and write GTViewer data, opening up support for ESRI data as well as anything else FME could read.
- GTViewer 5 (2005) included GTField (configurable data collection) and Data Monitors.
- GTViewer 7 (2007) provided Feature Tooltips. The G/Tech Loader had major enhancements.
- GTViewer 8 (2008) added Toolboxes, Display Toggles, and Dynamic Highlights.
- GTViewer 9 (2009) provided Dynamic Graphics (extending Dynamic Highlights).
- GTViewer 10 (2010) supported Rotated Views and view heading orientation for GPS.
- GTViewer 11 (2011) introduced Add-On Apps and the Drawing Info Dialog.
- GTViewer 14 (2013) was a mature app, feature-rich, and stable, allowing more attention to be spent on GTViewer for iOS/Android.
- GTViewer 15 (2017) was a quality-of-life release that smoothed out some of the rough spots and is the longest-running major version release.
- GTViewer 20 (2025) began development in 2020 as a major platform upgrade including a new Visual Studio platform, new coordinate transformation libraries, and new raster libraries. It also had a big slate of new features: UI overhaul, Proximity Search, consolidated Display Filter and Display Manager, native touch support, and unlimited undo/redo for redlines. It took the longest of any version to release and had the shortest life, because it was the stepping stone to GTViewer 25.
Announcing GTViewer 25
GTViewer 25 builds on every platform and library
upgrade GTViewer 20 provided and adds a long list of new capabilities:
- Every
dialog refreshed to have a modern Windows look and feel.
- HiDPI
support and improved native touch support.
- Builds
for x86, x64, and native ARM64.
- Cloud
Optimized GeoTIFF (COG) raster backdrop support.
- Built-in
Map Service support for both raster backdrops and address queries: Azure
Maps, Google Maps, and OpenStreetMap (the GetImagery Add-On App is no
longer needed).
- The Display Manager now supports custom Category Orders and the ability to group and hide categories from the user. It also provides more ways to present the information to the users, like Tree Views.
- The
View Sync, Search Session Graphics, Show Google Maps, and Google Maps
Directions Add-On Apps are now baked into GTViewer.
- New
GPS features include an upgraded NMEA parser, COM port enumeration, an Accuracy
Circle on the map, Constellation support in the Sky Plot, and Signal
Strength info.
- A
new tabular data storage method has been added using a SQLite
database file instead of the standard data.txt/.idx/.tab files, plus a new
Locate Query system which also leverages the SQLite database. This new data storage method is not a
replacement, but it does provide some additional features that were not
possible before.
- The API added support
for .NET 8+ External Apps, resizable forms, and form follow mode. There is also a new wrapper to make the original COM method work with standard C# and VB.NET data types with IntelliSense.
- The biggest change for GTViewer 25 is under the hood. The graphics engine migrated from GDI to GDI+, delivering a better display with enhanced TrueType text rendering and anti-aliased lines. This is probably the single biggest change in GTViewer's history, and it has shed a lot of our tech debt.
Here is GTViewer 25 showing our demo data, Proximity Search, View Sync, GPS Accuracy Circle, Display Manager's Tree View, and Map Service Backdrop and Address Query (using OpenStreetMap, though Azure Maps and Google Maps are also suppored):
Also happening in this 25th year of GTViewer
GTViewer's anniversary year is a busy one across the whole
product family:
- GTWeb
25 releases soon, with a major platform upgrade in the same spirit as
GTViewer 20 and a new graphics engine like GTViewer 25.
- It
adds user authentication support for Microsoft Entra ID (Azure AD), GTAuth (GTI's new Authentication Server), and upgrades to its native authentication, which can now support email invites.
- The
browser client was rewritten as a modern, single-page web app and runs in
device browsers as well as on the desktop with GPS support.
- GTWeb for iOS and Android were updated
to support the new features, including multiple Map Services per
project and picklists for query prompts as well as the new authentication modes.
- User
Notes can now restrict edits to the user or group, and can include photos
(like GTSpot).
- GTWeb
Server also gained a new Administrator Console page for managing the
server, including monitoring status and activity. It also makes most of the configuration possible via a browser page instead of editing files on the
server.
- GTWeb
Server can now update its project data from GTViewer Data Server with the
click of a button in the Administrator Console, and the new GTWeb_Deploy app
can be used to add or update data on the server.
- Also,
for the first time, GTWeb can run as an Azure App Service (thanks to its new graphics engine).
- The setup has also been simplified to make installing and updating datasets easier. Project-level configuration files and auto-discovery make adding and removing projects as simple as moving a directory.
- GTViewer
Data Server 7 was released last October with support for Microsoft
Entra ID authentication. Version
8 will be released soon and includes several new
features:
- GTAuth
is supported for user authentication (in addition to the Legacy and Entra
ID modes).
- A new native authentication mode has been added to support email invites, revocation, and forgotten-password retrieval.
- A
new console web page has been added for administrators to view the server configuration,
project info, server status, log files, and user activity. It can also take the place of several tools: GTVDS_Reset, GTVDS_ReturnLicense, and GTVDS_UsageFileViewer.
- GTViewer
Data Server can now run on IIS or as an Azure App Service.
- Several
new features have been added to make setup simpler, including an inferred
Master Manifest.
- The new GTVDS_Deploy app can simplify pushing data to the server.
- GTAuth
is a new server app that implements an OIDC Identity Provider built to
mimic Microsoft Entra ID (Azure AD) behavior. It currently works with both
GTViewer Data Server and GTWeb Server. It provides a console web page for user management and email invites.
- GTVx
is also getting a long-overdue refresh with GTViewer's new platforms and graphics engine plus a lot of features that had never been brought over from GTViewer. An x64 version allows it to work seamlessly with Visual Studio 2022 and 2026 and supports both .NET 4.8 and .NET 8+. A new API wrapper has been added to allow the use of native C# and VB.NET types, as well as IntelliSense.
- G/Tech Loader no longer needs the Oracle Client installed and has been optimized to run up to 30% faster.
- GTMetaExp (G/Tech Metadata Explorer) has also been upgraded to run without the Oracle Client and now has better feature style tracing and a slew of usability fixes.
- GTNodes is the most exciting news. It's a new product expected to be available for testing soon. It's hard to describe it, but it's basically a generic ETL app with a GTViewer twist. It provides data visualization, analysis, conversion, and processing. It includes:
- Visual Designer app to interactively create your data pipelines.
- Live Map Viewer to visualize the data (and optionally use GTViewer data as a basemap).
- MCP server for AI users who want help creating complex pipelines.
- Scriptable command-line runner to integrate data pipelines into your workflows.
It currently supports GTViewer data, GTViewer Data Server's data collection records, Oracle Spatial, G/Technology Data, Shapefiles, GeoPackage, CSV, OpenStreetMap, SQLite, PostGIS, and GeoJSON, with more to come.
Its transformers can reproject coordinates, build buffer zones, find features within polygons, filter by attribute expressions, clip, aggregate, find nearest points, trace circuits, join, and much more.
The original goal was to replace as many GTData tools as possible with a single versatile tool, but it's grown into something much more exciting.
The example below uses OpenStreetMap data to serve as a backdrop landbase for GTViewer data. The Live Map Viewer shows how it will look under the GTViewer data and can save it off as a GTViewer Category.




















No comments:
Post a Comment