Monday, August 23, 2010

GTViewer version 9.0.1.14 is Available



GTViewer version 9.0.x.14 is available.


-----------------------
09.00.00.14 - 08/23/10
-----------------------

- NEW - #6384 - StyleName Map and Override Color/Style/Weight/Extended Style functionality has been added.

- FIX - #6390 - Printing raster to a large scale printer had problems if the amount of information sent to the printer were too great. Print will now slice up the raster into smaller chunks before sending it.

- NEW - #6394 - ActivateStyleManager Method has been added.

- NEW - #6395 - Set and GetDataProperty now supports AttributeInfoEditStyle.

- NEW - #6397 - GTS file format expanded to support the Header Flags and Style Definition Id.

- FIX - #6398 - Attribute Info Element tab was not show embedded styles.

- NEW - #6404 - GetHighlightList method added.

- FIX - #6406 - Command-Line Query parameter did not use the Keep In View flag, so it would not set a reference point from the command-line.

- NEW - #6407 - CenterReferencePoint command has been added to the ToolBoxes.

- FIX - #6408 - Command-Line startup would reset the Show Indicator, Indicator Style, and Track In View settings to their default values.

- NEW - #6409 - The ScaleMode parameter for Redline Symbols is now supported. If set to 0, it will use the Length and Height parameter for the symbol size. If set to 1, it will use the Height value as a text size (similar to the Text placement dialog).

- NEW - #6410 - Additional logging added to the Sym and SessionLink entries in the Additional Properties section.

- NEW - #6413 - The ScaleMode parameter for Session Links is now supported. If set to 0, it will use the Length and Height parameter for the symbol size. If set to 1, it will use the Height value as a text size (similar to the Text placement dialog).

- NEW - #6414 - Options/Settings now includes a Startup Mode that can be set to Zoom, Attribute Info, or Pan.

- FIX - #6417 - The -Track option would cancel out any -Query option on the command line.

- NEW - #6418 - The -GpsOn and -GpsOff Command-Line options have been added

- FIX - #6428 - Data Range now defaults to a valid range if no range is specified in the .GTM file.

- NEW - #6430 - The -SetRefPoint flag has been added to the command-line to always place a reference point when using the -query flag.

- NEW - #6435 - FeatureTooltipMaximumZoom and FeatureTooltipMinimumZoom have been added as equivalents to FeatureTooltipMaximumThreshold and FeatureTooltipMinimumThreshold.

- FIX - #6437 - Startup Mode did not always work for Zoom Mode.

- NEW - #6438 - Default Favorite functionality added.

- NEW - #6439 - The -fav and -nofav command-line options have been added.

- FIX - #6440 - Clear Gps Reference Point did not set the document as modified so a session would not be saved if that were the only action made.

- NEW - #6441 - Home button will now activate Default Favorite if available.

- FIX - #6442 - Range Mask could obscure the view at very low zoom levels.

- FIX - #6446 - F5 will now perform a refresh view.

- FIX - #6447 - Problem with Toolbox after a Detail windows is closed.

- NEW - #6448 - The Control Click will now work in Zoom mode and Pan mode like it does in Attr Info mode bringing up a detail if available at the point.

- NEW - #6449 - Shift Pan mode has been added to Attr Info Mode and Zoom Mode.

- FIX - #6450 - Disclaimer dialog now delayed until after GTViewer has come up. This change prevents the chance of the Disclaimer showing before GTViewer.

- NEW - #6451 - F4 will now close all non-modal dialogs.

- FIX - #6454 - A Custom Attr Tab with the same name as another tab for a feature will cause problems. Now, if the Custom Attr Tab name is not unique, it will log an error message and ignore the custom attr tab.

- NEW - #6457 - If an Attribute Info dialog is closed, its cooresponding element will be unhighlighted if the element's view is still valid.

Thursday, August 12, 2010

GT/Field Pro version 9.0.0.2 is Available



GT/Field Pro version 9.0.0.2 is available.

-----------
09.00.00.02 - 8/12/10
-----------

- FIX - #6422 - Post was counting Device actions for action count.

- FIX - #6425 - Error Message was incorrect for Post Copy Failure.

-----------
09.00.00.01 - 5/13/10
-----------

- FIX - #5870 - Pressing the OK button in the Preset Dialog would cause a problem if no item was selected.
- FIX - #6327 - Compiled as x86 to run properly on 64 bit machines.

- FIX - #6328 - GTV Control components updated to version 9008.

GTV .NET Control for Windows version 9.0.0.11 is Available




The GTViewer .NET Control for Windows version 9.0.0.11 is Available.

------------
09.00.00.11 - 08/10/10
------------

- FIX - #6374 - for the ColorValue with Layered Symbol Definition did not work correctly.
- FIX - #6378 - Composite Group elements (extended Style id = 1, 2, or 3) were not correctly handling having no Style Rule.
- CHG - #6382 - All default Stroke Angles changed from 15 to 5 degrees.

- FIX - #6426 - Data Range now defaults to a valid range if no range is specified in the .GTM file.
- FIX - #6431 - MajorUnit, MinorUnit, and MinorPerMajor did not default to the MU, SU, and 10 as they do in GTViewer.
- FIX - #6432 - CoordinateReadoutMode and CoordinateReadoutPrecision were not defaulting to the same values as GTViewer. CoordinateReadoutMode now defaults to 2, and CoordinateReadoutPrecision now defaults to 1.

------------
09.00.00.10 - 05/25/10
------------

- FIX - #6341 - MaxRecordsReturned was allowing 1 more record than the specified value to be returned.
- NEW - #6345 - MaxRecordsReturned can now be defined in the Additional Properties section and the addprop.ini.
- FIX - #6347 - InitializeQuery was always using the Data Property MaxRecordsReturned value instead of the value passed in. It should only use the Data Property if the value passed in is 0.

------------
09.00.00.09 - 05/18/10
------------

- NEW - #6334 - Doc and View limit information is now available as DocumentLimit, ViewLimit, AvailableDocuments, AvailableViews.
- CHG - #6337 - Maximum Document Limit has been increased from 5 to 20. Maximum Views per Document Limit has been increased from 10 to 20.

Tuesday, August 10, 2010

GT/Field for Windows Mobile version 9.0.0.1 is Available



GT/Field for Windows Mobile version 9.0.0.1 is available.

