Wednesday, December 27, 2006

GTVx Version 5.0.x.12 is Available

Version 5.0.x.12 of GTVx is available.

----------------------- - 12/27/06
- FIX - The Export button on the Display Preset Dialog was always enabled even when no preset item was selected.

----------------------- - 12/08/06

- FIX - QueryActivate and QueryPerform were not recognizing Query Type 13 as thematic query.

GTViewer version 5.0.x.27 is Available

Version 5.0.x.27 of GTViewer is available.

----------------------- - 12/27/06
- CHG - Change to the NMEA GPS reader to better support virtual COM ports or GPS sharing devices.

- FIX - The Export button on the Display Preset Dialog was always enabled even when no preset item was selected.

Friday, December 01, 2006

GTViewer version 5.0.x.26 is Available

Version 5.0.x.26 of GTViewer is available.

----------------------- - 11/30/06

- FIX - Export as Dgn was not setting the origin correctly in orphan cell headers which caused all grouped elements from the GTViewer data to scale and rotate incorrectly in Microstation.

- NEW - Export as Dgn will now export Extended Style Information as UDLS tags on the dgn elements.

- FIX - Fixes to the Style Manager's Import Map and Def funtionality.

- NEW - ExternalStyleMapFile and ExternalStyleDefinition entries can be added to the addprop.ini file or the Additional Properties section of the .GTM. If defined, these entries will import the specified .map or .def files.

- FIX - Text Elements with embedded data would lose the embedded data if edited with the Element Properties dialog.

- FIX - Reading an element would partially reset a DrawSetData. It will now fully reset the information.

- FIX - Right Mouse Menu would not activate when in Draw Dimension or Leader line modes.

- FIX - Updates to Magnify Window to provide a smoother appearance when scrolling, especially with dark or black backgrounds.

GTVx version 5.0.x.10 is Available

Version 5.0.x.10 of GTVx is available.

----------------------- - 11/30/06

- FIX - Export as Dgn was not setting the origin correctly in orphan cell headers which caused all grouped elements from the GTViewer data to scale and rotate incorrectly in Microstation.

- NEW - Export as Dgn will now export Extended Style Information as UDLS tags on the dgn elements.- FIX - Text Elements with embedded data would lose the embedded data if edited with the Element Properties dialog.

- FIX - Reading an element would partially reset a DrawSetData. It will now fully reset the information.

- FIX - Right Mouse Menu would not activate when in Draw Dimension or Leader line modes.

- NEW - ExternalStyleMapFile and ExternalStyleDefinition entries can be added to the addprop.ini file or the Additional Properties section of the .GTM. If defined, these entries will import the specified .map or .def files.

Thursday, November 16, 2006

Can Pocket GTViewer be a Usable Viewing Platform?

Many people today still view Pocket PC or Windows Mobile devices as a novelty with little or limited practical use. There are generally 3 arguments against the handheld device for any application: 1) they are not powerful enough, 2) they can not hold enough data to be useful, and 3) their screens are too small to see anything (especially maps). I hope to dispel these myths and attempt to get more people looking at the handheld platform. Pocket GTViewer is an excellent application for the mobile community. If you are not utilizing this application in some way, you are missing out on a rich resource for viewing, data collection, and general accessibility to your GIS information.

Pocket GTViewer has been in existence as long as the desktop version of GTViewer, and it has progressed through several generations of Windows CE. The first version of Pocket GTViewer, introduced almost 6 years ago, supported Window CE 2.11 and the processor of the time was the Hitachi SHO running at 133 MHz. Pocket GTViewer has since supported Windows CE 3.0, Pocket PC, Handheld PC 2000, Pocket PC 2002, Windows Mobile 2003, Windows Mobile 2003 Second Edition, Windows CE.NET, and now Windows Mobile 5.0 (Window Mobile 6.0 is coming soon). I list all of the different platforms to show how quickly the handheld devices are evolving.

Let’s go through the arguments against viewing your GIS data on the handheld platform one item at a time and see how they are no longer valid excuses. The first argument is that the devices are not powerful enough. I think this argument has always been untrue. While the handheld devices are certainly not as powerful as a desktop PC, the devices of 6 years ago were more than capable of viewing complex vector map data. Pocket GTViewer was designed from the beginning to work with these slower processors and with minimal resources. On today’s handhelds, with processors 5 times faster, video hardware acceleration, and quadruple speed (or more) memory, Pocket GTViewer screams.

The second argument is not enough storage. Six years ago this might have been partially true. CF cards of that time were commonly in the range of 16M to 40M and a 100M CF card could easily cost more than the handheld device. At that time, you had to be a little more selective with what data you took with you; however, 40M of GTViewer data is a lot of information and rarely did I see a problem with not being able to take all the data along that was needed. Also, the 1G Microdrive provided some relief early on for those who needed extra storage at a premium price. These mechanical drives were very fast and usable even if they were deemed a bit fragile and consumed some precious battery power. Today, storage problems are all out the window; 4G+ memory cards (CF and SD) are common place and 2G cards very inexpensive ($70 or less). Solid state, fast, huge, and non-volatile, what more could you ask for?

