Monday, July 14, 2008

Pocket GTViewer version 7.0.x.12 is Available


Pocket GTViewer version 7.0.x.12 is now available.

This version requires the Trimble GPS components version 2.3.

-----------
07.00.00.12 - 07/13/08
-----------

- FIX - #5129 - Problems with TrueType symbol fonts. Introduced with 5126.

-----------
07.00.00.11 - 07/11/08
-----------

- FIX - #5126 - Problem converting multibyte characters to unicode for text and symbol element display.

-----------
07.00.00.10 - 05/28/08
-----------

- FIX - PGTV #1003 - Fix for certain character sets (non-English).

-----------
07.00.00.09 - 04/16/08
-----------

- FIX - PGTV #1001 - Complex Shapes (Type 3, Extended Style 2) with a style rule containing only a Color and no border color would draw the complex shape's border with the element's shape border color. This has been changed to use the color in the style rule if the style rules defines only a color and no border color.

- NEW - PGTV #1002 - Upgraded to PFTools 2.3. Requires upgraded PFTools installed on device when using GPS.
- ssfAnt_LogSuperCorrect is no longer supported.
- intComSat_ActivationCode is no longer supported.

-----------
07.00.00.08 - 4/2/08
-----------

- CHG - Evaluation timeout extended.


Sunday, June 29, 2008

GTData version 7.0.0.9 is Available



Version 7.0.0.9 of GTData is available.

-----------
07.00.00.09 - 6/29/08
-----------

- FIX - #5063 - Computing element ranges with Data Only elements was causing the range to be invalid.

-----------
07.00.00.08 - 6/23/08
-----------

- FIX - GTD #1025 - GTShapeConv - Filter Value was listed as a Fixed value.

- NEW - GTD #1026 - GTShapeDbfConv - Filter Value info now displayed.

- NEW - GTD #1027 - GTShapeDbfConv - Will now accept a and an = as the entry delimiter.

- FIX - GTD #1028 - GTShapeDbfConv, GTShapeConv - FilterAttribute did not work well with Float type attribute.

- FIX - GTD #1029 - GTShapeConv - The OrFlag had to be set manually for FilterAttribute entries, this is now done automatically.

- FIX - GTD #1030 - GTShapeConv - The AngleInDegrees flag did not work.

- NEW - #5039 - GTQuery - Support added for the "GIS1:" marker in the Filter file descriptions generated by the FME plug-in 1.0.0.31+.




Wednesday, June 25, 2008

New Features in the GTViewer FME Plug-In

Version 1.0.0.31 of the GTViewer FME Plug-In has two new features: (1)an Enhanced Filter Creation mode and (2) an option to automatically prepend the destination feature name to the gti_styleName format attribute.

As users are creating more and more complex feature sets with the FME Plug-in, it has become apparent that the default filter file creation method in the FME Writer Plug-in has become insufficient. By default, filter files have been created for each category using the following simply procedure:


1) create a default group called Features

2) add each new filter id (which is tied to the Style Name) as a new component.


This approach is very simple and always works. The user also has the ability to define his or her own more complex filter file definition and the FME plug-in will continue to use the same filter ids as they are defined.

While the GTViewer G/Tech Loader (used to convert Intergraph’s G/Technology data to the GTViewer format) has very little in common with the FME Plug-in, the two applications do have a few conceptual commonalities. Primarily, in both conversion approaches, the Filter Id and the Style Definition are tied together to simplify the conversion process and symbology definition. Therefore, each filter id generated by both conversion methods are mapped to a specific style definition. For example, if you have a Pole feature with a dozen different symbologies, then there will be a dozen different filter ids created in the filter file and each one will be mapped to its own unique style definition. As the different styles are created for a specific feature with the G/Tech Loader, the feature and component numbers of the original feature are taken from the GIS and used to group all of the different styles/filter ids together and form a Group of all the feature’s individual styles. This approach worked so well that GTQuery was modified to accept a Feature and Component number list in addition to a filter id list when defining a query. Now, only the original G/Tech feature and component number are needed to identify a feature in the query definition instead of trying to determine all of the individual filter ids that were used to specify the individual feature’s styles. This approach overcomes the problem of new filter ids being introduced as new styles are used by the GIS; all filter id with a common Feature number are automatically treated as a single feature.

The new Enhanced Filter Creation Mode in the FME Plug-in mimics much of the G/Tech Loader’s approach to filter id so that it can provide richer filter file creation. The original GIS feature and component number may or may not be available to FME; however, the FME Plug-in can still operate in similar fashion by generating its own feature and component number based on the Feature name and Style names used in the conversion. In FME, the Feature name is the name you define on the Destination features (as Feature Type Name).

In the example below, the Streets destination is shown:





With the Enhanced Filter Creation mode:
  • The Streets feature will be given a unique Feature Number.
  • All Street features will be added to a Group called “Streets”.
  • Each different style used (different values of gti_styleName) for the Streets feature will be given a unique component number for that feature.
In the example shown above, the gti_styleName format property is assigned the value of the CFCC value (which is the type of road and makes it possible to assign each different road type a different symbology).



The second new feature in the FME Plug-In is the ability to automatically prepend the Feature name to the value assigned to the gti_styleName format property. In the past, it was necessary to use a Concatenator to generate the appropriate string for gti_styleName:


While using the Concatenator transformer is not difficult, it did require defining the concatenation for each feature using attribute driven symbology. When using a single attribute to drive symbology, this task becomes implicit; you just connect the driving attribute to the gti_styleName property in the destination. With the Use Feature in StyleName option active, the Destination feature name and a hyphen (“ – “) are automatically prepended to the gti_styleName value when creating the filter name.


In previous versions of the plug-in, you needed something like this:





However, with the Use Feature Name in StyleName active, you only need to connect the symbology driving attribute to the gti_styleName format attribute:



You will still need to use a Concatenator if you want to use multiple attributes multiple attribute to drive the symbology, but the Concatenator’s specification will still be simplified since it does not need to specify the Feature name.

The Use Feature in StyleName is not required and if you wish to use the explicit approach used by previous versions of the plug-in, simply turn this option off in the Destination parameters.



Using the new feature with exsting Workspaces
If you are using workspaces created with previous versions of the plug-in, the new options will not appear in the Parameters section in the Workbench Navigator. However, you can use the gtiParameters.txt file to define these options:

UseFeatureNameInStyleName=1 or 0
FilterCreationMode=enhanced
or standard

To use the gtiParameter.txt file, create a file with the desired entries and place this file in the output directory. The FME plug-in will look for this file each time the data is converted. If the file is present, the plug-in will use any settings it may define.

Examples:

To get a better idea of the effect these new features will have on a filter file created by FME, I will walk through an example of the new setting combinations and show the filter file created for each:

File Creation Mode: Standard Use Feature Name in Stylename: No





This example produces the same output as all previous versions of the FME Plug-in: one group called Features, with each different gti_styleName value added as a different component.


File Creation Mode: Standard Use Feature Name in Stylename: Yes