-----------
09.00.00.01 - 08/10/10
-----------

- FIX - #6416 - Post would always say no Post Actions defined.

- CHG - #6419 - CameraCapture functionality extracted out of main assembly.

- FIX - #6420 - Post was incorrectly processing Desktop actions.

- FIX - #6421 - Post was not processing Device actions.

- FIX - #6423 - Cancel on Post dialog did not work.

- FIX - #6424 - Error Message was incorrect for Post Copy Failure.

Sunday, August 08, 2010

PGTV .NET Control version 9.0.0.6 is Available



The PGTViewer .NET Control for Window Mobile version 9.0.0.6 is available.

------------
09.00.00.06 - 08/08/10
------------

- FIX - #6375 - for the ColorValue with Layered Symbol Definition did not work correctly.
- FIX - #6379 - Composite Group elements (extended Style id = 1, 2, or 3) were not correctly handling having no Style Rule.
- CHG - #6383 - All default Stroke Angles changed from 15 to 5 degrees.

------------
09.00.00.05 - 05/25/10
------------

- FIX - #6342 - MaxRecordsReturned was allowing 1 more record than the specified value to be returned.
- NEW - #6346 - MaxRecordsReturned can now be defined in the Additional Properties section and the addprop.ini.
- FIX - #6348 - InitializeQuery was always using the Data Property MaxRecordsReturned value instead of the value passed in. It should only use the Data Property if the value passed in is 0.

------------
09.00.00.04 - 05/18/10
------------

- NEW - #6335 - DocumentId and ViewId property were added to match the GTV Control.

- NEW - #6336 - Doc and View limit information is now available as DocumentLimit, ViewLimit, AvailableDocuments, AvailableViews.

Friday, July 23, 2010

GT/Metadata Explorer version 1.0.0.35 is Available



Version 1.0.0.35 of the GT/Metadata Explorer is available.

-----------
01.00.00.35 - 07/23/10
-----------

- NEW - #6400 - GDO_Attribute attribute added to the tabular view for the Geometry Info dialog.

- FIX - #6402 - Copy lists to clipboard was not getting all of the data.

- NEW - #6403 - Current connection is now shown on title bar.

GTech Loader version 8.0.0.19 is Available



GTech Loader version 8.0.0.19 is available.

-----------
08.00.00.19 - 07/23/10
-----------

- FIX - #6392 - Additional Join clause added in #6337 was taken out.

- FIX - #6401 - Legend filter expression is now enclosed in parentheses as well as the Additional Record Filter.

Saturday, July 10, 2010

GTViewer version 9.0.x.12 is Available



GTViewer version 9.0.x.12 is available.

-----------------------
09.00.00.12 - 07/10/10
-----------------------

- NEW - #6362 - The -q and -p command line options have been added to support performing a query when the document is opened or on an open session.

- FIX - #6363 - Command-Line parameters did not like extra spaces between parameters on an active launch.

- NEW - #6364 - Toolboxes now support the GpsTracking action which will toggle GPS tracking on or off.

- NEW - #6365 - The Tool/Options Scale Increment can not be set to 0.5. Previously, 1.0 was the lowest value.

- NEW - #6370 - The Contains token is now supported by the Display Toggles so that you can turn on or off items by filter names that contain a specified string.

- FIX - #6372 - for the ColorValue with Layered Symbol Definition did not work correctly.

- FIX - #6376 - Composite Group elements (extended Style id = 1, 2, or 3) were not correctly handling having no Style Rule.

- CHG - #6380 - Default Stroke Angle for Long Arcs (Type 105), 3 Point Arcs (Type 110), and Ellipses (Types 106 and 206) has been changed to 5 degrees.

Tuesday, July 06, 2010

GTech Loader version 8.0.0.18 is Available



GTech Loader version 8.0.0.18 is available.

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

- FIX - #6352 - Provider version not shown correctly.

- CHG - #6367 - The Where clause in the SQL for Graphics processing now includes a G3E_CNO expression to force the records to only be for the component being processed.

- NEW - #6368 - LookupFunct has been added to the expression evaluation functionality. This item has been aded to support more complex expression in the Filter and Record Filter expressions.

-----------
08.00.00.17 - 05/20/10
-----------

- FIX - #6326 - GIS: tag will now encode comma and pipe characters in the values.

- FIX - #6338 - When an Attributes Format is defined by Cno and not Vno, the formatting was not applied. Changed to check for Vno first, if not found then by Cno.

-----------
08.00.00.16 - 02/18/10
-----------

- FIX - #6217 - The Global Properties' Apply to All did not work for the Empty Only unchecked.

- FIX - #6218 - The OK button on the Report dialog did not work.

- CHG - #6233 - All geometry SQL queries will now use Distinct.

Monday, June 14, 2010

TechEd 2010 in New Orleans


TechEd 2010 was held last week in New Orleans. There seemed to be a big turn out this year in the Big Easy, and the conference provided some good information.

Microsoft was definitely pushing the Cloud this year with its Windows Azure, SQL Azure, and AppFabric products. All looked interesting, but it was never clear to me how much it costs to have Microsoft host your apps and database.

Another topic of interest to me was Windows Phone 7 (WP7). Unfortunately, it is not capable of supporting sophisticated applications like Pocket GTViewer in its October debut. I wrote about what is missing from WP7 in another post. While we (GTI) should easily be able to interface with GTWeb from a WP7 device using a slick Silverlight app, WP7 is not capable of running Pocket GTViewer or GTField for Windows Mobile.WP7 cannot access large data files (such as a .gtx on a SD card), and it can’t use native code (our raster libraries are native as well as a good chunk of code shared with the desktop version of GTViewer). There are also issues with having to load apps through the Microsoft Marketplace, no interaction with the desktop via RAPI, and no custom TrueType font support. Microsoft admitted that WP7 was a rush job so that they could to get it to the market this year and may have more essential functionality rolled into it with later versions. Nevertheless, it is a radically different platform from Windows Mobile and may very well open up a door to new and different applications (while at the same time closing the door to applications we are using today).

On the pure development front, there are many good things that I saw like the Task Parallel Library that will make getting the most out of multi-core processors easier. Also, Silverlight 4, Expression Blend 4, and Visual Studio 2010 finally look good enough in respect to WPF to leave Windows Forms behind (at least for new development).

