Revisions to GEODESY

This is the revisions list for the release of version 0.96 of GEODESY

The release date is 08/30/03


07/29/02:
Added the function Converge. 
This function computes the convergence of meridians between two parallels
of Latitude. The function returns the convergence in meters in the 
GeoStruct component Distance (i.e. gs.Distance). DO NOT confuse this 
function with the computation of the Grid North (convergence) in LL2UTM
or UTM2ll.

08/11/02:
Fixed zero distance problem in VDirect and fixed the same point logic 
problem in VInverse. Thanks to those that pointed out the problems

08/22/02:
changed name of the constant WICISMIN to WICMAXMINS and WICISSEC to 
WICMAXSECS to better show their use.

08/20/02:
Added the computation of Grid North (sometimes called the Convergence) to
the functions LL2UTM and UTM2LL. This value is returned in the UTMStruct
component Gamma (i.e. utm.Gamma) and is expressed in decimal degrees.

08/22/02:
Added the function ParseLatLong.
This function parses a string containing an angle and extracts the degrees
minutes and seconds. The string must be in the format dd:mm:ss.ss or 
dd:mm.mm or dd.ddd The string delimiters can be a colon (:) or a 
semicolon (;) or a comma (,). The angle is returned as decimal degrees. 
This function is useful for use with data entry into a text box. I use 
the textbox KeyPress event to restrict input of degrees to digits, 
delimiters and tab and backspace keys along with the valid delimiters
so that ParseLatLong() will return the value of an angle passed to it 
from TextBox.Text.

NOTE: ParseLatLong() requires the use of Tokenizer in WICUtilities.bas.

The function returns:
 WICNOERROR if OK
 WICBADTOKENCT if there are too many tokens
 WICNOTNUMERIC if any token is not numeric
 WICBADMINSEC if either minutes exceeds WICMAXMINS or seconds exceed
              WICMAXSECS

08/28/02:
Added the function FmtDMS1
this function improves upon the function FmtDMS by making the format of
angles more flexible. The original FmtDMS has been retained.

08/28/02:
Added the function LeftDecStr
This function was added to support FmtDMS1. It returns a string for use in 
the VB Format() function. This string contains the correct number of "#" 
characters to display the integer portion of an angle expressed in decimal
degrees. 

02/01/03:
Added the following to WICUtilities.bas:
The function BuildMEString to provide capability to build a mask
string for the Masked Edit component

The function ParseMELatLong to extract the lat or long value from
the string built and used for a Masked Edit component as discussed above.

05/20/03:
Geodesy.Cls error corrected.
The datumName(62) = "NAD27 Conus" was incorrect and was changed to
datumName(61) = "NAD27 CONUS"

05/20/03
Variable declarations corrected.
Multiple variables declared on a single line were changed from i.e.

Dim A, B, C as double to Dim A as double. B as double, C as double.

While this did not really affect the program functionality as A and B
would be considered variants and cast to double when first used.However 
it is bad programming practice on my part.

12/12/03
Minor correction to UTM2LL in module Mapstuff.BAS


Also

Sample Apps:
I have updated some of the sample apps that are included in the 
distribution.

Utilities Module:
I have begun a utilities module (WICUtilities.bas version 0.90) into which
I intend to place generally useful utilities. It currently contains the
function Tokenizer().

08/26/02:
Added the function Tokenizer (in the module WICUtilities). 
This function requires the string to be tokenized,an unbounded array to
receive the tokens as they are found,a string containing all the valid
delimiters and an optional boolean to inform the function how to handle
void tokens. True to include them in the array or false to ignore them.
The function handles sizing of the array. The tokens are returned as
array elements in the order found. NOTE: the array is zero based. The
function returns the count of the tokens found. The function returns
-1 if there were no tokens to be found.

WARNING: To use ParseLatLong you must include WICUtilities.bas in your
         project.
NOTE: See ParseLatLong() code to see how Tokenizer() is used.


08/16/03 [errors pointed out by Robert Krohn]:
Revised VInverse to take care of "expression to complex" error
Revised VDirect to take care of "expression to complex" error
Revised VDirect to handle conversion of radian values of Longitue2,
  Latitude2 and Azimuth21 to decimal degrees.
Revised DMStoD to handle passing by value problem
Revised DtoDMS to handle conversion of minutes and seconds

08/30/03
I have added the function GetFlattening() to get the inverse flattening
(1/f) from the also added class module array rflat.

The latest version of the Visual Basic souce code in available at
http://www.windreader.com/geodesy.

Vic Fraenckel
December 12, 2003