Skip to content

Visual control for Delphi and Lazarus to display OSM map

License

Notifications You must be signed in to change notification settings

entersoftone/Delphi_OSMMap

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OSM MapControl

Delphi/Lazarus visual component for displaying a map. Could use any map tile provider (currently implemented OpenStreetMap, OpenTopoMap, HERE, Google). Also includes helper classes for storing and downloading map tiles. Demo project implements downloading map tiles from network.

Alpha version, interface could change

Compatibility

Tested on:

  • Delphi XE2 and 10.1, VCL, Windows
  • Lazarus 2.1.0 trunk & FPC 3.3.1 trunk, LCL, Windows / Linux

Tile providers

Adding a new tile provider is easy, just learn its API and take implemented providers as example. When you're done, create pull request and I'll happily merge it.

For description of tile URL template placeholders refer to OSM.TilesProvider.FormatTileURL function (or docs)

Project structure

  • OSM.SlippyMapUtils - utility functions, variables and types
  • OSM.TileStorage - classes TTileBitmapCache implementing cache of map tiles organized as a queue and TTileStorage implementing disc storage of map tiles.
  • OSM.NetworkRequest - utils and classes for network requesting of map tiles. Class TNetworkRequestQueue implements threaded non-blocking queue of network requests. Unit doesn't contain any real network request engine.
  • OSM.NetworkRequest.Synapse, OSM.NetworkRequest.WinInet, OSM.NetworkRequest.RTL contain concrete implementations of network requesting routines
  • OSM.MapControl contains classes TMapMark and TMapMarkList for managing a set of map points and TMapControl itself
  • OSM.TilesProvider - base abstract class of map tile provider.
  • OSM.TilesProvider.* contain concrete implementations of map tile providers

Full docs for all units listed above is available here

Third party

If you wish to use Synapse network engine and don't have it yet, you can take it from Releases section.

screen1

screen2

About

Visual control for Delphi and Lazarus to display OSM map

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Pascal 100.0%