Mark Russinovich gave an excellent presentation on the Unexplained such as slow running machines and crashes. Anyone with unexplained machine problems would have benefited from this presentation (search his blog for some of the same information).

Next year, TechEd 2011 is in Atlanta.

Thursday, June 03, 2010

GTViewer version 9.0.0.11 is Available



GTViewer version 9.0.1.11 is available.

-----------------------
09.00.00.11 - 06/03/10
-----------------------

- FIX - #6315 - Scaling for Prints was not correct when the view was near the same size for height and width.

- NEW - #6316 - PrintViewRange added to Set/GetPrintProperties. Allows a comma delimited computed coordinate range to be specified for the print view range.

- NEW - #6317 - UserRangeMaskAsPrintViewRange added to Set/GetPrintProperties. Set set to 1, it will use the Range Mask as the Print View range.

- FIX - #6322 - Fixes to the UpdateElement method using the UpdateElementSetLinkage instructions. Problem introduced with #6312.

- NEW - #6343 - MaxRecordsReturned can now be defined in the Additional Properties section and the addprop.ini.

- NEW - #6357 - Element Tab will show font name in Style Info sections.

GTVX version 9.0.0.3 is Available



Version 9.0.1.3 of GTVx is available.

-----------------------
09.00.00.03 - 06/03/10
-----------------------

- NEW - #6318 - PrintViewRange Print Property can now be reset by setting the value to an empty string.

- NEW - #6319 - UserRangeMaskAsPrintViewRange added to Set/GetPrintProperties. Set set to 1, it will use the Range Mask as the Print View range.

- FIX - #6321 - Fixes to the UpdateElement method using the UpdateElementSetLinkage
instructions. Problem introduced with #6312.

- NEW - #6344 - MaxRecordsReturned can now be defined in the Additional Properties section and the addprop.ini.

- NEW - #6358 - Element Tab will show font name in Style Info sections.

Monday, May 31, 2010

Geometry Info in the GT/Metadata Explorer

With version 1.0.0.34 of the GT/Metadata Explorer, a new feature has been added to the Find Feature tab to show detailed information about feature's geometry. The Find Feature tab already provided commands for Attribute Info, Style Rule Info, Connectivity Search, and Ownership Search for any feature found using an Attribute Query, Find by FID Query, or a Predefined Query. The Geometry Info command finishes off this set of commands for getting detailed information about a feature.


By selecting a feature in the query results and pressing the Geometry Info button, all of Tabular geometry information for each component associated with the selected feature as well as a graphic preview will be shown. The Geometry Info dialog provides a split view with the Preview on the top and the Tabular Information on the bottom. Selecting a row in the tabular data will highlight the associated graphics in the preview area in red.


If the tabular row contains a Composite Line, Composite Polygon, or Collection, all of the child records will be highlighted in both the tabular view and the preview.


For features with multiple graphic components, all geometries will be shown in the preview. A checkbox appears on the first line of each component in the tabular view. By default, all of the checkboxes will be checked, and all components are shown in the preview. You can click on the checkboxes to hide or show any of the components. The All On and All Off buttons at the bottom left corner of the dialog will check or uncheck all of the components with one click.


Point geometries (Symbols and Labels) are represented as hollow circles with a smaller point at both the origin and another point showing the orientation of the point.

GT/Metadata Explorer version 1.0.0.34 is Available



Version 1.0.0.34 of the GT/Metadata Explorer is available.

-----------
01.00.00.34 - 05/28/10
-----------

- FIX - #6351 - Provider version not shown correctly.

- NEW - #6353 - Description or User name is show in the status box in the Successful or Unsuccessful connection status.
- NEW - #6354 - If only one record is returned with a Find Feature Query, the row is automatically selected.
- FIX - #6355 - Composite Lines and Polygons will now show gaps with a dashed gray line.

- FIX - #6356 - Connection Tab will now resize to fit the form after resizing.

-----------
01.00.00.33 - 05/26/10
-----------

- NEW - #6339 - Geometry Info has been added to the Find Feature tab.

- FIX - #6340 - When the Find By FID tab is selected, the search box now gets focus.

- FIX - #6349 - Initial connection was slow when GetAttributeEntry method tried to get an empty Ano value.
- NEW - #6350 - Find By FID now remembers the last 25 searches.


Wednesday, May 19, 2010

Coordinate Factors – What are They? How Do You Set Them?

The topic of Coordinate Factors is often raised and until this post there has not been a single good description of what they are and how you should set them. Most users just accept these 6 magic numbers that were provided to them the first time their data was converted and don’t give them another thought. However, if your data changes its coordinate projection, you acquire data from another area, or you simply deal with many different datasets on a regular basis, it may be helpful to have a better understanding of how Coordinate Factors work.

The Coordinate Factors are 6 numeric values defined in the [General Info] section of the .GTM file using the following entries:
  • CoordinateFactor1X
  • CoordinateFactor1Y
  • CoordinateFactor2X
  • CoordinateFactor2Y
  • CoordinateFactor3X
  • CoordinateFactor3Y

The Coordinate Factor values are used to convert Real-World Coordinates (sometimes referred to as Computed Coordinates) to GTViewer’s Internal Coordinates (sometimes referred to as System Coordinates) and vice versa. Real-World Coordinates are coordinates in the data’s native coordinate system, such as State Plane, Latitude/Longitude, UTM, etc. These values are usually double precision floating point numbers. GTViewer’s internal coordinates are stored such that they require less storage space in the graphic files (.gtg) and the spatial index files (.gtn). Instead of storing coordinate values as double precision floating point values (which are 8 bytes each), they are instead stored as an unsigned 32 bit integers (which are 4 bytes each). This change of type brings an immediate 50% saving in the data size; however, the internal coordinate values no longer reflect their real-world positions. To get around this problem, the Coordinate Factors provide the necessary information to restore the internal coordinates to real-world coordinates.

There are really only two places where the effects of the Coordinate Factor values can be seen in GTViewer: the Coordinate Readout on the status bar and the GPS Functionality. Without the Coordinate Factors, the coordinate readout on the status bar would show GTViewer’s internal coordinate values which are likely meaningless to the users. With properly configured Coordinate Factors, the readout will show Real-World coordinates. The GPS functionality must be able to convert the Latitude/Longitude coordinate it gets from the GPS Receiver to GTViewer’s internals coordinates so that the GPS Indicator can be drawn at the right position. GTViewer’s coordinate transformation routines will convert points from Latitude/Longitude to one of the many Real-World coordinate projection systems it supports, then the Coordinate Factors are used to take the real-world coordinates to GTViewer’s internal coordinates system.

