Friday, January 27, 2006

GTViewer version 5.0.x.10 is Available

Version 5.0.x.10 of GTViewer is available.

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

- FIX - The RasterFileList file was not trimming the filenames in the list and would not correctly identify the raster type if the filename had spaces at the end.

- NEW - ExternalSessionsOnly flag can be set in the Additional Properties section of a .GTM file to allow GTViewer and GTVx to only use .GTS session files with .GTX files and not use the internal session in the .GTX file.

- CHG - The New Session Dialog's Browse button will default to showing both .GTM files and .GTX files by default instead of just .GTM files.

- NEW - Save As now supports Extract files (.GTX) and will create a .GTS session file of the current session. The new session file will be external to the .GTX.

- NEW - Session Modified Indicator on the Status bar. The asterisk in the 3rd pane on the status bar indicates that the current session has been modified and the session will need to be saved. The session is modified by changing the view, display filters, or redlines.

- FIX - Right Mouse Feature selection (for Attribute Info) was not filtering out features whose category was turned off by thresholds.

Thursday, January 26, 2006

Justification Codes for Text and Symbols

The GTViewer data format supports justified display for both Text and Symbol elements. This functionality is sometime confusing because of the number of codes used to specify the justification instructions. This posting will help clarify these different codes.

  • 0 – Default (Bottom Left)
  • 1 to 99 – Ignored, same as default (Bottom Left)
  • 100 – Bottom/Left
  • 101 – Center/Left
  • 102 – Top/Left
  • 103 – Bottom/Center
  • 104 – Center/Center
  • 105 – Top/Center
  • 106 – Bottom/Right
  • 107 – Center/Right
  • 108 – Top/Right
  • 163 – Bottom/Left
  • 165 – Bottom/Center
  • 167 – Bottom/Right
  • 171 – Base/Left
  • 173 – Base/Center
  • 175 – Base/Right
  • 181 – Center/Left
  • 183 – Center/Center
  • 185 – Center/Right
  • 201 – Top/Center
  • 203 - Top/Center
  • 205 – Top/Right
The following diagram will show how codes 100 through 108 will affect a text element. The Red Circle is the Origin for the text element when draw for each of the justification codes:

The codes 163 through 205 are similar to the 100 through 108 series. The difference is that these value correspond to the Smallworld justification codes (plus 150). There is also the addition of the Base Line justifications (171,172,173) that adjust the origin to 1/3 from the bottom of the text box.

For Text Elements, the justification can be specified as part of the element or as a Style Rule. For Symbol Elements, the justification is always specified with a style rule.

Tuesday, January 24, 2006

Friday, January 20, 2006

The Mysterious AddProp.ini File - Part 2

Joey did a great job describing the origin and real-world use of the AddProp.ini file in a posting yesterday, and it happens that I ran across a another use today.

Similar situation: You have already generated a .GTX file and it's in use on a hand-held. Now you want to add raster files. You _could_ change the .GTM file to add raster data (as described in the trusty gtvconfig.doc) and then regenerate the .GTX file with GTPack, and copy it onto the SD card. Or... you could simply describe the raster files in AddProp.ini and place it on the hand-held. Here's how.

Suppose your .GTX file on the hand-held is on an SD Card in a folder called "City". Also suppose you have a set of backdrop aerial photography in .ECW raster files in a subfolder of "City" called "raster".

Make a text file called AddProp.ini that looks like this (where "+" means the pipe symbol (which has a hard time on this blog)):



Now copy this file over to the hand-held into the "City" folder.

Now start Pocket GTViewer, open the .GTX file, and the raster icon along the bottom of the display should let you toggle the raster display on and off. Voila!

Thursday, January 19, 2006

The Mysterious addprop.ini File

Most people are unaware of the addprop.ini file and how it can be used with GTViewer, GTVx, and Pocket GTViewer. The addprop.ini file is a feature originally intended for development and debugging, but it has found many uses in the real world. The .GTM file ends with a section called [Additional Properties]. This section can contain a variety of different entries (usually items that do not fit in other sections). You can look at the GTVConfig.doc to see a complete list of entries supported by the [Additional Properties] section, but here is a quick list:

Measure Charactistics

  • MeasureFactor
  • MeasurePrecision
  • MeasureUnitLabel
  • LatLongFlag
  • MeasureDegreeFactor

Menu Hiding

  • LocateXYMenu
  • EditPasscode

View Restrictions

  • MinZoomLevel

Default Symbol Definition

  • DefaultSymbolCharId
  • DefaultSymbolFont
  • DefaultSymbolMode
  • DefaultSymbolLengthMult
  • DefaultSymbolJustification
  • DefaultSymbolScale

Timeout Properties

  • ApplicationTimeout
  • ApplicationInactivityTimeout

Reference Point Properties

  • RPCol
  • RPStyle
  • RPWeight
  • RPPos
  • RPProp

Non-Category Raster File Definition

  • Raster
  • RasterPC

Session Link Definitions

  • SessionLink

GPS Indicator Properties

  • GPSIndicatorSize
  • GPSIndicatorWeight
  • GPSIndicatorColor
  • GPSHeadingColor
  • GPSRefHeadingColor

External App Definitions for Pocket GTViewer

  • ExternalApp
  • DefaultApp
  • AutoStartApp
  • ResetExternalApps
  • ExtAppFiles
  • AllowClearAll

Some of these entries apply only to the desktop versions (GTViewer and GTVx), some apply only to the handheld version (Pocket GTViewer), and some apply to all platforms.

