.. back to TriplexWare 

Geographic tools, DLL API's and sample programs

..to manage some things he can fly over

 TRIANGLE API     PROJ Toolkit & API     ShapeLib API     Contouring   

Core Trinagle API

Port of the UNIX application TRIANGLE written by Jonathan Richard Shewchuk for DELPHI use under Window NT

The application is used to create a two-dimensional mesh triangulaytion in Delaunay terms. It supports Delaunay triangulation, constraint polygon triangulation and the creation of Voronoi-diagrams. The Program was modfied to use interfaces for Delphi 5 under Windows NT 4.0. To be opportune with the compiler family, the code was adapted to use the free Borland C++ Compiler BCC 5.5. The result is a dynamic liked library with a DELPHI core API. The code is very volatile and it is the start for programming a secure encapsulation of the API as a component.

 .. to the Download Page !
 ..to Top 

Projection toolkit and Delphi PROJ API

 Download Source     Download Binary     Ellipsoides     Transformation   

Port and Delphi API of the UNIX application PROJ.4.4.3, 4.4.6 and 4.4.7 written Gerald Evenden and maintained Frank Warmerdam for DELPHI use under Window NT

The API is used to handle geographic or geodetic transformation. It supports a large number of coordinate system geographic datas and predefined transformations.

The Program was modfied to use interfaces for Delphi 5 under Windows NT 4.0. To be opportune with the compiler family, the code was adapted to use the free Borland C++ Compiler BCC 5.5. The result is a dynamic liked library with a DELPHI core API. The first Proj library version was 4.4.3. These library version was updated now and synchronized with the code version 4.4.7 coming up from Frank Warmerdam The migration from version 4.4.3 to 4.4.6 and now 4.4.7 has little different resulting behavoir of the proj tools in version 4.4.3 and the library.

  1. The Library has a new DLL/LIB name called proj446.dll/ proj447.dll to prevent collisions with the former project.
  2. The function call in the proj.dll
    ProjPJ * pj_init_plus( const char *definition, const char *aDataPath )
    is now notated in a seperate function for the libraries proj$(VER).dll.
    ProjPJ * pj_init_plus_path( const char *definition, const char *aDataPath )
    for C or
    Function _pj_init_plus_path( const definition:PChar; const aDataPath:PChar ): PProjPJ; ...
    for Delphi where aDataPath is the path to the "nad" directory p.h.
     or aDataPath:='c:\proj\nad';
The new features of the proj libraries are announced at http://www.remotesensing.org/proj or the related newsgroup.

Download Sources

Original sources and programs:

Updated full downwload version 4.4.7.r, 9th April 2003, with new demo files und complete NAD distribution.
 lib.proj-4.4.7.r.zip 2.6 MByte 
Updated full downwload version 4.4.6.r, 3rd April 2003, with new demo files und complete NAD distribution.
 lib.proj-4.4.6.r.zip 2.5 MByte 

Version 4.4.3 Sources & Demos (TARBALL)
  proj_api.tar.gz 340 kByte 
Version 4.4.3 Sources & Demos (ZIP)
  proj_api.zip 399 kByte 

Download Win32 Binaries

Updated binaries version 4.4.7.b, 9th April 2003, with proj, cs2cs, geod, nad2nad, nadgrid, proj447.lib, proj447.dll, proj_api.h.
 lib.proj-4.4.7.b.zip 699 KByte 
Updated binaries version 4.4.6.b, 3th April 2003, with proj, cs2cs, geod, nad2nad, nadgrid, proj446.lib, proj446.dll, proj_api.h.
 lib.proj-4.4.6.b.zip 689 KByte 

Dynamic Linked Library Version 4.4.3 DLL
 proj_dll.zip 103 kByte 
Program cs2cs Library Version 4.4.3
  cs2cs.zip 310 kByte 
Program geod Library Version 4.4.3
  geod.zip 310 kByte 
Program nad2nad Library Version 4.4.3
  nad2nad.zip 310 kByte 
Program proj Library Version 4.4.3
  proj.zip 310 kByte 

Supported Ellipsoides

List of Ellipsoides
  1. Airy 1830
  2. Andrae 1876 (Den., Iclnd.)
  3. Australian Natl & S. Amer. 1969
  4. Appl. Physics. 1965
  5. Bessel 1841, Namibia
  6. Clarke 1866, 1880
  7. Comm. des Poids et Mesures 1799
  8. Delambre 1810 (Belgium)
  9. Engelis 1985
  10. Everest 1830,1948, 1956, 1969, Sabah & Sarawak
  11. Fischer (Mercury Datum), Modified 1960, 1968
  12. GRS IUGG (1967, 1980)
  13. Helmert 1906
  14. Hough
  15. IAU 1976
  16. International 1909 (Hayford)
  17. Kaula 1961
  18. Krassovsky, 1942
  19. Lerch 1979
  20. Maupertius 1738
  21. MERIT 1983
  22. Modified Airy
  23. Naval Weapons Lab., 1965
  24. New International 1967
  25. Plessis 1817 (France)
  26. Southeast Asia
  27. Soviet Geodetic System 85
  28. Walbeck
  29. WGS 60, 66, 72, 84
 ..to Top 

Supported Transformations

