SDL Component Suite - TGeoMap

TGeoMap is a Delphi™ component providing support for displaying calibrated scanned maps. It combines the graphical display of scanned images with the logic of calibrating the corresponding graticule. In addition, TGeoMap supports displaying and managing landmarks. The map image may be panned by dragging it with the mouse.

Please note that the use of TGeoMap is not only restricted to geographic maps. Due to its general calibration approach it can be used for any other application which requires a calibrated image (e.g. spectra, scanned medical images, sensitive maps, etc.)

More details can be found in the online help pages.

The unit GEOMAP is part of the SDL Component Suite and is available for Borlands Delphi™, C++Builder™ and Kylix™.


Free Sample Programs

SimpleGeoMap Shows how to use the unit GEOMAP. Two calibrated maps of Austria and Switzerland are provided along with this application. Sources of the sample program included (Delphi 6). simplegeomap.zip
(678 kB)
MoveCar Displays a car driving along a route of Austria. If you want to use GEOMAP for visualizing your current position (obtained from a GPS receiver), you should look into the source code (Delphi 6) of this example. movecar.zip
(1472 kB)
GeoCal3P This sample application shows how to perform a 3-point calibration of a map assuming that the scale of the map is sufficiently small so that the graticule will be linear. This 3-point calibration procedure handles even rotated or distorted maps as long as the distortion is linear. geocal3p.zip
(2880 kB)


What's new:

  • Release 9.0   [May-28, 2007]
     
  • Release 8.5   [Feb-18, 2006]
     
  • Release 8.2   [Nov-03, 2004]
     
    • no changes

  • Release 8.1   [Aug-29, 2004]
     
    • available for Delphi™ 8 for .NET
    • new read-only property MapBitmap gives access to the internal map image
    • new property GratLineDist allows to set the distance betweem graticule lines

  • Release 8.0   [Apr-15, 2004]
     
    • methods for printing a map implemented (Printit and CopyToOpenPrinter)
    • caching mechanism implemented in order to speed up the handling of reduced maps (property CacheMagLimit)
    • new property AntiAlias allows to switch between color mapping modes
    • new property MouseAction allows interactive zooming and panning, and a rubber band
    • overloaded versions of CalcLatitude and CalcLongitude can deal with TPoint types
    • new methods MouseBox and AbortMouseBox implemented
    • new methods ControlToMapImage and MapImageToControl transform coordinates between coordinate spaces of scanned map image and screen display
    • method LoadCalDataFromXMLFile renamed to LoadCalDataFromXML (now two overloaded versions for files and streams are available)
    • CreateAndLoadEmptyMap: method to create a calibrated empty map
    • ParseCalibData is now available in two overloaded versions (read from file and stream)
    • property AllowPan replaced by property MouseAction
    • new property to confine the movement of a map (ConfinePanToMapImage)
    • new property Magnification allows to magnify map
    • new method CalibQuality to check the calibration quality of a map
    • new property SuppressPaint speeds up drawing of landmarks
    • LandMarkData is no longer read-only property
    • new event OnDataLoading allows to monitor the progress of loading a map image
    • SaveCalDataAsXMLFile renamed to SaveCalDataAsXML (now two overloaded versions for files and streams are available)
    • highlighting of landmarks implemented (HighLightLandmark, SetHighlightProperties)
    • new procedure DrawLandMarkSymbolOnCanvas allows to create symbol legends
    • new landmark symbols: lmCrossBox, lmSpade and lmUserDef
    • new method BringMapPixelToCenter moves map so that the specified pixel is at the center of the screen
    • Zoom history implemented (properties ZoomHistory, ZoomStack, ClearZoomHistory
    • ZoomState property implemented
    • ZoomPanEvent implemented
    • array LMTypeNames is now public
    • FindLandMark implemented
    • new functions LatitToStr and LongitToStr implemented
    • new event: OnDrawLandmark allows to draw user-defined landmarks
    • CopyToClipBoard implemented
    • PositionInMap and IsPositionWithinMap improved
    • MouseAction: extended by maRubberband, three new events supporting rubberband function: OnBeginRubberband, OnContinueRubberband, OnEndRubberband
    • new method PanMapToFillWindow implemented
    • new property LMRandomDisplayThreshold allows to control the number of landmarks displayed
    • bug fix: loading of landmarks does not crash anymore if landmark data contain empty line
    • bug fix: SearchData correctly returns now position of gitTown and gitBLOB entries

  • Release 7.2   [Mar-23, 2003]
     
    • GEOMAP is now part of GeoPack
    • function ParseCalibData implemented
    • additional calibration model based on biquadratic polynomials
    • new procedure RecalcCalibration allows to recalculate calibration model
    • RestoreLastDeletedCalPoint can be used to undo the removal of a calibration point
    • function PositionInMap implemented
    • bug fix: calibration of graticule led to wrong results if insufficient data were supplied
    • bug fix: CalcLatitude, CalcLongitude, and CalcPixelCoords returned distorted values

  • Release 7.0   [Sep-15, 2002]
     
    • TGeoMap is now available to the public and included in the SDL Component Suite 7.0