The last argument is the usability of the screens which probably carries the most weight when deciding against the handheld devices as a platform. In the beginning, the standard Pocket PC and Windows Mobile screens are usually 3.5” diagonal with ¼ VGA resolution (240x320). If you leave the mainstream, there have always been a variety of screen sizes available; the only downside being that they are usually more expensive and use one of the more vanilla flavors of Windows CE (like Windows CE 3.0 and Windows CE.NET) which do not have some of the built in extras you find in Pocket PC and Windows Mobile. With the addition of Windows Mobile Second Edition, the screens are the same physical size, but they can now have full VGA (640x480) resolution and can operate in either Landscape or Portrait modes. This resolution increase is a much more profound change than it may seem at first. Going from ¼ VGA to full VGA quadruples the number of pixels in the same screen area and gives an amazing amount of clarity to graphics like the vector maps Pocket GTViewer displays. (This is one of those things you have to see to fully appreciate.) With Windows Mobile 5.0, the standard screen size is no long a standard and we see different aspect ratios. For example, the Treo 700w has a square screen.

There are really two issues when it comes to screen size. One is the hardware limitation and the other is thinking “desktop” when you have a “handheld.” The hardware limitation is really not an issue now with the full VGA screens (and really never was with ¼ VGA screens either). The screens are still small, but they are now crisper than your desktop’s screen and can still fit in your shirt pocket. The second problem has to do with doing the right job with the right tool. If you are trying to view all outages in your service area, a 3.5” screen is not the right tool. The tool for this job is GTViewer or GTVx, not Pocket GTViewer. However, the 3.5” screen with ¼ VGA or full VGA resolution is ideal for viewing a map up close. For example, you want to know if there are any underground utilities at an address, or you need to see what equipment is installed on a particular pole. A handheld device is like one of those little notepads with the wire spiraled around the top. You hold it in one hand and write on it with the other. So, what would you use a notepad for in the field? Taking notes, drawing sketches, filling out forms. Couple these tasks with an intelligent map supported by all of your GIS data and you have a very power tool in the palm of your hand.

Desktop GTViewer and Pocket GTViewer work well together. One is not a replacement for the other. GTViewer on your desktop PC can extract data for the handheld to take into the field, and receive redlines and/or collected data. GTWeb is also integrated with Pocket GTViewer allowing a web interface for selecting and loading data. Pocket GTViewer extends your GIS into places that were not always accessible before. I always carry my handheld with me, but I only lug my laptop around when I have to. Having the right information at the right time can make all the difference in the world.

The future is bright in the mobile arena. Beyond the Windows Mobile devices, we have SmartPhones and Ultra Mobile PCs. More and more devices today have built in GPS capabilities as well as cameras. Wireless connectivity is also becoming faster, more reliable, and more affordable. GTI’s product lines adapt to take advantage of the latest technologies available. You will see these new technologies leveraged in Pocket GTViewer, GTViewer, GTVx, and GTWeb.

This article was originally published in COGNET's GIS Advisor Newsletter:

Monday, November 06, 2006

Disclaimers, Messages, and Descriptions

How to inform thee, let me count the ways…

System administrators often need to provide information, in some way, to the people using GTViewer. There are three ways, and each is suited to a slightly different use. Each one is implemented as a parameter in the [General Info] section of the GTM file. Let’s take them in this order: Description, Message, then Disclaimer.

Description – This property specifies a one line description of the data. This description appears in several places:

- in the display filter
- in extract file descriptions
- in the new session dialog
- in the file > properties dialog

Here is an example of each one:

Display Filter:

Extract file description in the Tools > Extract Data by Fence

The New Session Dialog:

File > Properties Dialog:

Message – This property can be used to specify text to be displayed in the File > Properties dialog in GTViewer and the GTV > About > Open File dialog in Pocket GTViewer. The Message entry can be repeated as many times as necessary and can be used for copyright information, disclaimers, etc. The example above of the File > Properties dialog shows both Message and Description.

Disclaimer – This property can be used to specify text for a disclaimer that must be accepted before the data can be opened. The Disclaimer is limited to 255 characters per entry. It can also be set to <*blank*> to insert blank lines. The Disclaimer entry can be repeated as many times as necessary.

Here are two examples. The first shows the use originally intended, namely, to require the user to actively accept a legal notice. This is the actual disclaimer used by Jackson Electric Membership Corporation (JEMC).

The same technique can be used to present users with notices they ought to read but might skip. In this case, the administrator wants the people using GTViewer to know when their data set was exported from the GIS.

If they accept, GTViewer displays the data. If they Cancel, GTViewer exits.

I hope this blog posting has given administrators some ideas of how to inform users in the most suitable manner. And I hope at least a few readers were more amused than outraged by my distortion of Elizabeth Barrett Browning’s sonnet.

Thursday, October 26, 2006

Version 5.0.x.25 of GTViewer is available.

----------------------- - 10/26/06
- NEW - The Title entry can be set to <*none*> to prevent any labels and borders from printing.

- FIX - If the session category had display thresholds, the drawing functions were disabled.

- FIX - FixedScaleFlag was not working on text elements (only symbol elements).

- NEW - Customizable support for Fixed Scale Text and Symbols. The Additional Properties section can now contain a PointFeatureThreshold entry to specify a selection tolerance based on distance from origin (instead of the text bounding box) and a FixedSymbolScale entry to the maximum zoom level to compute a symbols range for the spatial index.

- FIX - Problem with SetCurrentFilterId.

Friday, October 13, 2006

GTData version is Available

Version of GTData is available.

----------- - 10/13/06

- NEW - GTStyleMgr, GTTabImport, GTMergeStyles - added to GTData.

- NEW - GTFilterImp - added to GTData.