With the Use Feature Name in StyleName set to yes, the Destination feature name is automatically prepended to the style name (“STREETS – “ in this example).


File Creation Mode: Enhanced Use Feature Name in Stylename: No



With the Filter Creation Mode set to Enhanced, this version of the filter file is somewhat different from the previous two examples. Two groups are created, one for “Streets” and one for “Water”. All of the street types and water type are created as separate components within each feature group. The “GIS1:” tag and “Group:” tag are used in the description fields instead of the “FME:” tag used by the standard mode. This difference helps the FME plug-in manage the different mode of filter creation and also is supported by GTQuery to allow feature and component specifications.

File Creation Mode: Enhanced Use Feature Name in Stylename: Yes



This final example shows the filter file with both the Enhanced Filter Creation Mode and the Use Feature Name in Stylename option active. In addition to the information discussed in the previous example, a few other items of interest are worth pointing out. With the Enhanced mode, the unique Feature numbers that are generated (1 and 2 in this example) which is the second item in each record. Also, the component numbers (the 3rd item in each record) are now unique for each group. The Water group also demonstrates the entry that gets generated if the gti_styleName is empty.








GTVx version 7.0.x.20 is Available



Version 7.0.x.20 of GTVx is available.

-----------------------
07.00.00.20 - 06/25/08
-----------------------

- FIX - GTV #1038 - Computing element ranges with Data Only elements was causing the range to be invalid.


- FIX - #5002 - Weight setting in Thematic Query dialog did not work.

-----------------------
07.00.00.19 - 05/23/08
-----------------------

- CHG - GTVX #1037 - Default Stroke Angle for Style rules has been changed to 5 degrees instead of 15.

- FIX - GTVX #1038 - Style Rule object was not getting set for Draw methods. Initial rendering could be different without any style rules defined.

Friday, June 13, 2008

GTViewer version 7.0.1.30 is Available



Version 7.0.x.30 of GTViewer is available.

-----------------------
07.00.00.30 - 06/13/08
-----------------------

- FIX - GTV #1038 - Computing element ranges with Data Only elements was causing the range to be invalid.

-----------------------
07.00.00.29 - 05/13/08
-----------------------

- NEW - GTV #1032 - FontMap_NoJust entry added to dgnExport.ini.

- CHG - GTV #1037 - Default Stroke Angle for Style rules has been changed to 5 degrees instead of 15.



Thursday, June 12, 2008

TechEd 2008 in Orlando



The TechEd 2008 Deveveloper’s Conference was in Orlando last week. I have always attended MEDC (Mobile and Embedded Developer’s Conference) before, but it has now been merged into TechEd. I believe that I prefer the more focused content of MEDC, but if my only way to get this information is to go to TechEd, then it is not too bad of an alternative. However, there were only 11 Windows Mobile session at TechEd 2008.