To understand how the Coordinate Factors work, there is some simple math involved. The Coordinate Factors are the variables used in the following formulas to convert Real-World coordinates to GTViewer’s internal coordinates:

GTViewerX = ( RealWorldX + CoordinateFactor1X) * CoordinateFactor2X + CoordinateFactor3X

GTViewerY = ( RealWorldY + CoordinateFactor1Y) * CoordinateFactor2Y + CoordinateFactor3Y

To convert GTViewer internal coordinates back to Real-World coordinates, the above formulas are simply rewritten as:

RealWorldX = ( GTViewerX – CoordinateFactor3X) / CoordinateFactor2X – CoordinateFactor1X

RealWorldY = ( GTViewerY – CoordinateFactor3Y) / CoordinateFactor2Y – CoordinateFactor1Y

It may not be obvious how the Coordinate Factors should be set just by looking at the formulas above, but the goal is simple. The coordinate factors are set so that any point in the dataset (Real-World coordinates) will map to a point whose X and Y are both unsigned (positive) 32 bit integer whose range is 0 to 4,294,967,296. There are many ways to figure out what the Coordinate Factors should be to meet this goal, and I will go through the simplest approaches below.

Think of GTViewer’s coordinate space as a window whose lower left is always (0,0) and whose upper right is always (4294967269,429967296). This coordinate space is very large even if it is somewhat smaller that a double precision floating point coordinate space. To map the real-world coordinate values into this window, we simply adjust the coordinate factors so that the real-world points are properly scaled and shifted.

The Coordinate Factor X2 and Y2 are the multipliers (which will scale the data), so they are used to get the precision you need for the GTViewer data. With Latitude/Longitude data, you need around 6 decimal places, so you can set the X2 and Y2 to 1,000,000. Then when the Real-World X or Y is multiplied by the X2 or Y2 Coordinate Factors, you will get 6 of the digits after the decimal place as part of the number. If your data is in Feet or Meters, then can you set the X2 and Y2 to 100 or 1000, which means that you will get precision to 100th or 1000th of a foot or meter.

Latitude/Longitude Example:

Real-World X=-86.4664839 (Longitude)
Real-World Y=34.6550175 (Latitude)

To preserve 6 decimal places, we set the X2 and Y2 Coordinate Factors to 1,000,000.

GTViewerX = -86.4664839 * 1000000 = -86466484
GTViewerY = 34.6550175 * 1000000 = 346550175

The Multipliers preserve the precision when the values are converted; however, in the example above, the GTViewerX value is negative. The X1/Y1 and the X3/Y3 Coordinate Factors are the Shift values and come in here to move the data back into the positive space. It is also possible that the GTViewer coordinate values may exceed the 4,294,967,296 maximum after the Multipliers are applied, so the Shift values can also be used to move the data back down into the desired coordinate space.

The difference between the X1/Y1 and the X3/Y3 Coordinate Factors is that one is applied before the Multipliers and the other is applied after the Multipliers. This difference also means that the X1/Y1 Coordinates factors will be in Real-World units, while the X3/Y3 Coordinate Factors are in GTViewer’s System units. It generally doesn’t matter if you use the X1/Y1 or the X3/Y3, and you would rarely use both at the same time.

For the Latitude/Longitude example it is more straight forward to use the X1/Y1 since they are in real-world coordinate units (degrees). We know that Latitude has a range of -90 to +90 and Longitude has a range of -180 to +180. In both cases, there can be negative values, and the X1 and Y1 Coordinate Factors need to account for possible negative values. In a meticulous world, we would simply say that X1=90 and Y1=180, and we would be guaranteed to have positive values before the multipliers are applied and the resulting values would always be positive. In practice, it is good to have a little buffer around the data and to prevent confusion on which Coordinate Factors needs to be 90 and which one needs to be 180, I use 200 for both X1 and Y1. The X3 and Y3 Coordinate factors are not needed and can be set to 0. So, for Latitude and Longitude data, the formulas look like this:

GTViewerX = ( RealWorldX + CoordinateFactor1X) * CoordinateFactor2X + CoordinateFactor3X

GTViewerX = ( -86.4664839 + 200) * 1000000 + 0

GTViewerX = 199999914



GTViewerY = ( RealWorldY + CoordinateFactor1Y) * CoordinateFactor2Y + CoordinateFactor3Y

GTViewerY = (34.6550175 + 200) * 1000000 + 0

GTViewerY = 234655018

The Converted Coordinates meet the criteria of being between 0 and 4294967296 and we preserve 6 decimal places of precision from the original values. It is a good idea to test the extreme values (lat: -90, long:-180) to ( lat:90 to lon: 190) through the formulas to make sure they still fit in the GTViewer coordinate space, but for brevity I will omit that from this posting.

Since most user data is probably in a State Plane coordinate space or similar, I will go through the process for determining the Coordinate Factors in this case as well. The Real-World Coordinates are generally in Feet or Meters and we typically do not need more than 2 or 3 decimal places for precision, so the X2 and Y2 Coordinate factors can be set to 100 or 1000. If your data range is positive, you may not need an X1/Y2 or X3/Y3 to shift the data. We can mathematically compute the perfect Multipliers and Shift values to maximize the amount of the GTViewer coordinate space, but this extra work usually causes problems in the long run. Just make sure the values are positive and there is a little buffer around the data. It is a good idea to know the approximate range of your dataset in Real-World coordinates. If you have any negative values, then you will have to shift the data into the positive space by setting X1/Y1 to at least the absolute values of the smallest negative value (plus a little more for a buffer). If your highest values after the Multiplies are applied are greater than the 4,294,967,296, then you can set your X1/Y1 or X3/Y3 values to a negative value to brings the values under the limit. This description is vaguer than my description for Latitude/Longitude data, but there are simple tests to see if your Coordinate Factors are good. If you look at the data in GTViewer and the data “wraps” around to the other side, then the data needs to be shifted.

The first example below shows the data with the Coordinate Factors properly set:


The following example shows data where the coordinates have negative values and the data is wrapping around from the left to the other side of the design plane. The data needs to be shifted to the right, so the X1/Y1 need to be set to higher values.