- FIX - GTFrbConv - modified to also accept .rdl file using C(#) instead of C(Table.Attr). Non-FRB Tools .rdl files used the number of codelist tables.

- NEW - GTQuery - New silent flag will not generate the error messages, but will still provide the summary report.

- NEW - GTQuery - supports the -v1 flag to provide extra detailed information when compiling Offset Queries.

- FIX - GTQuery - If prompts were defined with a Graphic Offset Query, the query would be corrupt. Prompts are now ignored with this query type.

- FIX - GTFormatInfo - OmitFilterFlag messages in the verbose log were incorrect.

Monday, October 02, 2006

GTVx version 5.0.x.9 is Available

Version 5.0.x.9 of GTVx is available.

----------------------- - 10/02/06

- NEW - Export Session Graphics as XML functionality has been added to ExportSessionGraphics and ExportSessionGraphicsEx.

- CHG - Text Drawing in UDLS lines will not turn off when the size is less than 4 pixels (like it does with regular text)

- NEW - New Method:

boolean GetElementFontId(long categoryId, long offset, long* fontId);

- NEW - The FixedTextPlacementScale property is supported with SetDataProperty to change the text placement size to not be zoom dependent. Set to the zoom level you want the text size to be based or 0 (default) to work as it has in the past.

GTViewer version 5.0.x.23 is Available

Version 5.0.x.23 of GTViewer is available.

----------------------- - 10/02/06

- FIX - For the Link entries, if you specified a Link Description attribute that did not exist, the error message said the Link Attribute was not valid.

- CHG - The Measure readout has been moved from the status bar to the upper left corner of the view.

- NEW - The FixedTextPlacementScale property is supported with SetDataProperty to change the text placement size to not be zoom dependent. Set to the zoom level you want the text size to be based or 0 (default) to work as it has in the past.

Monday, September 25, 2006

GTWeb 5.0 - Use with your favorite Browser

The new version of GTWeb now provides a client-less mode of operation that makes it browser independent. Today, the three most common browsers are Internet Explorer, FireFox, and Opera. So, if you are fond of particular browser, if you are forced to use a specific browser due to corporate directives, or if your web app is for the public browser selection is out of your control, the new GTWeb client-less mode of operation addresses these needs.

Previous screenshots of GTWeb 5.0 have been with Internet Explorer 6.0, so the ones below are all using different browsers.

Internet Explorer 7.0 (Release Candidate 1)

FireFox 1.5

Opera 9.0

Thursday, September 21, 2006

Tuesday, September 19, 2006

GTViewer 5.0.x.22 is Available

Version 5.0.x.22 of GTViewer is available.

----------------------- - 09/19/06

- NEW - Intersection Query now supports more than 3 prompts.

- CHG - Text Drawing in UDLS lines will not turn off when the size is less than 4 pixels (like it does with regular text)

- CHG - GPS dialog was changed to have a Track GPS in View option and a Show Indicator option as well as an Indicator Type. The Track GPS option has also been added to the toolbar.

- CHG - GPS Leave Trail is now persistent between runs.

----------------------- - 07/18/06

- NEW - Shape with Holes elements now supported styled lines for their borders.

- FIX - Connectivity Query and Offset Query would not find a record if it were the first record in the file. Problem introduced with very large .gtx file support was enhanced (

Thursday, September 14, 2006

GTFilterImp Utility added to GTData

Version of GTData will include a new utility called GTFilterImp.

This utility will import the customizable settings (including display status, minimum display threshold, maximum display threshold, and filter flags) from one Filter Definition File (.flt) into another. Since filter files have become more complex (as seen in data that is style rule based such as ESRI, Smallworld, and G/Technology), this tool can be very useful in managing the customizable settings.

Press Release: Configurable Field Application from GTI

Press Release on GT/Field:

Friday, September 08, 2006

GTWeb Version 5.0 – No Client Software Required!

For several years, GTWeb has provided an easy way for a large number of users to access your GIS data with minimal administrative effort. GTWeb has minimal client requirements, requires minimal bandwidth, and is very easy to use. GTWeb version 5.0 provides a significant amount of new features to make it even more effective at what it does best.

Client-Less Operation

Version 5.0 of GTWeb offers a new approach to viewing your GIS data while still providing all of the functionality of the previous versions. The GTWeb Server can now simultaneously support the traditional GTWeb client that has been available since the product was released as well as the GTSketch client introduced in subsequent versions. The exciting new feature offered by Version 5.0 is a new mode of operation that brings GTWeb to an even greater user base by removing the need for any client component at all other than the browser.

The new "client-less" mode uses ASP.NET 2.0 to interact with the GIS data. It allows queries, panning, zooming, and reviewing of attributes just like the original version. The GTWeb and GTSketch clients still provide a richer experience for the user (since they are very similar to GTViewer in regard to its viewing capabilities), but the gain in universality offered by the client-less version opens GTWeb (and your GIS data) up to a new, larger class of users. The client-less mode of operation grants immediate access to users without the need to install or maintain any client software other than the browser, and it provides browser independence since it can be used with IE, FireFox, Opera, etc.

Template Web Site Enhancements

The new features provided in GTWeb version 5.0 are not limited to the new client-less mode. GTWeb has always been delivered with a Template Web Site to use as a starting point for creating your own specific web application around GTWeb for your organization. The Template Site is complete and can be used as-is; generally, if any changes are needed, they are cosmetic (such as adding your company’s logo, etc.). The Template Site delivered with GTWeb version 5.0 has been rewritten to take advantage of many features found in ASP.NET 2.0, and to make the template site easier to use and customize. The new Template Site works with both the client and client-less modes of operation and can easily combine projects of both types. Some of the new Template Site features are listed below:

  • Cascading Style Sheets (CSS) are now used to give the template site both a consistent look on its different pages and provides a single place to update the styles, fonts, colors, behaviors, etc. used by the different pages in the Template Site. The Query Selection, Query Form, and Query Results pages have been combined into a single page to provide a better user experience and to eliminate the need to go through multiple pages when performing a query. The page flow has been reduced from: Project Selection -> Query Selection ->Query Form -> Query Results -> Map to a much simpler: Project Selection -> Query -> Map
  • Query results are now returned as DataSet objects which can be bound to many of the ASP.NET controls such as a DataGrid. This simple change eliminates a significant amount of web page code and complexity while also leverages the power of the ASP.NET controls. For example, a DataGrid can easily sort by column and automatically break results up into multiple pages.

GTWeb Web Service

Another significant new feature provided by GTWeb version 5.0 is that all of the server side functionality is available in the form of a Web Service. A Web Service is a self-describing software component that makes its functionality available over the internet in a platform independent way. A variety of development platforms (such as .NET and Java) can consume a web service and incorporate the web service’s functionality into a web page, a desktop application, a device application, or anything that can use web services. By providing all the functionality of the GTWeb Server component, a new approach to getting your GIS data on the web and into other applications is now available.

The screenshots below show some of the new template site pages and what the client-less maps look like:

Thursday, August 17, 2006

GTI to Exhibit at Smallworld Conference in September

Join us at the 2006 Smallworld Americas Users Conference, September 24-27. This year the conference returns to the attractive Omni Interlocken Resort near Denver, Colorado.

GTI will be showing its configurable data collection application GT/Field, the new GTWeb 5.0, and the rest of the GTViewer Family of Products that help companies gain more value from their geospatial data.

GTI will also be showing its solutions including the new Fiber OTDR Trace application that allows a field technician to find the location of breaks and splice problems. Come see Loop Makeup, Gas Valve Isolation, Outage Analysis, and more.

Tuesday, August 15, 2006

GTVx version 5.0.x.8 is Available

Version 5.0.x.8 of GTVx is available.

----------------------- - 08/15/06

- NEW - Right Mouse Cancel is now supported during rendering.

- FIX - The .GTS session files did not correctly save Leader Line elements.

- NEW - Shape with Holes elements now supported styled lines for their borders.

- FIX - Connectivity Query and Offset Query would not find a record if it were the first record in the file. Problem introduced with very large .gtx file support was enhanced (

Monday, August 14, 2006

GTRead version is Available

GTRead is a Windows ActiveX Control that reads GTViewer graphics files (.gtg) and Extract files (.gtx). GTRead is part of the GTViewer-SDK and can be used to add the cability of reading GTViewer data into any application as long as the development platform supports ActiveX controls.

Version of GTRead uses the GTViewer 5.0 core and contains several fixes.

New GTData Tools

The next version of GTData will contain 3 new utilities: GTTabImport, GTMergeStyles, and GTStyleMgr.

GTTabImport provides a method to import custom changes from one Table Definition Files (.tab) file into another. Custom changes include alternate table names, alternate attribute names, display order of tables, and display order of attributes. The Table and/or Attribute must exist in the main .tab file before it will be imported from the import file. The GTConfig.exe utility has the capability to import custom changes from one .tab file to another, but it has a GUI and could not be run on the command-line or in scripts. The GTTabImport utility takes this feature of GTConfig.exe and makes it scriptable.

GTMergeStyles provides an easy method for merging multiple style.def and files together. This task could be performed by the Style Manager in GTViewer; however, with this utility, the process can be scripted.

GTStyleMgr provides several new features for manipulating Style Rules (style.def and style map files). The features it provides are listed below:
  • The Chop option can be used to remove a string from the beginning of a style definition name (both in the .def and .map files). Some of the conversion tools (like the G/Tech converter, and the FME plug-ins) use filter id names that match style definition names. It is possible to create your filter id name/style name with a prepended string that is useful for the filter name, but not necessary for the style (since the style could be reused by several different filter ids). The chop option will simply remove this prepended string from the style definition names leaving the filter ids intact.
  • The Strip option can be used to remove a square bracket enclosed string ( […] ) at the end of a style definition name. The style definition name will be updated in both the style.def and files. This option is useful in a specific case where a features state (in service, proposed, retired, etc.) is appended to the filter id and style name. It may be useful to control the display of features by state, but they may not use different style definitions. The Strip option will remove the bracketed name in the style.def and
  • The Thin option is a replacement for a previous tool called GTStyleThinner which looked at all definitions in the style.def and deleted any definitions that were not referenced in the This process of thinning the style defs can reduce the overall size of the style rules in a dataset (sometimes important on the device platforms).
  • The Fill option can be used to populate only the empty style definitions in a style.def from another style.def file.
  • The Import option can be used to import another style definition file. This option works identically to the Import Option in GTViewer when the import only if exists command it used. Therefore, only styles that already exists (empty or not) in the original style.def will be imported.

Thursday, August 10, 2006

Fiber OTDR Trace Application for GTViewer

Fiber optic cable is no longer limited to communications and/or cable companies. Many electric companies have run fiber along their networks. Existing structures used to support the electric networks make power companies well poised for providing communication services for internal purposes or to compete with traditional communication companies. With the increasing use of Fiber, one application that many users have asked for in GTViewer is a Fiber OTDR Trace. This application is an excellent example of how GTViewer can really leverage the data from your GIS to provide a truly productivity-enhancing tool for the field.

OTDR (Optical Time Domain Reflectometer) is a device that analyzes the loss of light in fiber. This loss could be caused by a break in the fiber or by splice problems. The device simply pulses a laser into the fiber and precisely measures the time between emission and detection of the backscatter created by problems along the fiber path. The device then provides a distance to the location of the problem.

Using GTViewer and GT/Trace, the Fiber OTDR Trace application allows the user to graphically select the feature where the OTDR is attached to the fiber network.

Then based on the selected Terminal or Splice, the application will guide the user to select a specific fiber to trace:

With the distance to the problem from the OTDR, the Terminal or Splice ID, and the Cable Id, the application is ready to find the problem.

By tracing the specific fiber through the network, a list of features is produced and a tally of both the graphical lengths (as drawn on the map) and OTDR lengths (from the database). Then by interpolating the distance to the problem indicated by the OTDR, a precise location can be graphically indicated on the map in GTViewer along with the graphical trace results.

A report of all features traversed to get to the problem can also be displayed:

GTViewer empowers the users with the information necessary to resolve the fiber problem. While the OTDR provides the critical piece of information about the location of the problem, only tracing the fiber network for a specific fiber can get you to the right spot. Traditionally, the OTDR trace could only be performed by a full GIS seat in an office environment. Now, GTViewer and the Fiber OTDR Trace application give you the tools you need when and where you need them.

Monday, July 31, 2006

New GTI Website

The GTI Website has had a makeover. We hope that the new site will be easier to navigate and provide a more pleasing and informative web experience.

Tuesday, July 25, 2006

Session Graphics 101

Session Graphics in the GTViewer Family of products are Redlines. They are called Session Graphics because the redlines are stored in a user’s Session. Redlines are non-destructive graphics drawn on top of the GIS data. They can be used for many things including making notes, capturing data, correcting data, clarifying data, etc. Session Graphics can also be shared with other uses, taken back to the GIS, or simply disposed of.

When a GTViewer dataset is created, a Session Category is generally defined in the data (in the .GTM file). A session category is similar to any of the other Categories in the GTViewer data, except that it does not have a predefined graphics file (.gtg) or a predefined spatial index (.gtn). Instead, the Session Category points to the user’s session which can be a GTViewer Session File (.GTS) file or the embedded session in an extract file (.GTX). Session Graphics can also be exported as a GTViewer graphics file (.GTG), Shapefiles, .DGN files, or XML.

While Session Graphics may appear somewhat straightforward, there are many features they provide that might not be readily apparent. A session graphics element supports both Keys (linkages) and embedded data (for more information on the differences between keys and embedded data, see Linkages and Embedded Data).

Current State Properties

The basics for Session Graphics are the same in all of the GTViewer Family of products: GTViewer, GTVx, Pocket GTViewer, GTWeb, and the Pocket GTViewer Control. There exists a set of properties that define many of the characteristics of session graphic elements. This set of properties consists of FilterId, ColorId, StyleId, Weight, and ExtendedStyle; and these properties use a current state concept. When one of these properties is set to a value, all session graphics elements created subsequently will use this property’s value; until it is changed to another value. So if you set the current ColorId to 3, then add a line, a circle, and a text element; all of these elements will use color id 3.

Filter Id and Session Graphics

Filter Id is an important property that is sometimes not fully understood. Filter ids are used for several different things, and this is probably why they are sometimes confusing. Filter Ids are a way to group common elements; they can be thought of as layers or levels and each GTViewer category can (currently) have 500 unique filter ids. The Filter Definition files (.flt files defined in the category sections of the .GTM file) specify a name and several properties for each Filter Id (such as min and max display thresholds and selectability).

Filter Ids are used by several important mechanisms in GTViewer, such as Display Control and Style Rules. Display Control (or the Display Filter, which is the origin of the term filter id) determines which elements are displayed either by turning an entire category on or off, or by turning individual filter ids within a category on or off. The grouping of common features provided by the filter ids provides a logical and effective method for controlling the display.

Style Rules are another feature that uses Filter Ids. Style Rules map a style definition to a particular filter id in a particular category. Once mapped, all elements in the category with the filter id have the mapped style definition applied to them before rendering. Some data uses style rules for all symbology, some data uses instance-based symbology with no style rules, and some data uses a mixture of style rules and instance-based symbology. For more information on Style Rules, see The Dynamic Display.

Adding Embedded Data to Session Graphics Elements

Unlike the element characteristics specified with the current state properties like FilterId, color id, style id, and weight; Embedded Data and Keys, use an only-for-the-next-element concept. So if you set Embedded Data to a value, the data will be embedded on the next session graphics element added, but then will be reset. So, if you set the Embedded Data to a value, place a line, and then place a circle; only the line will have embedded data.

Embedded Data can be any text string you want to store on the element; however, if you use the t-a-v format, the embedded data will automatically be processed like a database record. The t-a-v format is very simple:

You specify a one or more records by starting with \t followed by the table name. Then for each attribute/value pair, add \a followed by the attribute name, and \v following by the attribute value. You can repeat the \a\v pairs for as many attributes as you need. If you need to represent more than one record, simply add another \t entry followed by a set of \a\v pairs. For example:


Would represent:

Table: Pole

Attr 1: Pole_Number=1234

Attr 2: Height=45

Attr 3: Class=1

Embedded Data is a very power tool for collecting attribute data along with graphics and can be processed in many ways. GTRead can read this information, and so can the automation layer in GTViewer and GTVx. GTViewer can export just embedded data (by table) as wells as export XML containing the both geometry and tabular information (including the embedded data). There is also a GTData tool called GTFormatInfo that can read a .GTG or .GTX file and export the embedded data in a user-specified format (like SQL Updates, CSV files, etc.).

Adding Keys to Session Graphics Elements

Keys are simply one or two 32 bit integer values embedded into the Session Graphics element. When an element is reviewed (with Attribute Info or through programmatic means), the keys on the element are retrieved and then the database associated with the element’s category is queried to find any tabular information with the same keys. This process can return one or more records from one or more different tables. For example, a Pole might have a Pole Table, a Work Order Table, and a Common Table; and the Work Order Table may have multiple records for the same pole.

Setting Keys works the same way as Embedded Data; setting the keys to a value only applies to the next element added.

A Session Category can use any of the existing database information associated with the GIS data; however, there turns out to be a more important use for keys in the Session Category. Keys are an easy way to manage the elements in the Session Category. If you assign a Session Category element a unique key, then you can manage that element with that key. It can be deleted, edited, or reviewed using this key (none of which may require the GIS database as keys normally do).

Group Elements

Group Elements are special elements that contain more than one element (sub-elements), but are treated as a single element. The group concept is generally simple, but it can seem complicated when Embedded Data and Keys are thrown in to the mix. A Group element contains one or more sub-elements; each sub element can have it own color id , weight, style id, and extended style; but filter id, embedded data, and keys are only allowed on the Group element itself. Nested Groups are not allowed (meaning you can add a group element as a sub-element in another group element).

Thursday, July 13, 2006

GTData version is Available

Version of GTData is available.

- FIX - GTUpdateGtg - Deleted elements in the update file were still being processed.

- CHG - GTUpdateGtg - If a delete item was defined with no filter, then any additional deletes for this item with a filter id will be ignored.

- FIX - GTShapeConv - The RangeFile was not being created for category seciton that had only regular shape element (not shape with hole, shapes that were over the maximum points, etc.).

- FIX - GTQuery - The Connectivity Query (Type 29) did not allow a FixedGid entry.

- FIX - GTQuery, GTExtract, GTPack - modified to support new modules for working with large .GTX files.

- NEW - GTTextQuery - MinCharacter entry added to specify minimum required number of character before text will be loaded.

- NEW - GTGetRecords - The Column entry can now support a list of columns (pipe delimited). The output will be a single value for column whose value is the result of appending all of the values in the specified columns together (with a space inserted between populated values).

- FIX - GTConv - Problem with shared cell definition with arcs.

- FIX - GTInterGtg - Was incorrectly reporting unfound Additional Attributes. If a defined AdditionalAttrName entry used an invalid attribute, it report the wrong attribute as being the undefined one.

- FIX - GTLabelGtg, GTIntersect - Characters in text with ids above 127 would sometimes cause problems.

- NEW - GTFormatInfo - HeaderFile and FooterFile entries are now optional.

- NEW - GTFormatInfo - TableFilter entry added to allow records to be filtered by table name.
- NEW - GTFormatInfo - Filter entry added to allow records to be processed or ignored depending on an attribute value appearing or not appearing in the Filter List. The FilterOmitFlag was also added.

- NEW - GTFormatInfo - Two new tokens are now supported: <%KEY1%> and <%KEY2%>

- NEW - GTTile1 - Now supports an Offset entry to allow files to be shifted independently according to their the embedded data.

- FIX - GTInterGtg - Did not tell the version in the output.

- FIX - GTQuery - Problems with prompt values greater than 255 character (the max limit). Will now provide a warning message and give a location of the record.

- FIX - GTShapeDbfConv - Fields with Pipes (|) are now cleaned to prevent problems with Tabular data export format.

- NEW - GTFormatInfo - Verbose mode added.

- NEW - GTInterGtg - now supports a AdditionalAttributesFromBothFeatures flag. If set to 1, Additional Attribute will be retrieved from both features creating the intersection.

- NEW - GTLabelGtg - now supports Mode=3 to define more than one label per element. The labels are fixed in size, and are controled with SpaceBetween and SpaceFromEnd entries using system unit values.

- NEW - GTRemap2 - Added to support remaping by element key.

Monday, July 10, 2006

Pocket GTViewer 5.0.x.15 is Available

Pocket GTViewer version 5.0.x.15 is now available.

----------- - 07/10/06

- FIX - Symbol to Text conversion (for edited symbols) did not account for the style scale if the height and length multipliers were default values.

- NEW - Info Exchange interface now supports LoadAddProp.

- NEW - Entries in the Additional Properties section of the .GTM file can now be split into multiple line (to overcome the 255 character limit). The Attribute value must be and there can be no blank lines between the split line and the continued line.

- NEW - SetState instruction will now accept a blank to clear the state value.

- NEW - ~PROMPT is now included in the exchange info to pass the last prompt message to the external application.

- NEW - ActivateCapture now supports "Feature".

- NEW - ActivateCapture now supports a RESEND_PREVIOUS option which will send the previous element information along with the current mode information.

- NEW - Hi-Res Toolbar images has been provided.

- NEW - Customizable toolbars have been added. Up to 5 customizable toolbar can now be defined in the .GTM file or addprop.ini.

Thursday, July 06, 2006

Custom Toolbars in Pocket GTViewer

Since version 1.0 of Pocket GTViewer released in 2000, the toolbar has been relatively consistent and fixed. There was an addition of the Raster toggle button in Version 3, but no other changes. The Yellow and Blue Star buttons always provided a small degree of customizability since they can be assigned to any external application, the GPS, Query, and Application dialogs. However, the 8 slots you get on standard Pocket PC or Window Mobile devices is very restricting and this limited number of slots is very difficult to make all users happy.

With version 5.0.x.15 of Pocket GTViewer, there are two major changes to the toolbar. First, new images have been provided specifically for Hi-Res devices. The standard toolbar images worked, but they became very small on a Hi-Res Device. The second major change is the support for up to 5 custom toolbars. These custom toolbar are defined in your .GTM file in the [Additional Properties] section or in an AddProp.ini file. The toolbar entries simply specify the Command to perform and an Image to use for each button on the toolbar. A few new commands have been added to facilitate this new feature even more. The Next Toolbar command can be used to jump to the next custom toolbar (you can have up to 5). So, if you put a button on your toolbar and associate it with the Next Toolbar command, you can scroll through up to 5 different toolbars; then it wraps around to the beginning. Currently, there are 55 different images to choose from for 40 different Commands (which mostly correspond to the menu items).

Let’s look at an example. The following screenshot shows a toolbar similar to the standard:

There are a few differences here from the traditional toolbar in Pocket GTViewer. The first icon looks like the Zoom command, but it is has been assigned to the Attribute Info command. The Zoom and Attribute Info commands on the toolbar were a little redundant anyway, so this is a way to customize the toolbar to get the most usability. The last button on the toolbar (three right facing arrow heads) has been assigned to the Next Toolbar command and pressing it will take you to the next toolbar as seen below:

The second toolbar still contains the Attribute Info/Zoom command at the beginning (since it is useful for all toolbars), but it contains all of the Drawing commands instead of the general list of commands. The second toolbar also contains the Next Toolbar command. The third custom toolbar is show below:

This toolbar contains all of the GPS commands, plus the Attribute Info/Zoom and a Fit. A special command has also been added to immediately start or stop GPS tracking without going through the normal GPS Tracking dialog. Pressing the Next Toolbar from the third custom toolbar will take you back to the first custom toolbar (since there were no other toolbars defined).

The customizable toolbars can also be used to make you external applications more recognizable. For example, the GT/Field icons (from the Desktop version of GT/Field) can be used instead of the Yellow and Blue Stars:

Another benefit of the customizable toolbars is the ability to add more than 8 buttons. You may wonder why this is important since only 8 buttons will fit on a screen. That is a good point, but with Landscape mode and differently shaped screens provided by newer devices, it is possible to fit more buttons on certain devices.

Wednesday, July 05, 2006

The ExternalApp Entry and Splitting lines in [Additional Properties]

The entries in the Additional Properties section of the .GTM file (or the addprop.ini file) have a limit of 255 characters. This may seem like a large limit (this is what we thought anyway), but there is indeed a common entry that can easily exceed this limit. The ExternalApp entry used by Pocket GTViewer to define external applications has the potential to be lengthy. Also, GT/Field for Pocket GTViewer is treated as an External Application to Pocket GTViewer and uses the ExternalApp entry as part of its integration. GT/Field has pretty quickly brought to light that 255 characters are not nearly enough for the ExternalApp entry.

First, let’s look at what the ExternalApp entry contains and see why it can grow beyond the 255 character limit.

App Name is the name that appears in the Applications list dialog in Pocket GTViewer.

Mode is the mode number specifying how to launch the external app (immediately, when a feature is selected, when a point is selected, with a GPS point, etc.).

External App Path is the path on the device to the external application.

Parameters specify any parameters for the external app. This parameter can be used to specify an eMbedded VB file when vbload.exe is used as the external app.

Filter specifies a list of comma delimited : pairs that can be selected when the Feature selection mode is used. For all other modes, this value should be set to . More on the different filter ranges in the a future posting.

Msg is the Prompt message you see in Pocket GTViewer when a feature, point, line, gps point, etc. is being captured. Once the capture is made, the external app is launched. The Msg value only applies to certain modes. For example, Launch Immediately does not use a prompt. If there is no prompt, the value should be set to .

The App Name is generally not very long and the mode is at most 2 characters. The Path to the external app can be several characters depending on the depth of the path; however, the %mainapppath% and %programpath% tokens can reduce the size some (as well as make the location generic). Parameters is rarely used with the growing popularity of .NET development (and the shrinking popularity of eMbedded VB). That leaves filter and msg.

If your external app deals with broad filters where you can include all filters in a category (like 2:*, 3:*, 999:*), then your filter string does not get very long. However, if you have many categories with many features and your external application needs to filter out specific components of a lengthy list of features, the filter string can easily grow to a size greater than 255 characters. GT/Field is a good example of an External App that can have a very lengthy filter if you use it to edit a large number of existing features (and can’t simply say all filters in a category).

Msg will never be too many characters because if it is too big, it won’t fit on the device’s screen. However, if you user 25 characters for your prompt, that is just fewer characters you can use for a filter.

With version 5.0.x.15+ of Pocket GTViewer, the problem of long ExternalApp entry is solved with a new entry for the Additional Properties section:

Any line in the [Additional Properties] section (as well as the addprop.ini) can now be split. Simply split the line and make a new entry called . The must be following by a pipe () which is not part of the split line.

An entry can be split as many times as you need as long as you do not have blank lines between the main entry and the continuation entries.

Tuesday, June 27, 2006

GTViewer 5.0.x.20 is Available

Version 5.0.x.20 of GTViewer is available.

----------------------- - 06/27/06

- NEW - Improvements to the Display Cancel mechanism (Right Mouse click during render).

- CHG - Update to the status bar progress messages.

- FIX - GT/Field did not correctly create Text element from Symbols when the SymbolAsText option was used.

- FIX - The Print Dialog's Force Black and White option was causing color fonts to display as mono-color fonts.

- CHG - Minor adjustments to roundoff error with font and symbol rendering.

- FIX - The .GTS session files did not correctly save Leader Line elements.

- NEW - GT/Field now supports:

ReadOnly property can be 1 or A (for all), E (for Edit), N (for New).

Required property can be 1 or A (for all), E (for Edit), N (for New)

List Type now uses the second proprety as the maximum history size: L0

GT/Field path and FilterString are now stored in extracts.

Captured_X and Captured_Y can be used as types with Point features.

Feature Definition and Picklist files can now be placed in sub-directories.

GTFieldAuditFile can be specified in the .GTM's Additional Properties.

GT/Field licensing has been added.

- FIX - GT/Field fixes:

Symbol to Text conversion (for edited symbols) did not account for the style scale if the height and length multipliers were default values.

GPS_X and GPS_Y are were not cleared for Point features.

Style paremeter in the Feature Definition files was defaulting to -1.

----------------------- - 06/01/06

- FIX - UpdateElement and DeleteSessionGraphicElement did not work correctly if the size of the element was 0 by 0 (no width and no height).

- FIX - DeleteSessionGraphicByKey and DrawSet2KeyLinkage did not work.

Thursday, June 22, 2006

The Pocket GTViewer Control for .NET Development

GTI announces a new development tool aimed at the handheld device market.

On the Desktop/Laptop platforms, GTViewer is our off-the-self viewing and analysis product. While GTViewer is easily extended with custom applications, GTI also offers the GTVx ActiveX control to provide an even greater degree of control over the development process. GTVx can be used to create standalone applications, or it can be embedded into your existing applications to provide GTViewer functionality wherever you may need it.

The same level of development control provided by GTVx is now provided for the handheld platforms (Windows Mobile 2003, Windows Mobile 2003 SE, and Window Mobile 5.0).

Pocket GTViewer (the off-the-shelf product for devices) provides a sophisticated interface for creating VB.NET or C# applications to extend its functionality. Our GT/Field product was developed using only this interface, and it successfully all requirements. However, users have wanted more control over this development process just as they did in the form of the GTVx control on the desktop. The key feature missing from the Pocket GTViewer interface was the ability to actually embed Pocket GTViewer into your own applications (rather than interfacing with Pocket GTViewer). This ability is now supported with the Pocket GTViewer Control.

The new Pocket GTViewer Control is a .NET control for Smart Device Applications and can be used with VB.NET or C#. While similar in concept to GTVx, the PGTVControl is a lightweight implementation geared specifically for handheld devices. It currently supports Visual Studio .NET 2003, and a Visual Studio .NET 2005 version will be supported soon. The first version of the control is a view only tool, but redline support will be available soon as well.

The control already supports a wide range of features:
  • NMEA GPS support
  • ECW Raster
  • Feature and Point Capture
  • Attribute Info
  • Display Filter
  • Queries
  • Pan
  • Zoom
  • Fit Extents

An example of the Pocket GTViewer Control in the Visual Studio .NET development environment:

Simply place a PGTV_Control on your form as shown above.

Very little code is required in your application to get the control running:

OpenFileDialog fileDlg = new OpenFileDialog();

fileDlg.Filter = "GTViewer files (*.gtx)*.gtx";

if (fileDlg.ShowDialog() == DialogResult.OK)
g_pgtv.OpenFile(fileDlg.FileName, "");


This C# example (VB.NET is very similar) illustrates how well the Pocket GTViewer Control integrates with Visual Studio. Most of the code here is getting the file name to open with a standard .NET OpenFileDialog. Invocation of the OpenFile and ActivateZoomMode methods in the Pocket GTViewer Control are the only lines needed to get a fully functional viewing component in your Windows Mobile application.

The final result will look like the screenshot below:

Tuesday, June 06, 2006


Blog postings have been a bit slow over the last few weeks, but this doesn’t mean software development has stopped. In fact, it means very much the opposite. This posting will be brief, but I will take some time to show off some of the new stuff.

GT/Field now runs on both GTViewer and Pocket GTViewer. GT/Field is a parameter driven add-on for GTViewer and Pocket GTViewer to facilitate the collection of data. Such data might be field inventory, pole or valve inspections, joint-use identification, GPS point collection or rectification, etc.

Data collection with GTViewer and Pocket GTViewer is not new. What makes GT/Field different is that it does NOT require any development or programming to use. Simply define what fields you want to capture for which features and you are ready to go.

GT/Field was developed first for Pocket GTViewer since the handheld device is an ideal platform for data collection; however, the need to collect data is just as important for GTViewer on laptops.

The following screenshots are showing test features, but hopefully they will illustrate the simplicity and effectiveness of the approach.

GT/Field for Pocket GTViewer

GT/Field for GTViewer