Since Pocket GTViewer only reads Extract Files (.GTX), the entries that are specific to this platform (such as ExternalApp) cannot be changed. Originally, if you wanted to change one of these entries, you had to modify the .GTM file and re-extract the data to create a new .GTX file with the updated entries. While this procedure was a little effort, it was possible. On the support side here at GTI, if a user sent a .GTX file to illustrate a problem he or she was experiencing, there was not a way to modify the settings to see if they just needed to make a minor change to these entries. So, the addprop.ini file was introduced to provide a mechanism for changing the entries in the [Additional Properties] section in a .GTX file. If a file called addprop.ini is found in the same directory as the product (PGTViewer.exe) or in the same directory as the .GTX file being viewed, the contents of the addprop.ini file were appended to the [Additional Properties] section when the .GTX file is opened. If an addprop.ini file exists both with the .GTX file and with the product, the one with the .GTX file is always used first. So, the addprop.ini file can be used to easily modify these settings.

Another problem the addprop.ini file addresses is when a user has a set of .GTX files that were generated in the past, but now the user wants to take advantage of a new feature added to Pocket GTViewer or use a feature that was not previously being used (such as ExternalApp). The addprop.ini once again can be used to supplement the [Additional Properties] section without modifying any of the .gtx files.

The use of the addprop.ini file has grown beyond its original intended use. Many users use the addprop.ini file to manage all of their external applications and never include this information in their .GTM file.

Some of the entries in the [Additional Properties] section are now specifically for the addprop.ini file, such as ResetExternalApps. This entry will clear any ExternalApp settings that were already defined in the .GTX file and new entries can then be provided in the addprop.ini file.

Since the addprop.ini worked so well for Pocket GTViewer, the same functionality was added to GTViewer and GTVx.

Sessions 102 - New Feature

In a recent posting (Sessions 101), the many different aspects of sessions were reviewed. One key item it discussed was creating a session file (.GTS) from an Extract File (.GTX) instead of a .GTM file. Traditionally, the session for an Extract file (.GTX) has been stored internally (in the .GTX file along with the data), to keep the dataset and the session in a single file. Many users expressed the desired to keep their data as single Extract file to simplify data management, so the Session File (.GTS) was extended to work with a .GTX file as well as a .GTM file. With this change, multiple users could have their own session (or multiple session) with a single Extract File (.GTX file). This feature has worked very well with one exception; it is sometimes confusing to a user that they need to create a session from a .GTX file (with File/New) rather than just open it with File/Open (which will open the internal session). With the latest version of GTViewer (version 5.0.x.10) and GTVx (version 5.0.x.5), a new feature was added to make the process of using .GTS session files with a .GTX file easier and less confusing.

In the .GTM file (remember that a .GTX file is made from a .GTM file), you can add a new entry to the [Additional Properties] section called ExternalSessionsOnly. If this entry is set to 1, the internal session in a .GTX file will not be accessible to GTViewer or GTVx. If this option is set, there can be no mistake of opening a .GTX with it internal session instead of creating an external session. If the user opens a .GTX with File/New, it will simply create a new session and when the user exists, it will ask if they want to save it (just like it does when a .GTM file is opened).

Tuesday, January 10, 2006

GTData is Available

Version of GTData is available. This version includes 3 new utilities:
  • GT2Shape will convert a .GTG file to a setup of Shapefiles.
  • GTThesh will adjust the maximum display thresholds in a filter file (.flt) based on the average size of the graphics associated with each individual filter id.
  • GTCleanFlt will reset the custom setting in a filter file (.flt).
----------- - 01/10/06

- NEW - GTPack, GTExtract - now display an error message when using invalid or corrupt query files (.qry).

- NEW - GTThresh, GTCleanFlt, GT2Shape - New utilities have been added.

- NEW - GTShapeConv - Will now use a .shx file is present.

- FIX - GTShapeConv - Actual Range was not correctly displaying the range for certain elements types.

- CHG - GTShapeConv - Polygons now default to Shape Elements and Polylines now default to line or linestring elements. The ShapeFlag=0 will force polygons to lines and ShapeFlag=1 will force linesstrings to shape element (closing if necessary).

- NEW - GTShapeConv - TextFlag will now work with Polygon and Polyline types. The first point is used as the text origin.

- NEW - GTShapeConv - Will now assume the DbfFilename entry is the same as the ShapeFilename entry with .dbf instead of .shx.

- NEW - GTShapeDbfConv - Will now format Float type to be regular number (no scientific notation) and Date types according to the machines current locale.

GTI's 10 Year Aniversary

GTI is celebrating its 10 year aniversary.

Press Release

Monday, January 09, 2006

GTVx 5.0.x.4 is Available

Version of GTVx is available.

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

- FIX - The Query Locate was not considering style rules that might alter the location of the element (such as a long piece of text that is center or right justified).

- NEW - The OptionalFlag has been added the Category sections of the .GTM file.

- FIX - The ExportSessionGraphics and ExportSessionGraphicsEx methods now will verify that an existing file is deleted before a new file is written. On Novell servers, the delete happens after the writting of the new file.~

GTViewer 5.0.x.9 is Available

Version of GTViewer is available.

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

- FIX - The tabs on the GPS Info dialog did not show the correct text from the resource file.

- FIX - The Query Locate was not considering style rules that might alter the location of the element (such as a long piece of text that is center or right justified).

- NEW - The OptionalFlag has been added the Category sections of the .GTM file.

- FIX - The ExportSessionGraphics and ExportSessionGraphicsEx methods now will verify that an existing file is deleted before a new file is written. On Novell servers, the delete happens after the writting of the new file.

- NEW - New Doc Object Methods:
  • boolean ActivateInfoDialog(long mode, long categoryId, long offset);
  • boolean GetAttributeData(long mode, long dataId, VARIANT* linkageList, long linkageCount, VARIANT* attrList, VARIANT* valueList, long* count);