The following example shows where the data has exceeded the 4,294,967,296 maximum and is wrapping around from the right to the other side of the design plane. The data needs to be shifted to the left, so the X1/Y1 need to be set to lower or negative values.



While the X2 and Y2 multipliers are usually not a problem, there is a very specific “look” to the data when the Multiplier are set too low:

Using Coordinate Factors in the GTViewer FME Writer

Wen using the FME Writer for GTViewer data, you are required to set the coordinate factors in the Destination Parameters. These Coordinate Factors work exactly as described above; however, they are used as part of the conversion process.


When FME gets ready to write the GTViewer data as output, it has Real-World Coordinates (in the Coordinate System set for the destination). The Coordinate Factors are then applied to the Real-World coordinates to get GTViewer internal coordinates. Many users have asked why you have to set these values with FME. It is certainly possible get the range of the data and use this information to compute good values for the Coordinate Factors. However, there are many draw backs to making this part automatic:

  • Setting the coordinate factors is a one-time thing, so expending a lot of computation effort to set them each time the data is converted is not practical.
  • All of the data would have to be processed to get the range, then processed again for the conversion.
  • Data is notoriously bad. One stray feature would corrupt the range and create a bad set of Coordinate Factors.
  • You don’t want the Coordinate Factors to change from one run to the next. Adding new data to a dataset could change the range which would change the Coordinate Factors. Then data from previous runs and redlines would not overlay with the current data.

Using Coordinate Factors with Microstation/IGDS Data

Working with Microstation/IGDS data has a few interesting quirks that can be taken advantage of if you know what to do. A DGN file is also bound by a 32 bit integer Design Plane. However, the Global Origin concept is used to specify where in the Design plane (0,0) occurs allowing negative values to be used. By default, the global origin is in the middle (2147483648,2147483648) which allows the design plane to have a range of something like (-2147483648,-2147483648) to (2147483648,2147483648). The X3/Y3 Coordinate Factors can be set to 2147483648 to compensate for the origin. If the Global Origin is set to a specific location, then Coordinate Factors must reflect this configuration. GTData contains a utility called GTGetOffset that will attempt to get global origin info as well as the UORs per master unit from a DGN File and generate the CoordinateFactor entries for the .GTM file. While this utility is not always correct (depending on the configuration of the data), it can be very useful.

Thursday, May 13, 2010

PGTV .NET Control version 9.0.0.3 is Available



The PGTViewer .NET Control for Window Mobile version 9.0.0.3 is available.

------------
09.00.00.03 - 05/13/10
------------

- FIX - #6331 - Opening and closing files with certain modes active would cause problems when the modes were deactivated withouth the file available.
- FIX - #6332 - Measure Computation was incorrectly handling the MeasureFactor and was not handling the MeasureDegreeFactor.

------------
09.00.00.02 - 05/11/10
------------

- FIX - #6312 - Group element with sub-elements containing linkages or embedded
ata were not handled correctly, especially if the the group itself did not have a linkage or embedded data.
- FIX - #6313 - Stroking arcs with angles greater than 2*Pi would cause problems.

- FIX - #6324 - ViewUpdate Event was sending the wrong value for xHigh.

- CHG - #6325 - The Maximum number of Filter Ids per category has been increased from 2000 to 2500 to match the desktop version of the control.

------------
09.00.00.01 - 04/02/10
------------

- NEW - #6277 - GetDataMonitorItemInRange method has been added.

- FIX - #6282 - Capture Area and Capture Line modes will now accept a right mouse button to finish the action if the required number of points have been provided.

GTV .NET Control Version 9.0.0.8 is Available




The GTViewer .NET Control for Windows version 9.0.0.8 is Available.

------------
09.00.00.08 - 05/13/10
------------

- FIX - #6329 - Opening and closing files with certain modes active would cause problems when the modes were deactivated without the file available.
- FIX - #6330 - Measure Computation was incorrectly handling the default MeasureFactor and was not handling the MeasureDegreeFactor.

------------
09.00.00.07 - 05/11/10
------------

- FIX - #6309 - The coordinate factors did not default to the system coordinate standard values if they were not defined in the .gtm file.
- FIX - #6312 - Group element with sub-elements containing linkages or embedded data were not handled correctly, especially if the the group itself did not have a linkage or embedded data.
- FIX - #6313 - Stroking Arcs with angles greater than 2*Pi would cause problems.

- FIX - #6323 - ViewUpdate Event was sending the wrong value for XHigh.

------------
09.00.00.06 - 04/02/10
------------

- NEW - #6262 - TrueType font support added to UDLS rendering.

- CHG - #6273 - GetFeaturesInRange was not considering element whose category did not have a data id defined.
- NEW - #6275 - VewUpdated event added.

- NEW - #6278 - DM_GetItemsInRange and DM2_GetItemsInRange methods have been added

- FIX - #6279 - Finish button was not enabling for CaptureMode.

- NEW - #6280 - Capture_Rectangle mode added to the ActivateCaptureMode method and a corresponding RectangleCaptured event has been added.

- NEW - #6282 - Capture Area and Capture Line modes will now accept a right mouse button to finish the action if the required number of points have been provided.

------------
09.00.00.05 - 03/10/10
------------

- FIX - #6256 - Blocking added to all DM_ and DM2_ methods, Feature Tooltip processing, Data Monitor Tooltip processing, and view rendering.

------------
09.00.00.04 - 03/09/10
------------

FIX - #6258 - Fixes to the P/Invoke signatures used by the Control.

------------
09.00.00.03 - 03/08/10
------------

- FIX - #6252 - Changes to the Feature Tooltip and Data Monitor Event firing mechanism to skip if any other mouse action is occurring.
- FIX - #6253 - Raster Categories were not getting skipped during the rendering process.

- FIX - #6255 - DeleteIndicator was returning 0 for invalid view, should return -1.

------------
09.00.00.02 - 02/08/10
------------

- FIX - #6181 - The MeasurePrecision data property was not spelled correctly. MeasurePrecision and MeasurePrecison are both accepted now.
- NEW - #6187 - Get Elements in Range functionality has been optimized.

- FIX - #6189 - MeasureFactor defaults back to -1.

- FIX - #6190 - MeasureFactor can be set to -1 with SetDataProperty.

- FIX - #6199 - Adjustments to the FeatureTooltip functionality.