There is always a flavor to a Microsoft conference. I don’t know if this is directed by the powers that be or simply a natural alignment to the new features they are providing (or a combination of both). This year, the flavor definitely tastes of LINQ (Language Integrated Query). LINQ is undeniably an interesting concept that directly integrates SQL-like statement into the language syntax of any .NET language (VB.NET, C#, etc.). What makes this new feature somewhat interesting is that the SQL statements can be applied to data in arrays, enumerable objects, XML, and databases. So, the SQL way of querying a database can now be directly applied to data in your application, not just databases.

It also appears that most of the new language features we get from Visual Studio 2008 are directly related to LINQ: Anonymous Types, Extension Methods, Lambda Expressions, Implicitly typed locals, and Object Initializers. All of these new features were added just to support LINQ. One session on the Visual Studio 2008 IDE revealed that there wasn’t much added to the IDE because all of the developers were working on LINQ. On the downside, while LINQ does run on Windows Mobile, it will only work with your application data and does not work with SQL CE. There are a lot of things in the Compact Framework I would have rather had than a partially implemented version of LINQ.

While just about every session had to work LINQ in somehow, there were a couple of other technologies that were shown off. The Windows Presentation Manager (WPF) has developed a good deal since last year and can really produce some spectacular looking demos. The new support in Visual Studio 2008 for WPF is nice, but really seems to be early in its development. All of the WPF sessions seem to highlight a few points: it has great potential, it’s not here yet, and you will need a graphic designer to properly use it. A common phrase I heard in the session is “I’m not a graphic designer, so my WPF doesn’t look very good.” Nevertheless, I still found the Technology compelling enough to pursue. As an aside, Silverlight, which is an offshoot of WPF, came across as a very immature technology. Maybe it will mature quickly.

The Window Communication Foundation (WCF) was also a popular topic. It is just the extension of Web Services to what it probably should have been in the first place.

The Windows Workflow Foundation (WF, because WWF was already taken), was new to me and looks really interesting. An oversimplified description of it would be a project type in Visual Studio that lets you create a flow chart or diagram of your business logic and then can add the code behind the items in the diagram. The WF demos were compelling, but I have to question how well it really works in the real world. The demos used very simplistic logic. How well WF scales to a real application would be interesting to know. I think time will tell on this technology. It will become really popular or just disappear.

Another interesting thing about TechEd 2008 is what they didn’t talk about. Normally, these conferences are all using beta versions of something that hasn’t been released. I went to MEDC two years in a row and all they talked about was Whidbey (VS2005). Then it was all about Orcas (VS2008). With the exception of running VS2008 service pack 1 betas and a Silverlight beta, everyone was pretty content with the released software (quite a change from previous conferences). Does this mean there isn’t anything new in the queue or they are just taking a little longer to ramp up to the new stuff.

All and all, I was pretty pleased with the conference. Visual Studio 2008 looks good enough now to upgrade to (although I may wait until SP1 until I start upgrading all of my projects). Check out the full video and text of Bill Gates’ key: http://www.microsoft.com/presspass/exec/billg/speeches/2008/06-03teched.mspx

Monday, May 19, 2008

GTData version 7.0.0.7 is Available



Version 7.0.0.7 of GTData is available.

-----------
07.00.00.07 - 05/19/08
-----------

- NEW - GTFontEdit - GTD #1017 - Ability to change a font from a text font to a symbol font and vice versa has been added to the Modify menu.

- FIX - GTLabelGtg - GTD #1018 - Was not supporting Symbol Element for Mode 4.

- FIX - GTConv - GTD #1019 - Tag linkages Id values were overflowing if greater than a signed short's high value. Changed to an unsigned short value.

- NEW - GTInterGtg - GTD #1020 - OmitValue added.

- NEW - GTInterGtg - GTD #1022 - RequiredAttributeValue and OmitAttributeValue added.

- CHG - GTShapeConv - GTD #1023 - Maximum shapefile part count raised from 1500 to 10000. Maximum shapefile point count rasied from 100000 to 200000.

- FIX - GTShapeConv - GTD #1024 - Actual Range would report the wrong range when multipart lines and shapes were present.




GTVx version 7.0.x.18 is Available



Version 7.0.x.18 of GTVx is available.

-----------------------
07.00.00.18 - 05/19/08
-----------------------

- NEW - GTD #1003 - Export to Shapefile now supports Shape with Hole Elements.

- FIX - GTD #1004 - Export to Shapefile now forces all filenames to be upper case so that they are consistent with one another.

- NEW - GTVX #1026 - The SetDisplayProperty and GetDisplayProperty methods now support: SuppressEditDisplayUpdate

- FIX - GTV #1027 - Support for Shape with Holes has been added to the DGN export functionality. Shape with Hole elements are converted to linestrings.

- FIX - GTVX #1028 - Complex Shapes (Type 3, Extended Style 2) with a style rule containing only a Color and no border color would draw the complex shape's border with the element's shape border color. This has been changed to use the color in the style rule if the style rules defines only a color and no border color.

- NEW - GTVX #1029 - The FeatureTooltipOmitBlankValues Data Property has been added. It can be used with GetDataProperty, SetDataProperty, and in the Additional Properties section in the .GTM file.

- FIX - GTV #1031 - Stroking Circles, Ellipses, and Arc could overflow some point buffer in the export to .dgn routines after the default stroke angle was reduced to 5 degrees in an earlier version.

- NEW - GTVX #1033 - New Event for Feature Tooltips:

void FeatureTooltip(long id, long count, long categoryId, long offset, long dataId, long key1, long key2, double x, double y);

New property for GetDataProperty and SetDataProperty:

FeatureTooltipMode

- NEW - GTVX #1034 - New Method:

long GetControlWindowHandle();

- FIX - GTVX #1035 - Selection of filled Shape elements was limited to borders only.

- FIX - GTVX #1036 - Fill Color and Border Color were not being drawn correctly for Shape with Hole elements.

- CHG - GTVX #1037 - Default Stroke Angle for Style rules has been changed to 5 degrees instead of 15.


GTV Control version 7.0.0.53 is Available



Version 7.0.x.53 of the GTViewer .NET Control is available.

Several versions rolled into one blog posting.

------------
07.00.00.53 - 05/17/08
------------


- FIX - #242 - The token did not work when used in the
AttributeInfoFilterString property.

- NEW - #243 - GT/Field features will now use their GT/Field feature name instead of the default "Session Graphics" identifier in picklists.

- FIX - #244 - Capture Point with Confirmation was moving the point on a mouse event.

- FIX - #255 - Setting the current Mode to None would not clear the soft button panel.

- NEW - #256 - New Method to clear softpanel without changing modes:

bool ClearSoftButtonPanel()

- NEW - #257 - New Methods to support reference points:

bool ClearReferencePointList()

bool AddReferencePoint(double x, double y, bool flag );

- NEW - #258 - New Event:

void CaptureModeMouseMove(CaptureModeEventType eventType, int id, double x, double y, double z, bool zValid)

- FIX - #259 - The GetDateProperty method did not return the correct value for DefaultScale.

- NEW - #260 - New Methods:

bool SetDisplayStatusList(int categoryId, int[] displayStatusList, double[] minThresholdList, double[] maxThresholdList, int count)

bool GetDisplayStatusList(int categoryId, out int[] displayStatusList, out double[] minThresholdList, out double[] maxThresholdList)

------------
07.00.00.52 - 05/04/08
------------

- NEW - #241 - New Methods:

bool SetDisplayStatusList(int categoryId, int[] filterList, int count)

bool GetDisplayStatusList(int categoryId, out int[] filterList)

------------
07.00.00.51 - 05/04/08
------------

- CHG - #240 - Shape with Hole rendering has been switch to the Windows API rendering
for desktop version.

- FIX - #239 - Overview mode was not using the correct view id when setting the initial range for an overview.

------------
07.00.00.50 - 04/26/08
------------
- CHG - #238 - The Data Monitor 2 Group Id property has been changed from an integer to a string.

------------
07.00.00.49 - 04/25/08
------------

- NEW - #235 - DM2_FitItems method added.

- NEW - #236 - DM2_UpdateItemViewFilterByGroupIdAndStyleId method added.

- NEW - #237 - View_None added to the list of View constants.

------------
07.00.00.48 - 04/24/08
------------

- FIX - #232 - Picklist with more than 10 data monitors would cause problems.

- NEW - #233 - DeleteItemsByGroupId, UpdateItemStyleIdByGroupId, and UpdateItemViewFilterByGroupId will now accept the group id of -1 to represent all group ids.

- NEW - #234 - New version of DM2_UpdateItemViewFilterByGroupId has been added to provide bitwise operations (AND, OR, XOR).

------------
07.00.00.47 - 04/23/08
------------

- NEW - #224 - IsFilePassworded method has been added.

- NEW - #225 - File Error Status and Info.

- NEW - #226 - Alternate GTViewer File can now be supplied to OpenFile so that you can override the GTViewer filter specified in a .gts file.

- FIX - #227 - Feature tooltips were not showing the tooltip heading.

- NEW - #228 - FeatureTooltipOmitBlankValues now supported in Additional Properties section and GetDataProperty and SetDataProperty methods.

- FIX - #229 - FeatureTooltipMinThreshold and FeatureTooltipMaxThreshold were not correctly implemented.

- FIX - #230 - CreateSession now closes any open file and performs a license check.

- FIX - #231 - CreateSession was not setting the Document Id correctly after a successful call.



PGTV Control version 7.0.0.23 is Available



Version 7.0.x.23 of the PGTV Control is available.



------------
07.00.00.23 - 05/19/08
------------
- NEW - #198 - Emphasize Color supported.


- FIX - #199 - Complex Shapes (Type 3, Extended Style 2) with a style rule containing only a Color and no border color would draw the complex shape's border with the element's shape border color.
This has been changed to use the color in the style rule if
the style rules defines only a color and no border color.

- NEW - #243 - GT/Field features will now use their GT/Field feature name instead of the default "Session Graphics" identifier in picklists.

- FIX - #255 - Setting the current Mode to None would not clear the soft button panel.

- NEW - #256 - New Method to clear softpanel without changing modes:

bool ClearSoftButtonPanel()

- NEW - #257 - New Methods to support reference points:

bool ClearReferencePointList()

bool AddReferencePoint(double x, double y, bool flag );

- FIX - #259 - The GetDateProperty method did not return the correct value for DefaultScale.

Wednesday, April 30, 2008

GTData Version 7.0.0.6 is Available



Version 7.0.0.6 of GTData is available.


-----------
07.00.00.06 - 04/30/08
-----------

- NEW - GT2Shape - GTD #1003 - Shape With Hole Elements are now supported.

- FIX - GT2Shape - GTD #1004 - All filenames are converted to lower case so that they will be consistent with one another.

- NEW - GTConv - GTD #1005 - CellHeaderLevelMode added to allow a cell to use the cell header's level if it is not equal to 0.

- NEW - GTTextQuery - GTD #1006 - The StartsWith entry is now supported to filter text by requiring it to start with the specified string. Entry is repeatable.

- NEW - GTTextQuery - GTD #1007 - The OmitStartsWithText entry was added and if set to 1, the StartWith text from #1006 will be removed from the text string.

- NEW - GTTextQuery - GTD #1008 - The -tf flag was added to support the creation of a file containing all of the text meeting the search criteria. The -fid flag was also added to also place the text element's filter id in the text file output.

- NEW - GTTextQuery - GTD #1009 - The Filter Id was updated to support hypenated list of filter ids.

- FIX - GTQuery - GTD #1010 - The FilterId entry did not support token replacement.

- FIX - GTConv, GTSum - GTD #1012 - Attribute Linkage index not correct in some cases.

- NEW - GTTextQuery - GTD #1013 - The -xy flag was added to embed coordinate info in each record.

- NEW - GTSumGtg - GTD #1014 - Added to GTData.

- NEW - GTSplitGtg - GTD #1015 - The -x1, -y1, and -min flags added.

- NEW - GTTextQuery - GTD #1016 - The IgnoreSubElements entry has been added to tell how many sub elements to skip in a group before processing. The default is 0.


Friday, April 25, 2008

GTViewer 7.0.x.28 is Available



Version 7.0.x.28 of GTViewer is available.

-----------------------
07.00.00.28 - 04/25/08
-----------------------
- NEW - GTD #1003 - Export to Shapefile now supports Shape with Hole Elements.


- FIX - GTD #1004 - Export to Shapefile now forces all filenames to be upper case so that they are consistent with one another.

- FIX - GTV #1027 - Support for Shape with Holes has been added to the DGN export functionality. Shape with Hole elements are converted to linestrings.

- FIX - GTV #1028 - Complex Shapes (Type 3, Extended Style 2) with a style rule containing only a Color and no border color would draw the complex shape's border with the element's shape border color. This has been changed to use the color in the style rule if the style rules defines only a color and no border color.

- NEW - GTV #1029 - The FeatureTooltipOmitBlankValues Data Property has been added. It can be used with GetDataProperty, SetDataProperty, and in the Additional Properties section in the .GTM file.

- FIX - GTV #1030 - GT/Field did notshow icons correctly for required GPS values.

- FIX - GTV #1031 - Stroking Circles, Ellipses, and Arc could overflow some point buffer in the export to .dgn routines after the default stroke angle was reduced to 5 degrees in an earlier version.


Monday, April 21, 2008

GTV Control version 7.0.0.46 is Available



Version 7.0.x.46 of the GTViewer .NET Control is available.

Several versions rolled into one blog posting. Major additons to the .NET control are support for the .GTM and .GTS files in the Pro version as well as an enhanced version of the Data Monitor (called DM2) and Log File support.


------------
07.00.00.46 - 04/21/08
------------

- FIX - #218 - Complex Shapes (Type 3, Extended Style 2) with a style rule containing only a Color and no border color would draw the complex shape's border with the element's shape border color.
This has been changed to use the color in the style rule if
the style rules defines only a color and no border color.


- NEW - #219 - DM2_EventMode property has been added.

- FIX - #220 - DM2_DeleteItem did not work correctly.

- NEW - #221 - DM2_DeleteItemsByGroupId was added.

- FIX - #222 - DM2_UpdateItem was not passing double values correctly to the dll and thus not working correctly.

- NEW - #223 - Constants provided for Views: View_0, View_1, ... View_9 and View_All. These values can be used with the Data Monitor View Filter value.

------------
07.00.00.45 - 04/14/08
------------

- NEW - #214 - Emphasize Color support added. EmphasizeSessionGraphicsColor property added to GetDataProperty and SetDataProperty.

- NEW - #215 - SetViewLike method added: bool SetViewLike(GTVControl ctrl)

- FIX - #216 - Graphic engine objects were not getting released when a file closed.

- FIX - #217 - CreateSession methods were private instead of public.

------------
07.00.00.44 - 04/13/08
------------
- NEW - #207 - Style Def and Map File support added.

- NEW - #208 - UDLS Def File support added.

- NEW - #209 - Filter File support added.

- NEW - #210 - .GTM File support added.

New Properties:
String SessionFile

New Methods:
bool CreateSession(String sessionFile, String gtviewerFile, String password)

- NEW - #211 - Log File support added.

New Properties:
int LoggingLevel

New Methods:

String GetLogfileName()
bool LogMessage( int level, String msg )

- NEW - #212 - DM2 methods added:

public bool DM2_AddStyleItem( int styleId, DM2_Style style)
bool DM2_GetStyleItemCount(int styleId, out int count )
public DM2_Style DM2_GetStyleItem(int styleId, int pos)
public bool DM2_AddItem(DM2_Item item)
public DM2_Item DM2_GetItem( String itemId )
public bool DM2_ClearAllItems()
public bool DM2_ClearAllStyleItems()
public bool DM2_ClearStyleItems(int styleId)
public bool DM2_DeleteItem( String itemId )
public bool DM2_UpdateItem(String itemId, double x, double y, double rotation)
public bool DM2_UpdateItemStyleId(String itemId, int styleId)
public bool DM2_UpdateItemViewFilter(String itemId, int viewFilter)
public int DM2_UpdateItemStyleIdByGroupId(int groupId, int styleId)
public int DM2_UpdateItemViewFilterByGroupId(int groupId, int viewFilter)
public int DM2_GetItemCount()
public bool DM2_GetItemsAtPoint(double x, double y, out ArrayList itemList)

- FIX - #213 - Magnify view was not scaled correctly when coordinate factor 2 was not 1000.



Monday, April 07, 2008

PGTV Control version 7.0.0.22 is Available



Version 7.0.x.22 of the PGTV Control is available.


------------
07.00.00.22 - 04/07/08
------------

- CHG - #158 - Description for Reviewed Session Graphics has been changed from "Session Graphic" to the element's filter name.

- FIX - #162 - Fillable element using the Border Color style property were not inverting their color when drawn on the same color background.

- NEW - #163 - MaxZoomLevel, MaxZoomScale, and MinZoomScale added to Additional Properties section.

- NEW - #164 - GetDataProperty and SetDataProperty now support: MinZoomLevel, MaxZoomLevel, MinZoomScale, MaxZoomScale

- NEW - #165 - GetFontList method added.

- FIX - #167 - Drawing Text Accents would cause problems.

- FIX - #168 - Adjustments to Shape With Holes rendering.

- FIX - #169 - Rendering of character id greater than 127 would not display correctly.

- FIX - #170 - Data Monitor items were not having the Text Accent correctly initialized which could cause strange graphics to appear.

- FIX - #188 - Fixes to ClearCustomMenuItems.

- FIX - #197 - Flicker Highlight did not work when the ShapeBorderColor style property was used.

Tuesday, March 25, 2008

GTData version 7.0.0.5 is Available



Version 7.0.0.5 of GTData is available.

-----------
07.00.00.05 - 03/25/08
-----------

- NEW - GTQuery - The -de flag has been added so that query output files with no records are automatically deleted.

- NEW - GTQuery - The -uu flag has been added along with the UpdateDataFile to alternately use an update Data file.

- NEW - GTUpdateGtg1, GTUpdateData, GTQueryDelRec, GTAppendQuery, GTIncUpdMgr - have been added to GTData.

- FIX - GTShapeConv - NULL_TYPE elements mixed in with valid elements would generate and unknown type error and end the conversion. These elements are now ignored.

- CHG - GTExtract - GTV #1012 - Symbol Fonts are no longer filtered by usage for extract files.

- CHG - GTExtract - GTV #1013 - Color tables are no longer filtered by usage for extract files.

- NEW - GTInterGtg - GTD #1001 - IngnoreSimilarNames setting added.

- FIX - GTConfig - GTD #1002 - Carriage return was getting introduced for codelist table name.

GTVx version 7.0.x.17 is Available



Version 7.0.x.17 of GTVx is available.

-----------------------
07.00.00.17 - 03/25/08
-----------------------

- FIX - GTVX #1014 - Feature Tooltips would not work on unselectable categories.

- FIX - GTVX #1018 - When SetAddElementRedrawMode is set back to 1, it did not clear any cached elements and they would not draw until the view is rerendered.

- FIX - GTVX #1019 - Flicker Highlight did not work when the ShapeBorderColor style property was used.

- FIX - GTVX #1023 - New Method:

BOOL ExportSessionGraphicsAsShp(long mode, LPCTSTR table, LPCTSTR path, LPCTSTR baseFilename)

- FIX - GTVX #1025 - Separator line on Feature Tooltip would sometime be added at the end unecessarily.

GTViewer version 7.0.x.27 is Available



Version 7.0.x.27 of GTViewer is available.

-----------------------
07.00.00.27 - 03/25/08
-----------------------

- FIX - GTV #1014 - Feature Tooltips would not work on unselectable categories.

- NEW - GTV #1015 - Freehand support added to Post SHP (don't specify table name to get all session graphics with no embedded data).

- NEW - GTV #1016 - Post CSV is now supported. Must define type as CSV and specify a table name.

- NEW - GTV #1017 - Posting of elements with no embedded data will now be tagged so that they are not posted repeated with using Cleanup Mode 2.

- FIX - GTVX #1018 - When SetAddElementRedrawMode is set back to 1, it did not clear any cached elements and they would not draw until the view is rerendered.

- FIX - GTV #1019 - Flicker Highlight did not work when the ShapeBorderColor style property was used.

- NEW - GTV #1020 - Copy Highlighted Element to Session will now integrate any style rule information into the copied element along with the Highlight color.

- NEW - GTV #1021 - Embedded Styles for Highlighted Element to Session graphics.

- FIX - GTV #1022 - Element ranges for Highlighted elements using a dynamic style were not computed correctly.

- NEW - GTV #1024 - New capture modes added to GT/Field: Point_With_Confirmation, Line, Area.

- FIX - GTV #1025 - Separator line on Feature Tooltip would sometime be added at the end unecessarily.

- NEW - GTV #1026 - In GT/Field, a captured point is rendered when the Edit form is displayed.

Thursday, March 20, 2008

GTV Control version 7.0.0.43



Version 7.0.x.43 of the GTViewer .NET Control is available.

Several versions rolled into one blog posting. Major additons to the .NET control are support for the Magnify Window, Data Monitor Events, Thematic and Prompt Queries, and Persistent Highlighting.

------------
07.00.00.43 - 03/20/08
------------
- CHG - #204 - Data Monitor Lists increased from 10 to 50.


- NEW - #205 - New Methods:

bool DM_GetViewDisplay(int listId, out bool display)

bool DM_SetViewDisplay(int listId, bool display)

- FIX - #206 - InializeQuery will no longer return False if the prompt list size do not match list the query's prompt count. If the list is too large, it will be truncated. If the list is too small it will be padded with empty prompt value.

------------
07.00.00.42 - 03/18/08
------------

- FIX - #200 - UDLS lines were not honoring persistent highlight color or emphasize mode.

- NEW - #201 - New Method:

int GetQueryResultsCount()

- NEW - #203 - New Property:

String CurrentFile

------------
07.00.00.41 - 03/16/08
------------

- FIX - #199 - Soft buttons would not reposition at the bottom of the view if the control were resized.

------------
07.00.00.40 - 03/12/08
------------

- FIX - #197 - Flicker Highlight did not work when the ShapeBorderColor style
property was used.

- FIX - #198 - Detaching a view would disconnect a linked overview control even if it were not the view being detached.

------------
07.00.00.39 - 03/11/08
------------

- NEW - #195 - Magnify mode added.

New Method:

bool ActivateMagnifyMode()

New Property:

int MagnifySize

New Events:

void MagnifyUpdate( double xlow, double ylow, double xhigh, double yhigh )

void MagnifyCancelled()

void MagnifyClick( double x, double y, MouseButtons button )

- NEW - #196 - Calling Detach when not attached to a parent would cause a problem.

------------
07.00.00.38 - 03/10/08
------------

- FIX - #192 - Weight override on Highlighted element did not work correctly.

- NEW - #193 - FitSessionGraphics method added.

- NEW - #194 - EmphasizeSessionGraphicsChanged event added.

------------
07.00.00.37 - 03/09/08
------------

- CHG - #190 - The GetQueryList has been change return more information.

The QueryItemType changed to include queryType and hidden.
The GetQueryList method not returns all defined queries and
does not filter out hidden or thematic types.

- NEW - #191 - Query Group information is now supported in GetQueryList.

------------
07.00.00.36 - 03/08/08
------------

- FIX - #189 - GetAttributeInfoForFeature was not returning the ~order~ attribute.

------------
07.00.00.35 - 03/07/08
------------

- FIX - #188 - Fixes to ClearCustomMenuItems.


Thursday, March 06, 2008

GTV Control version 7.0.0.34 is Available



Version 7.0.x.34 of the GTViewer .NET Control is available.

Several versions rolled into one blog posting here. Major additons to the .NET control are support for Feature Tooltips, Data Monitor Events, Persistent Highlighting, and the Emphasize Session Graphics Mode.

------------
07.00.00.34 - 03/06/08
------------

- NEW - #186 - Persistent highlight functionality. New Methods:

bool HighlightAddFeature(int highlightId, int categoryId, int offset, Color highlightColor, int weight, double minThreshold,
double maxThreshold)

bool HighlightReset(int highlightId)

bool HighlightAddCircle( double x, double y, double radius, int radiusMode, Color highlightColor, int weight, double minThreshold, double maxThreshold)

bool HighlightResetCircles()

bool FitHighlighted(double buffer);

- NEW - #187 - EmphasizeSessionGraphics property added to allow the Emphasize Session Graphics mode to be turned on and off.

------------
07.00.00.33 - 03/05/08
------------

- NEW - #180 - New Method:

bool DM_HighlightItem(int listId, String itemId, bool highlightFlag, Color highlightColor, bool invalidateFlag)

- NEW - #181 - Feature Tooltip support has been added. FeatureTooltip event and FeatureTooltipMode property. The FeatureToolTipMaximumZoom,
FeatureToolTipMaximumScale, FeatureToolTipMinimumZoom, and
FeatureToolTipMinimumScale Data Properties has been added.

- FIX - #182 - An Invalid entry was added to the ControlViewType enum.

- NEW - #183 - New Methods:

bool FeatureTooltipAdd(int categoryId, String filterStr, String formatStr)

bool FeatureTooltipReset()

- NEW - #184 - Thematic Query (Types 10,11,13) and Prompt Query (Types 20,21,23) are now supported by QueryInitialize and QueryFetchRecord.

- NEW - #185 - Default Maximum Query Records returned changed to 1000. Data Property MaxRecordsReturned added so that the max can be changed.

------------
07.00.00.32 - 03/02/08
------------

- NEW - #178 - MOUSE_CLICKED type added to the DataMonitorItem event.

- NEW - #179 - Right Mouse click will now clear any selecte Data Monitor
items.

------------
07.00.00.31 - 03/01/08
------------

- FIX - #169 - Rendering of character id greater than 127 would not display correctly.

- FIX - #170 - Data Monitor items were not having the Text Accent correctly initialized which could cause strange graphics to appear.

- NEW - #171 - The DataMonitorSelected event has been added and is fired when a data monitor item has been selected by the right
mouse menu or the tap-and-hold. The DataMonitorItem event has been added and is fired when the mouse enters or leaves a data monitor item. The DM_EventMode property has been added to allow
Data Monitor items to be selected with the right mouse
and tap-and hold review (SELECT_ONLY) or the mouse move
event entering and leaving an item (MOUSE_ONLY). The
property can also be set to MOUSE_AND_SELECT for both
sets of events to be fired.

------------
07.00.00.30 - 02/28/08
------------
- CHG - The ViewType property has been changed to CurrentViewType.

- FIX - #167 - Drawing Text Accents would cause problems.

- FIX - #168 - Adjustments to Shape With Holes rendering.

Thursday, February 28, 2008

Point to Point Street Routing in GTViewer and GTVx

While most GIS datasets have some form of street network as part of their landbase, this data generally does not contain enough information to provide turn-by-turn directions for getting from one location to another on a map. For example, let’s look at TIGER data which is freely available from the US Census Bureau. While this data does provide street information containing street segments with address ranges, it does not capture the intricacies of the street topology (how the streets are connected together). One way streets, overpasses, and underpasses are just a few of the factors complicating the process of knowing which routes are possible to travel when going from one location to another. More sophisticated street network data is required to perform useful point to point street routing, and while many GIS datasets do not have this quality of street data now, it can be purchased (Tele Atlas’ Dynamap Transportation for example) or available from other parts of the business that may be using the street network data for other applications.

GTI has provided GT/Trace for several years as a tool to simplify the process of tracing electric, gas, water, fiber, and telephone networks. GT/Trace abstracts the commonalities found in all of these network traces and encapsulates the functionality in a well tested, optimized component that greatly speeds and simplifies the implementation of tracing applications. However, tracing street networks is slightly different than tracing a facility network. You may still be traversing from point A to point B, but the rules governing the traces are somewhat different and the size of a street network can be significantly larger than a facility network. GT/Trace has been enhanced to provide additional functionality specifically suited to street networks. The ability to quickly perform a cost based (shortest distance or shortest time traveled) search of a very large network has been added while still maintaining the standardized approach to network tracing that GT/Trace already provided.

GTViewer and GTVx can both take advantage of the new functionality in GT/Trace and provide Point to Point Street Routing functionality if your street network data meets the requirements necessary to support it. Previously, we have recommended our MapPoint integration with GTViewer to accomplish this task, but as more and more of our customers are acquiring high quality street network data, it is natural for the routing to be done within GTViewer or GTVx.

Wednesday, February 27, 2008

GTViewer version 7.0.x.25 is Available



Version 7.0.x.25 of GTViewer is available.

-----------------------
07.00.00.25 - 02/27/08
-----------------------

- NEW - GTV #1010 - GTField Post will now support a %DATE% token for the current date and time.

- NEW - GTV #1009 - New Method:
BOOL RotateElement( long categoryId, long offset, double angle );

- FIX - GTV #1011 - QueryInitialize with Thematic Query would not accept blank prompts as wildcard values, so a new Data Propety has been added called ThematicQueryBlank flag. If set to 1 (default is 0), then any blanks in the prompt query will now be accepted. The QueryFetchRecords has also been updated to return the record values (before it only need to return the prompts since it was an exact match).

- CHG - GTV #1012 - Symbol Fonts are no longer filtered by usage for extract files.

- CHG - GTV #1013 - Extract file no longer filter colors by usage for the extract files.

- NEW - GTV #1014 - Fit Session Graphics toolbar button has been added to the toolbar.

- NEW - GTV #1015 - XML has been added to the GTField Update formats.

- FIX - GTV #1016 - XML export was not correctly converting special characters in text strings to the appropriate XML syntax.

GTVx version 7.0.x.16 is Available



Version 7.0.x.16 of GTVx is available.

-----------------------
07.00.00.16 - 02/27/08
-----------------------

- NEW - GTVX #1009 - New Method:

BOOL RotateElement( long categoryId, long offset, double angle );

- NEW - GTVX #1010 - New Method:

double ComputeDistance(long mode, double x1, double y1, double x2, double y2)

- FIX - GTVX #1011 - QueryInitialize with Thematic Query would not accept blank prompts as wildcard values, so a new Data Propety has been added called ThematicQueryBlank flag. If set to 1 (default is 0), then any blanks in the prompt query will now be accepted. The QueryFetchRecords has also been updated to return the record values (before it only need to return the prompts since it was an exact match).

- CHG - GTVX #1012 - Symbol Fonts are no longer filtered by usage for extract files.

- CHG - GTVX #1013 - Extract file no longer filter colors by usage for the extract files.

Tuesday, February 26, 2008

Incrementally Updating GTViewer Data – The Next Generation

For more than two years, GTData has provided two utilities for performing incremental updates to GTViewer data: GTUpdateData and GTUpdateGtg. These utilities integrate graphic and tabular changes into a GTViewer dataset. While these utilities can be used to provide a substantial reduction in the time required to update a GTViewer dataset and in the amount of data that must be distributed to the clients, they are just two pieces of a much bigger puzzle. GTI is currently testing its second generation Increment Update Solution. While the end result is the same, this new approach provides a much more sophisticated set of tools and further reduces the client-side processing required to apply an incremental update .

Instead of providing a couple of utilities to perform the heavy-lifting, the new Incremental Update utilities work together forming a complete solution to the incremental data update process. One of the new utilities is the Incremental Update Manager (called GTIncUpdMgr) which controls the workflow aspects of the incremental update process. This tool is responsible for:
  • Compiling and compressing the update file that will be distributed to the clients

  • Managing the series information in the update file to ensure that a client can only apply incremental updates in the proper sequence

  • Decompressing the update file on the client and applying the incremental changes to the client’s GTViewer dataset

While the Update Manager is not required to perform an incremental update, it streamlines the process and provides assurances that update files are properly created, and that a client cannot accidentally skip intermediate updates which would likely corrupt their local dataset. The Update Manager also orchestrates the process of applying all of the different update components to the appropriate GTViewer data (graphics, linkage, tabular, and query). The Update manager uses the rest of the new utilities to perform its job: GTUpdateGtg1, GTUpdateData, GTQuery, GTDelQueryRec, and GTAppendQuery.

The original GTUpdateGtg utility has been replaced with the new GTUpdateGtg1 which not only applies a graphics update to a GTViewer graphics file (.gtg) but also to the Spatial Index file (.gtn) and Linkage File (.key). Simultaneously updating the graphics, index, and linkage files prevents the client from having to regenerate the spatial index and linkage files from an updated graphics file which saves a considerable amount of time and processing on the client.

The GTUpdateData utility has been enhanced to update not only the GTViewer tabular file (data.txt), but also the tabular index file (.idx). The client no longer has to regenerate the tabular index file from an updated tabular data file. The GTUpdateData utility also creates some temporary files used to accelerate the Query update process.

The GTQuery utility has been updated to more easily generate incremental query files from the Incremental tabular files used by GTUpdateData. These incremental query files are then integrated into the existing query files (.qry) with the GTDelQueryRec and GTAppendQuery utilities. Updating a query file is significantly faster than regenerating a query especially if only a fraction of the records used by the query have changed since the last update. The previous incarnation of the Incremental Update utilities required that each query be regenerated from the updated tabular data file which could take some time to complete on the client.

While all of these additional utilities and steps may seem to complicate the incremental update process, this second generation of the Incremental Update Process is actually much simpler to implement and use because the Update Manager handles all of the details.

Incremental Updates may not be for everyone, but if your GIS can support the creation of the incremental update files (by knowing which features have changed since the last update), then the next generation of the Incremental Update Solution maybe an option for you.



GTViewer Passes the 8000 Mark

GTViewer passes the 8,000 mark. Read more at:

http://biz.yahoo.com/bw/080226/20080226005517.html?.v=1

Tuesday, February 12, 2008

GTV .NET Control version 7.0.x.29 is Available



Version 7.0.x.29 of the GTViewer .NET Control is available.


------------
07.00.00.29 - 02/12/08
------------
- FIX - #161 - Reviewing a feature while drawing a line would cause a problem if no points were already drawn.


- FIX - #162 - Fillable element using the Border Color style property were not not inverting their color when drawn on the same color background.

- NEW - #163 - MaxZoomLevel, MaxZoomScale, and MinZoomScale added to Additional Properties section.

- NEW - #164 - GetDataProperty and SetDataProperty now support: MinZoomLevel, MaxZoomLevel, MinZoomScale, MaxZoomScale

- NEW - #165 - GetFontList method added.

- NEW - #166 - ColorTable Property Added.

Friday, February 01, 2008

Streetlight Inspections at PNM using GTViewer

Read how Public Service of New Mexico uses GTViewer to speed Streetlight Inspections:

http://www10.giscafe.com/nbc/articles/view_article.php?section=CorpNews&articleid=483210


Alternate site:

http://www.directionsmag.com/press.releases/index.php?duty=Show&id=20836&trv=1

GTVx version 7.0.x.15 is Available



Version 7.0.x.15 of GTVx is available.

-----------------------
07.00.00.15 - 02/01/08
-----------------------

- FIX - The FilterTooltip_Pre entry has been added to allow FilterTooltip entries greater than 255 characters.

- FIX - Certain Additional Properties section attribute were not carried from a .gtx file created from a .gtx file.

- FIX - GTVX #1002 - Feature Tooltip was not being cancelled after a session graphics element has been started.

- FIX - GTVX #1001 - The ReQuery button in the Query Results would only repopulate the first 3 prompts for regular queries (Thematics Queries were not being supported). Now, Thematic Queries and any number of prompts are supported.

- NEW - GTVX #1003 - Feature Tooltip now allows an =, :, or - to be placed after the attribute label. If no separator is provided, the default = will be used.

- FIX - GTVX #1005 - Fillable elements were not inverting the element color when drawn on a background of the same color if the border color style were used.

- NEW - GTV #1008 - FeatureToolTipMaximum Threshold added to Additional Properties and to Get and Set DataProperties

GTViewer version 7.0.x.24 is Available



Version 7.0.x.24 of GTViewer is available.

-----------------------
07.00.00.24 - 02/01/08
-----------------------

- NEW - GTV #1006 - GTField Post Functionality.

- NEW - GTV #1007 - The UseShortNameForFeatureCounting entry has been added to the Additional Properties Section so that you can use just the Filter Name in the Feature Count dialog instead of the Category Name - Filter Name.

- NEW - GTV #1008 - FeatureToolTipMaximum Threshold added to Additional Properties and to Get and Set DataProperties.



Thursday, January 31, 2008

GTViewer 7.0.x.23 is Available



Version 7.0.x.23 of GTViewer is available.

-----------------------
07.00.00.23 - 01/31/08
-----------------------

- FIX - Certain Additional Properties section attribute were not carried from a .gtx file created from a .gtx file.

- FIX - The GTFieldFilterString is limited to 255 character. Another entry called GTFieldFilterString_Continue can be used repeated to add more lines of information in the Additional Properties section or in the addprop.ini file.

- FIX - The FilterTooltip_Pre entry has been added to allow FilterTooltip entries greater than 255 characters.

- FIX - GTV #1001 - The ReQuery button in the Query Results would only repopulate the first 3 prompts for regular queries (Thematics Queries were not being supported). Now, Thematic Queries and any number of prompts are supported.

- NEW - GTV #1003 - Feature Tooltip now allows an =, :, or - to be placed after the attribute label. If no separator is provided, the default = will be used.

- NEW - GTV #1004 - The Feature Count Options dialog now supports a horizontal scrollbar in the listbox of features.

- FIX - GTV #1005 - Fillable elements were not inverting the element color when drawn on a background of the same color if the border color style were used.


Tuesday, January 29, 2008

GTViewer Impressive at DistribuTECH




Everyone who came to booth 2309 at the DistribuTECH conference was complimentary about GTViewer's snappy performance and intuitive interface. Whether showing 3-inch color aerial photography on a hand-held device or showing gigabytes of GIS data on a laptop, "That's fast," was the most frequent comment.

Friday, January 18, 2008

GTI will be at DistribuTECH 2008



GTI will be in booth 2309 at the DistribuTECH conference in Tampa, Florida, January 22-24. Come visit and see why so many people are excited about the performance and ease of use that GTViewer brings to the world of mobile mapping.

Tuesday, January 15, 2008

GTData version 7.0.0.4 is Available



Version 7.0.0.4 of GTData is available.

-----------
07.00.00.04 - 01/15/08
-----------

- FIX - GTQuery - If the Feature entry were used without a FilterFile entry, an error message is now displayed instead of processing the file with no records being processed.

- FIX - GTExtract - Extracting data with Double Ellipse elements (Type 106) would cause problems.

- NEW - GTDataSum - Added to GTData to find the number of tables, the number of records in each table, and the size of each table in a data.txt file.


GTViewer version 7.0.x.22 is Available



Version 7.0.x.22 of GTViewer is available.

-----------------------
07.00.00.22 - 01/15/08
-----------------------

- CHG - The DefaultMode 1 for did not apply FilterMap entries. It will now apply any applicable FilterMap entry and default to the source element's styles otherwise.


- FIX - Dgn Exporter was not computing Cell Header ranges correctly for stroked symbols.

- NEW - DGN Exporter now supports an IgnoreSymbolJustification entry.

- FIX - DGN Exporter now supports FontMap entries for Symbol elements.

- FIX - Extracting data with Double Ellipse elements (Type 106) would cause problems.

GTVx version 7.0.x.14 is Available



Version 7.0.x.14 of GTVx is available.

-----------------------
07.00.00.14 - 01/15/08
-----------------------

- CHG - The DefaultMode 1 for did not apply FilterMap entries. It will now apply any applicable FilterMap entry and default to the source element's styles otherwise.

- FIX - Dgn Exporter was not computing Cell Header ranges correctly for stroked symbols.

- NEW - DGN Exporter now supports an IgnoreSymbolJustification entry.

- FIX - DGN Exporter now supports FontMap entries for Symbol elements.

- FIX - Extracting data with Double Ellipse elements (Type 106) would cause problems.


Monday, December 17, 2007

Navigating the G/Tech Metadata with GTI’s Metadata Explorer (GTMetaExp) – Part 1

GTI has gained considerable experience with Intergraph’s G/Technology metadata through the development of our export tools that take GIS data out of Oracle and into the GTViewer format (which can then be used with GTViewer, Pocket GTViewer, and/or GTWeb). GTI’s G/Tech Exporter is now in its fourth generation and offers better support and flexibility for quickly and accurately getting graphic and tabular data out of a G/Tech database. The current incarnation of GTI’s G/Tech Exporter provides a full GUI interface, provides dynamic style and label rule evaluation, and automatically extracts style and symbology information. The Exporter is a heavy user of the G/Tech Metadata when exporting the GIS data, so it was a small leap for GTI to reuse some of this technology in a tool other than the Exporter, and the GTI Metadata Explorer was born.

As many people who deal with G/Tech data know, Toad has been the tool of choice for navigating the G/Tech metadata. The G/Tech metadata contains all of the information describing the GIS and ranges from the list of features and their components, relationships between features, Display Legend info, to symbology. By using Toad’s Schema Browser or by executing home brewed SQL scripts, you can find anything you want to know in the metadata. And while I love Toad (I really do) and all it can do, and fully agree that this method of exploring the metadata is significantly better than what you could do with SQL*Plus or any of the G/Tech utilities, Toad doesn’t know anything about the G/Tech metadata or how the many tables interrelate. It should also be pointed out that Toad shouldn’t know these relationships because it is a database administration and SQL development tool, not a metadata viewer.

It is easy to illustrate the complexity of the metadata just by posing a simple question: “What are the components of a Pole feature?”

First, you need to find the Feature Number for a Pole Feature:

select *
from g3e_feature
where g3e_username='Pole';

Then use the feature number (208) to find the pole feature’s components:

select * from g3e_featurecomponent a, g3e_component b
where a.g3e_fno=208 and a.g3e_cno=b.g3e_cno
order by a.g3e_ordinal;

And you still have to wade through the entire list attributes for the joined table results to get the information you need. If you want to see all of the attributes for one of the tabular components, then SQL gets even more complicated.

With the GTI Metadata Explorer, you simply navigate from Feature to Attribute. To find information out about a Pole, just select it in the feature list:




Clicking on a feature will display all of its component information:





If you want to know the attributes for one of the feature’s tabular component, click on the tabular component in the list.




If you have an attribute associated with a value list, click on the attribute and to get a list of the values.


All together this process looks like the following:



The GTI Metadata Explorer does much more than navigate through the Feature/Component relationships. Other features include the:

Feature to Style functionality which allows the user to navigate from a Legend, to a Features, to the Style Rules, to the Style and Symbology. This feature will be discussed in detail in a later posting, but here is a screenshot of the information it can provide:




Another feature the explorer provides is a set of Validation routines. The correctness of certain aspects of the metadata can be verified.





  • Style Rule, Label Rule, and Label Format validation routines are provided to test the correctness of the expressions used in the metadata rules. It turns out that there are quite a few mistakes in these expressions that G/Tech does not catch and these validation routines can quickly identify them.
  • Other validation routines can detect Unreachable Rules. It is common to see in G/Tech data a list of rules for a feature where one or more rules have the same conditional expression. Obviously, something is wrong with these style rules because the first rule with the expression will always trigger the associated style and the duplicate(s) will never be reached.
  • Legend Validation will analyze a legend’s hierarchical structure and verify that there is a leaf node for legend level of the legend. It is not uncommon to see 3 levels of grouping, but no features at the lowest node.
  • Geometry Property Validation will search for obvious problems in a geometry table’s attributes. Whether these problems come from bulk data conversion when migrating from classic Framme data or from some other process, it is not uncommon to have poorly constructed geometry records in a G/Tech database. This validation is not technically testing metadata correctness since it is examining each geometry record in the database, but it is a useful test none the less.
More detailed information about the validation routines will be in a later posting.

One of the more interesting features of the GTI Metadata Explorer is the Summary Report feature. This report allows the user to select a set of features from a particular legend, then create a summary report for those features that will tell the number of times each style rule and label rule are used for the current data. This report is ideal for testing the integrity of both your data and metadata. For example, if you have no retired poles in your data, but the summary report show that there are 500,000 poles using the Retired Pole symbology, you know there is a problem that should be investigated. The report will also provide a quick and easy view of the usage of your style and label rules which is not something you can do by simply querying the database with Toad.



This posting just gives a taste of what the GTI Metadata Explorer can do. More postings will be added later describing the features in more detail. The Explorer is currently a beta application, but if you would like to try it, please contact me (joey.rogers@gti-us.com), and I will get you started in the beta program.

Friday, December 14, 2007

GTViewer version 7.0.x.20 is Available



Version 7.0.x.20 of GTViewer is available.

-----------------------
07.00.00.20 - 12/13/07
-----------------------

- FIX - Feature Tooltips were causing Data Monitor Tooltips to not display.

- FIX - Feature Tooltips with multiple items where one or more items were blank would unnecessarily show the separator.

- CHG - Feature selection tolerance was increased from 2 to 4.

- NEW - New properties for GetDataProperty and SetDataProperty: EmphasizeSessionGraphicsColor and SelectionTolerance

- FIX - If the GPS Components were not installed, bringing up the GPS dialog could cause unexpected results.

- NEW - Options/Settings now has Selection Tolerance as a property so the user can adjust the tolerance level.

- NEW - New Methods:

boolean SetCurrentBackgroundColor(long value);

long GetCurrentBackgroundColor();