Transformation List
  1. Albers Equal Area
  2. Azimuthal Equidistant
  3. Airy
  4. Aitoff
  5. Mod. Stererographics of Alaska
  6. Apian Globular I
  7. August Epicycloidal
  8. Bacon Globular
  9. Bipolar conic of western hemisphere
  10. Boggs Eumorphic
  11. Bonne (Werner lat_1=90)
  12. Cassini
  13. Central Cylindrical
  14. Equal Area Cylindrical
  15. Chamberlin Trimetric
  16. Collignon
  17. Craster Parabolic (Putnins P4)
  18. Denoyer Semi-Elliptical
  19. Eckert I,II,III,IV,V,VI
  20. Equidistant Cylindrical (Plate Caree)
  21. Equidistant Conic
  22. Euler
  23. Fahey
  24. Foucaut
  25. Foucaut Sinusoidal
  26. Gall (Gall Stereographic)
  27. Ginsburg VIII (TsNIIGAiK)
  28. General Sinusoidal Series
  29. Gnomonic
  30. Goode Homolosine
  31. Mod. Stererographics of 48 U.S.
  32. Mod. Stererographics of 50 U.S.
  33. Hammer & Eckert-Greifendorff
  34. Hatano Asymmetrical Equal Area
  35. Internation Map of the World Polyconic
  36. Kavraisky V,VII
  37. Laborde
  38. Lambert Azimuthal Equal Area
  39. Lagrange
  40. Larrivee
  41. Laskowski
  42. Lat/long (Geodetic)
  43. Lambert Conformal Conic
  44. Lambert Equal Area Conic
  45. Lee Oblated Stereographic
  46. Loximuthal
  47. Space oblique for LANDSAT
  48. McBryde-Thomas Flat-Polar Sine
  49. McBryde-Thomas Flat-Pole Sine (No. 2)
  50. McBride-Thomas Flat-Polar Parabolic
  51. McBryde-Thomas Flat-Polar Quartic
  52. McBryde-Thomas Flat-Polar Sinusoidal
  53. Mercator
  54. Miller Oblated Stereographic
  55. Miller Cylindrical
  56. Modified Polyconic
  57. Mollweide
  58. Murdoch I,II,III
  59. Nell
  60. Nell-Hammer
  61. Nicolosi Globular
  62. Near-sided perspective
  63. New Zealand Map Grid
  64. General Oblique Transformation
  65. Oblique Cylindrical Equal Area
  66. Oblated Equal Area
  67. Oblique Mercator
  68. Ortelius Oval
  69. Orthographic
  70. Perspective Conic
  71. Polyconic (American)
  72. Putnins P1,P2,P3,P3',P4',P5,P5',P6,P6'
  73. Quartic Authalic
  74. Robinson
  75. Rectangular Polyconic
  76. Sinusoidal (Sanson-Flamsteed)
  77. Swiss. Obl. Mercator
  78. Stereographic
  79. Transverse Central Cylindrical
  80. Transverse Cylindrical Equal Area
  81. Tissot Conic
  82. Transverse Mercator
  83. Two Point Equidistant
  84. Tilted perspective
  85. Universal Polar Stereographic
  86. Urmaev V
  87. Urmaev Flat-Polar Sinusoidal
  88. Universal Transverse Mercator (UTM)
  89. van der Grinten (I),II,III,IV
  90. Vitkovsky I
  91. Wagner I,II,III,IV,V,VI,VII
  92. Werenskiold I
  93. Winkel I,II,Tripel

Delphi Shapelib API

Delphi API to the ArcView® shape format vie the OpenSource Shapelib-1.2.9 library

This API enables the access to the widely used ArcView® Shape format by the usage of the OpenSource Shapelib 1.2.9 library written by Frank Warmerdam.

 .. to the Download Page !
 ..to Top 

Contouring Algorithms (raster to vector)

 Contouring by Paul D. Bourke     Contouring by M. Weber (MUMIL)   

Contouring routine published by Paul D. Bourke and Nicholas Yue

The Contouring Routine was written by Paul D. Brouke in Fortran and proted by Nicholas Yue into C. For these sources see  (original sources) . CONREC is a contouring subroutine for rectangularily spaced data. It emits calls to a line drawing subroutine supplied by the user which draws a contour map corresponding to double on a randomly spaced rectangular grid. The coordinates emitted are in the same units given in the x[] and y[] arrays as sample:

     x[0]:=0; x[1]:=1;..x[dimx-1]:=dimx-1; and
     y[0]:=0; y[1]:=1;..y[dimy-1]:=dimy-1;.

Any number of contour levels may be specified but they must be in order of increasing value as sample:

     z[0]:=-100; z[1]:=-50;..z[dimh-1]:=100;

and the number of contur levels must be given as sample dimh. As this code is ported as from FORTRAN-77, ANSI C, Delphi and the procedural is of course a PASCALIAN please be very careful of the various indices like

    ilb,iub, jlb and jub,

remeber that C/C++ and for dynamic arrays in delphi indices starts from zero (0). OK. here is listing with a small example directly applied sample part via a functional definition f(x,y).

 ..to the Download Page 
 ..to Top 

Contouring routine published by M. Weber

The following contouring routine was published in germany 1987 by Markus Weber Turbopascal Tools Practical usage of Turbo Pascal in nature science and I adopt it in 1990 for general use from the third edition of these book ISBN-3-528-24543-3.

The basic idea of the algorithm is the desciption of the movement of an unintelligent mouse in a labyrinth with clockwise spin if the move fails and a counter clock wise spin if the move succeeds for the next exploring direction. Versus the contouring other authors like of Paul. D. Brouke it delivers open or closed polygons (rings) and it is possible to create faces over on height intersection plane. To build a DEM or body of heigth lines the algorithm will take more than height intersections and therefore more computational power.

In technical terms of the time the routine was implemented as a direct drawing routine to the, in recent considerations, low resoluted PC DOS screen. I extract the these parts from the routine and try to make it industial hard, to check border conditions, uniqe existence polygons of each height inertsected part.

..to MUMIL - a cursor based contouring routine
 ..to Top 
 ..to Top 

- VII/2002 Alexander Weidauer