- FIX - #6200 - Attached views did not inherit the parent's Feature Tooltip properties (FeatureTooltipmaximumThreshold, FeatureTooltipMinimumThreshold, FeatureTooltipOmitBlankValues).

- FIX - #6201 - If a Feature Tooltip label is blank and the value is blank, then the attribute is skipped.
- NEW - #6204 - GetFeatureTooltipInfo method has been added.

- FIX - #6205 - GPS_IndicatorMode was not being read from the .gtm file.

------------
09.00.00.01 - 12/14/09
------------

- FIX - #6135 - Prioritized Arcs, Ellipses, and Circles were not correctly rendering.

- NEW - #6139 - StyleDisplayThreshold, WeightDisplayThreshold, PriorityDisplayThreshold, StylePrintThreshold, WeightPrintThreshold, PriorityPrintThreshsold have been added to the Category section so that individual style, weight, and priority threshold control can be specified by Category. These entries will override the corresponding entries in the General Info section (which will be the category defaults otherwise).

- FIX - #6143 - Force Black and White was not converting colors for elements using a style rule with a BorderColorValue specified.

- FIX - #6162 - Background color defined in the .GTM file was not getting used if CreateSession were used.

- FIX - #6163 - Activation Draw Move mode would not erase the initially placed element after the first mode.

Friday, May 07, 2010

GITA 2010

Get Flash to see this player.

Thursday, April 29, 2010

GTData version 9.0.0.3 is Available


GTData version 9.0.0.3 is available.

-----------
09.00.00.03 - 04/29/10
-----------

- NEW - #6126 - GTGts2Gtg - GTGts2Gtg utility added to export the session graphics out of a .gts file into a .gtg file.

- NEW - #6158 - GTFont - If a character is already defined in a font definition file, it will now display an error message.

- NEW - #6161 - GTGetArea - The GTGetArea utility has been added so that a rectangular area can be written from a .gtg file into a new .gtg file.

- CHG - #6184 - GTQuery - The Omit Item limit has been increased from 2000 to 5000.

- NEW - #6226 - GTIndex - Support for CategoryStyleScale in Parameter file.

- NEW - #6234 - GTTextQuery - OmitNumeric property added.

- FIX - #6257 - GTConv - When using UseLevelAsFilterId, Cell Header elements with no linkage would not use the cell's first element's level for the group.

- FIX - #6259 - GTConv - Nested Cells did not get the first non-cell header element for the filter id when using the UseLevelAsFilterId mode.

- NEW - #6267 - GTFShiftGtg - Parameter File support is added to allow Offset entries to be specified similar to that in GTTile1.exe.

- NEW - #6269 - GTQuery - The Feature entries now support string values as well as the "SW:" tag. Wildcard (*) can now be used for feature or component field or just a feature can be specified.

- NEW - #6305 - GTQuery - HighlightMode property has been added to query definition.

- NEW - #6310 - GTFontEdit - Import Gtg functionality added.

- FIX - #6312 - Core - Group element with sub-elements containing linkages or embedded data were not handled correctly, especially if the the group itself did not have a linkage or embedded data.

- FIX - #6313 - Core - Stroking Arcs with angles greater than 2*Pi would cause problems.

- NEW - #6314 - GTPreset - Display Definition notation will now support an All() item that will set all filter ids in a category On or Off.

Wednesday, April 28, 2010

GTViewer version 9.0.x.10 is Available



GTViewer version 9.0.x.10 is available.

-----------------------
09.00.00.10 - 04/28/10
-----------------------

- FIX - #6298 - Closing GTViewer with multiple non-modal (Type 1 or Type 2)External App running could cause problems.

- FIX - #6299 - Feature Tooltip Logging message was showing the category id for the filter string parameter.

- NEW - #6306 - Support for the HighlightMode property in Queries. Highlighting can be persistent (default) or non-persistent now.

- NEW - #6308 - Support for an "External" application type to launch scripts, applications, and documents like an ActiveX or DotNet External Apps through the Query and/or Applications menus.

- FIX - #6312 - Group element with sub-elements containing linkages or embedded data were not handled correctly.

- FIX - #6313 - Stroking Arcs with angles greater than 2*Pi would cause problems.

GTVx version 9.0.x.2 is Available



Version 9.0.x.2 of GTVx is available.

-----------------------
09.00.00.02 - 04/28/10
-----------------------

- NEW - #6300 - OpenFileEx method has been added to allow alternate .GTM or .GTX file to be used with an existing session file.

- FIX - #6301 - The Fit Data operation was synched with GTViewer.

- FIX - #6302 - FontColor structure was not being initialized with CreateSession method.

- NEW - #6307 - Support for the HighlightMode property in Queries.

- FIX - #6312 - Group element with sub-elements containing linkages or embedded data were not handled correctly, especially if the the group itself did not have a linkage or embedded data.

- FIX - #6313 - Stroking Arcs with angles greater than 2*Pi would cause problems.

Thursday, April 08, 2010

GTVx version 9.0.x.1 is Available



Version 9.0.x.1 of GTVx is available.

-----------------------
09.00.00.01 - 04/08/10
-----------------------

- NEW - #6266 - Filter Id is now supported by the Symbol entry definitions in the .GTM file.

- NEW - #6271 - Support for the "SW:" tag in the filter files.

- NEW - #6287 - Feature Tooltips will now support the GIS() notation for specifying filter ids.

- NEW - #6289 - Custom Attribute Info tabs are now supported.

- NEW - #6290 - Attribute Info dialog box now supports sorting rows when column is clicked.

- NEW - #6291 - The Attribute Info dialog now supports a Print button to print the current tab.

- NEW - #6292 - ConvertToSessionGraphicsMode data property has been added. When set to 0 (default), it will function as it always has. When set to a number greater than 0, it will use that value as the zoom level for scale dependent graphics. When set to -1, scale dependent graphics are omitted.

- NEW - #6293 - GIS Feature and GIS Component information are now read from the Filter Description field. This information is shown on the element tab of the
Attribute Info dialog.

- NEW - #6294 - Filter Info section added to Element tab.

- NEW - #6295 - Selecting a coordinate row on the element tab will now draw a highlight circle at the selected coordinate.

- NEW - #6297 - Copy Highlighted to Session Graphics functionality updated to
support conversion of symbols to text element to preserve symbol character in session category.

GTViewer version 9.0.x.9 is Available



GTViewer version 9.0.x.9 is available.

-----------------------
09.00.00.09 - 04/08/10
-----------------------

- NEW - #6265 - Filter Id is now supported by the Symbol entry definitions in the .GTM file.

- NEW - #6268 - XmlExportMode has been added to the Additional Properties section. Can be set to GTField to produce a GTField specfic XML export format.

- NEW - #6270 - Support for the "SW:" tag in the filter files.

- FIX - #6284 - With 2 or more Post Actions, if the first one failed, it would say no data to post even though it could post data on the next action.

- FIX - #6285 - Post Actions would say No data to post for each action when it should only give the message once.

- NEW - #6286 - Feature Tooltips will now support the GIS() notation for specifying filter ids.

- FIX - #6288 - Sorting a Custom Attribute table would cause problems. Sorting should not be allowed on custom attribute tabs.

- NEW - #6296 - Coordinate Indicator on the element tab will now support the Center and Origin coordinates as well as the Point coordinates.

Friday, March 12, 2010

GTViewer version 9.0.x.8 is Available



GTViewer version 9.0.x.8 is available.


-----------------------
09.00.00.08 - 03/12/10
-----------------------

- FIX - #6202 - If a Feature Tooltip label is blank and the value is blank, then the attribute is skipped.

- NEW - #6212 - All GTM paths will now accept a semicolon delimited list of paths. The first valid path will be used if more than one path is given.

- NEW - #6219 - Detail Range File now includes a coordinate mode parameter so that ranges can be specified as system or computed coordinates.

- NEW - #6223 - The filterId for CopyHighlightedToSession can now be set with the HighlightedToSessionFilterId Data Property.

- NEW - #6225 - LoadLinestyleDef method added.

- FIX - #6232 - Text elements containing empty strings would cause problems with Feature Counting.

- NEW - #6237 - The Element Tab on the Attribute Info dialog will now show detailed information for Dimension elements.

- CHG - #6238 - Post functionality will no longer post and empty .gtg file.

- NEW - #6239 - CategoryStyleScale support added to the category sections.

- FIX - #6244 - BGMask was sometime not getting filled depending on last style object used.

- NEW - #6245 - Selecting a coordinate row on the element tab will now draw a highlight circle at the selected coordinate.

- FIX - #6247 - RasterPath entry did not follow the alter path definitions added with #6211.

- FIX - #6248 - BorderColorValue was not working for Shape with Hole Elements.

- FIX - #6250 - The RasterPath entry in Raster Categories was not correctly handling the lack of a backslash at the end of the path in all cases.

- FIX - #6260 - TrueType fonts on UDLS definition were not correctly centered in the lines.


GTVx version 8.0.x.15 is Available



Version 8.0.x.15 of GTVx is available.

-----------------------
08.00.00.15 - 03/12/10
-----------------------

- NEW - #6242 - ExtractDataByShape method has been added.

- FIX - #6243 - BGMask was sometime not getting filled depending on last style object used.

- FIX - #6246 - RasterPath entry did not follow the alter path definitions added with #6211.

- FIX - #6249 - BorderColorValue was not working for Shape with Hole Elements.

- FIX - #6251 - The RasterPath entry in Raster Categories was not correctly handling the lack of a backslash at the end of the path in all cases.

- FIX - #6261 - TrueType fonts on UDLS definition were not correctly centered in the lines.

Monday, February 01, 2010

GTViewer version 9.0.x.7 is Available



GTViewer version 9.0.x.7 is available.


-----------------------
09.00.00.07 - 02/01/10
-----------------------

- NEW - #6175 - Attribute Info dialog will now show the first 25 characters of embedded data instead of just saying it is present.

- NEW - #6178 - Attribute Info dialog will now support the MeasureFactor, MeasurePrecision, and MeasureUnitLabel properties.

- FIX - #6180 - The MeasurePrecision data property was not spelled correctly. MeasurePrecision and MeasurePrecison are both accepted now.

- CHG - #6192 - The %DATE% token in the GTField Post user name will now replace all blanks with an underscore.

- NEW - #6193 - If is specified in the GTFieldPostUser, then the guid will not be appended to the filename.

- FIX - #6195 - QueryActivate always returned True even if the dialog were cancelled.

- NEW - #6196 - RasterFile display instruction has been added to the ToolBoxes.

Friday, January 15, 2010

GT/Metadata Explorer version 1.0.0.32 is Available



Version 1.0.0.32 of the GT/Metadata Explorer is available.

-----------
01.00.00.32 - 01/15/10
-----------

- NEW - #6188 - Set to be a 32bit app for easier compatibility with Oracle
Drivers on 64 bit machines.

-----------
01.00.00.31 - 09/09/09
-----------

- NEW - #6016 - Support for the different Legend structure in G/Tech 9.4.3.

- CHG - #6018 - Evaluation Keys changed to use a different mechanism.

- FIX - #6019 - About tab was disabled when application expired.

Wednesday, December 23, 2009

GTViewer version 9.0.x.6 is Available



GTViewer version 9.0.x.6 is available.

-----------------------
09.00.00.06 - 12/23/09
-----------------------


- FIX - #6170 - Raster range computation for MrSID file would have problem with large images using lat/long projections because of roundoff error.

- FIX - #6171 - Problem introduced with #6166 where the application menu does not clear out the default entries when no query or app menus exists.

Monday, December 21, 2009

GTViewer version 9.0.x.5 is Available



GTViewer version 9.0.x.5 is available.

-----------------------
09.00.00.05 - 12/21/09
-----------------------

- FIX - #6165 - Maximum Priority count was not initialized for dataset that did not use style rules.

- FIX - #6166 - Application menu would not update in some cases such as when a document was opened then closed, then another document was opened.

Friday, December 04, 2009

GTViewer version 9.0.x.4 is Available



GTViewer version 9.0.x.4 is available.

-----------------------
09.00.00.04 - 12/04/09
-----------------------

- FIX - #6121 - On Break at Vertex would be enabled and would work when on the first or last point of a line string.

- NEW - #6123 - LogRedlineEdits has been added to the [Additional Properties] section. If set to 1, all Move, Rotates, and Scales will be logged to a file.

- FIX - #6128 - Disclaimer would hide GTViewer when opening a file wit the Open Last File option on.

- FIX - #6130 - Category Level Display and Print Thresholds for Style, Weight, and Priority were not working correctly. If defined and false, they were using the default setting for the dataset instead of an off value.

- NEW - #6133 - GetPrintProperty and SetPrintProperty methods have been added.


- FIX - #6141 - Force Black and White was not converting colors for elements using a style rule with a BorderColorValue specified.

- NEW - #6144 - GetElementText will now work with Dimension Elements.

- NEW - #6146 - GetElementFontId will now work with Dimension Elements.

- NEW - #6148 - GetElementTextSize will now work with Dimension Elements.

- NEW - #6150 - GetElementDimensionInfo method added.

- NEW - #6151 - DrawDimension32 method added.

- FIX - #6154 - The X prompt will now have the focus when the dialog displays.

- FIX - #6155 - The ExportSessionGraphics method was not properly handling the mode parameter.

- FIX - #6156 - Problem was introduced with #5880 where the active indicator is shown by an active user preset.

Thursday, November 19, 2009

GTech Loader version 8.0.0.15 is Available



GTech Loader version 8.0.0.15 is available.

-----------
08.00.00.15 - 11/19/09
-----------

- FIX - #6129 - If a Legend entry did not have a default style rule defined, the loader would stop. Now, the last style rule in the list will be used as a default, and a message is written to the log file.

- FIX - #6134 - Elements whose ESEQ value did not reset between elements were incorrectly grouped together.

Thursday, October 29, 2009

GTData version 9.0.0.1 is Available


GTData version 9.0.0.1 is available.
-----------
09.00.00.01 - 10/28/09
-----------

- FIX - #5990 - GTQuery - GTQuery was not displaying the version number in the output header.

- NEW - #6008 - GTRemapFont - GTRemapFont utility added to remap fonts by number in a .gtg file.

- NEW - #6086 - GTCompact - All deleted elements are not omitted.

- NEW - #6094 - GTLabelGtg - The LabelAttribute entry can now be set to "\n" to allow carriage returns to be placed between attributes.

- FIX - #6122 - GTIndex - The TrueType font list was not show when the application ran.

- NEW - #6124 - Support for Redline Edit Logfiles with the -editFile parameter.

- CHG - #6125 - InstallShield Setup change to allow upgrade if installing a newer version instead of requiring the previous version to be removed.

Friday, October 23, 2009

GTVx 8.0.x.12 is Available



Version 8.0.x.12 of GTVx is available.

-----------------------
08.00.00.12 - 10/23/09
-----------------------

- NEW - #5904 - The GetFilterIdFromGisInfo method has been added to return a list of Filter ids from a GIS Feature and GIS Component information stored in the Filter Description field.

- NEW - #5905 - GetGisInfoFromFilterId method has been added.
- FIX - #5925 - The first record in the sorted index (.idx) would not be returned when multiple records with the same keys were found.

- CHG - #5934 - UpdateElementSetText will now pad the new text element with spaces instead of nul characters if the new text string is shorter than the existing one.

- NEW - #5944 - The BGMaskAddShapeFromBuffer method was added.

- NEW - #5957 - New BGMask functionality added: BGMaskAddShapeFromBufferEx, BGMaskDeleteByKey, BGMaskGetList, BGMaskGetRange, BGMaskClearHighlight, BGMaskSetHighlight, BGMaskGetElementInfo, BGMaskAddCircleEx, BGMaskChangeColor, BGMaskMoveToBack, BGMaskMoveToFront.

- NEW - #5958 - Session Data Info support added. New Methods: AddSessionDataInfo, ClearSessionDataInfo, RemoveSessionDataInfo, GetSessionDataInfo.

- NEW - #5959 - New events: SavingSessionBefore and SavingSessionAfter. FileOpened

- FIX - #5960 - Ascii Representation of Embedded data did not handle Pipes in the data.

- NEW - #5977 - ElementGetPartList method has been added.

- CHG - #6006 - More font sizes were added to the Text Size combo in the Place Text Dialog.

- NEW - #6007 - CustomPrint functionality has been added. New methods: CustomPrint, CustomPrintAddInstruction, CustomPrintClearInstructions.

- NEW - #6038 - UniqueListAdd, UniqueListCheck, UniqueListClear, UniqueListGetListOfSame methods have been added.

- NEW - #6039 - Data Property FeatureCountHighlight added to enable (1) or disable (0) the Feature Count Highlighting. The default is to highlight.

- NEW - #6044 - New methods added to View object: IsPointOnElement and CheckForIntersectingElements

- NEW - #6091 - The CountFeatureDetail method will now process each element in a group separately if the group does not test as a closed shape.

- NEW - #6092 - Fill Style now supported in Style Definitions.

- NEW - #6096 - The FindIntersection method has been added.

- NEW - #6103 - RequestNewBreakElementKeys event is fired if breaking an element at a vertex will create a new element (breaking a linestring).

- FIX - #6104 - On Break at Vertex would be enabled and would work when the required number of point in the element were not met.

- NEW - #6106 - VertexEditMask has been added to the Data Properties. The following values can be ORed together to disable one or more items on the vertex menu: 1 - Split, 2 - Delete, 4 - Add

- FIX - #6109 - Add, Delete, and Break at Vertex were causing the ElementSelected event to be fired too many times as the old element was deleted and the new element was added.

- CHG - #6119 - Changes to the InstallShield setup, so that a previous version will automatically be removed when installing a new version. The installation no longer needs to be run twice when upgrading.

GTViewer version 9.0.x.3 is Available



GTViewer version 9.0.x.3 is available. The Release Candidate and Released version held up the normal flow of updates for the last month. We will now resume our normal schedule.

-----------------------
09.00.00.03 - 10/23/09
-----------------------

- FIX - #6110 - Add, Delete, and Break at Vertex were causing the ElementSelected event to be fired too many times as the old element was deleted and the new element was added.

- FIX - #6111 - Attribute Info dialog now uses a default width that includes the Count button.

- NEW - #6112 - Count Detail dialog will now show coordinate values in Lat/Long if one of the Lat/Long coordinate readout modes is used.

- CHG - #6113 - Tip of the Day no longer shown at startup.

- FIX - #6117 - Hatch Fill on Shape with Hole elements would not use the correct fill color.

- FIX - #6118 - Print to Scale with Center of View was not getting all of the graphics in the print (it was still using center point as the lower left corner of the spatial query).