Skip to content

Overview

Getting Started

After installing TMS FNC Core, please follow instructions on getting the TTMSFNCWebBrowser up and running, which is the underlying component for TMS FNC Maps. More information about the browser and its capabilities can be found at the following link:

https://download.tmssoftware.com/doc/tmsfnccore/components/ttmsfncwebbrowser/

After installing TMS FNC Maps, the first thing that needs to be done is acquiring an API key (except for OpenLayers which is free and doesn’t require an API key). Steps to obtain an API key for enabling the map as well as using directions, geocoding and location services can be found at the following page:

https://www.tmssoftware.com/site/cloudkey.asp

Click on the service you are using and follow the steps to obtain an API key. The API key that is requested can be used for all features that are available after installing TMS FNC Maps:

  • TTMSFNCMaps (and descendants)
  • TTMSFNCDirections
  • TTMSFNCGeoCoding
  • TTMSFNCLocation
  • TTMSNFCElevation

Availability

Supported frameworks and platforms:

  • VCL Win32/Win64
  • FMX Win32/Win64, macOS, iOS, Android, Linux
  • LCL Win32/Win64, macOS, iOS, Android, numerous Linux variants including Raspbian
  • WEB: Chrome, Edge, Firefox, …

Supported IDE’s

  • Delphi 10 Seattle and C++ Builder 10 Seattle or newer releases
  • Lazarus 1.4.4 with FPC 2.6.4 or newer official releases
  • TMS WEB Core for Visual Studio Code 1.3 or newer releases

Important notice

TMS FNC Maps requires TMS FNC Core (separately available at the My Products page)

Online references

TMS software website:

http://www.tmssoftware.com

TMS FNC Maps page:

http://www.tmssoftware.com/site/tmsfncmaps.asp

Description

TMS FNC Maps is a cross-framework, cross-platform and cross-service mapping component library. It includes an abstract map (TTMSFNCMaps) that is capable of rendering polygons (including rectangles and circles), polylines, markers, show HTML formatted popups and many more. It has events for mouse interaction as well as some basic options to configure the look and feel. Optionally, the underlying JavaScript can be modified to allow additional customization options. Also included is a component for calculating directions between 2 coordinates or addresses (TTMSFNCDirections), the ability to convert a coordinate to an address or vice versa (TTMSFNCGeoCoding) and retrieving your current location (TTMSFNCLocation). Below is a list of services that are currently supported.

Logo Name
TTMSFNCMaps OpenLayers (OpenStreetMap)
Maps, TileServers
TTMSFNCMaps1 TomTom
Maps, Geocoding, Directions, Static Maps
TTMSFNCMaps2 Microsoft Azure Maps
Maps, Geocoding, Directions, Static Maps, TimeZone, Places
TTMSFNCMaps3 Microsoft Bing Maps
Maps, Geocoding, Directions, Static Maps, TimeZone, Places
TTMSFNCMaps4 Google Maps
Maps, Directions, Geocoding, Static Maps, TimeZone, Elevation, Location, Places
TTMSFNCMaps5 Here Maps
Maps, Geocoding, Directions, Static Maps, TimeZone, Toll Cost, Places
TTMSFNCMaps6 MapBox
Maps, Geocoding, Directions, Static Maps
TTMSFNCMaps7 Apple MapKit JS
Maps, Integrated Directions
TTMSFNCMaps-Leaflet-Logo Leaflet
Maps, TileServers

Threading

When calling synchronous methods or functions such as XYToLatLon or LatLonToXY inside an event handler, you will get the following message after a short delay:

Running a message loop synchronously in an event handler in Webview can cause reentrancy issue. Please refer to https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/threadingmodel#re-entrancy for more information about threading model in WebView2 and how to enable native code debugging for this scenario.

TTMSFNCMaps based on TTMSFNCWebBrowser in Windows is currently not thread safe, to fix this issue please apply the following workaround:

procedure TMapForm.TMSFNCMaps1MapClick(Sender: TObject;
 AEventData: TTMSFNCMapsEventData);
var
 t: ITask;
 c: TTMSFNCMapsCoordinateRec;
 p: TTMSFNCMapsAnchorPointRec;
begin
 c := AEventData.Coordinate.ToRec;
 t := TTask.Create(
 procedure
 begin
 TThread.Synchronize(TThread.Current,
 procedure
 begin
 p := TMSFNCMaps1.LatLonToXY(c.Latitude, c.Longitude);
 TTMSFNCUtils.Log('XY: ' + FloatToStr(p.X) + ' x ' + FloatTostr(p.Y));
 end);
 end
 );
 t.Start;
end;

Books

TMS FNC Maps Book

TTMSFNCMaps66

TMS FNC Maps bundles all our expertise with using mapping services, with writing cross-platform and cross-framework Delphi code as well as building components for TMS WEB Core web client applications. From the beginning, we made the radical decision to base this work on the new operating system browser Edge Chromium from Microsoft for the Windows platform (where we already use Safari for iOS and macOS and Chrome for Android). From the very beginning of this development, our chief evangelist Dr. Holger Flick was involved and could play with internal versions and give feedback and steer the development.

If you want to integrate mapping services' functionality such as from Google Maps, Bing Maps, Openstreet Maps, Here maps, TomTom maps, Azure maps in a Windows VCL application, a cross platform FireMonkey application or a TMS WEB Core web client application, TMS FNC Maps addresses it all and the new book covers developing with TMS FNC Maps in great detail over close to 400 pages.

Content

  • Get to know the FNC framework, FNC Core, and FNC Maps in a nutshell.
  • Learn about FNC Maps in detail: You will find dozens of hands-on examples from installation to modern multi-tier applications with large databases, web services, web, and desktop clients.
  • Annotate maps and visualize data using markers with clustering, lines, shapes, pop-up windows and routes.
  • Build applications that can handle any geographical data and interact with other Geographic Information Services (GIS). Load GPX tracks from GPS devices, GeoJSON shapes, and Google Earth-specific KML layers.
  • Include other mapping services to get directions with turn-by-turn instructions, to geocode addresses, and to determine your geolocation.
  • Create reports with a customizable template based on data from maps and databases.
  • Allow users to freely customize maps using events or interactive markers and shapes.

The examples in the book make use of:

TMSF FlexCel

TMS FNC Core

TMS VCL UI Pack

TMS WEB Core

TMS Cryptography Pack

TMS XData

How to order

Amazon USA

Amazon UK

Amazon Germany

Resources

Blog Posts

A list of TMS FNC Maps related blog posts can be found on the TMS Software website.

Videos

A list of TMS FNC Maps related videos can be found on the TMS Software website.

Terms of use

With the purchase of TMS FNC Maps, you are entitled to our consulting and support services to integrate the supported services in Delphi applications and with this consulting and support comes the full source code needed to do this integration. As TMS FNC Maps uses the supported services you are bound to the terms of these services that can be found at:

Google Maps: https://developers.google.com/terms

Microsoft Bing Maps: https://www.microsoft.com/en-us/maps/product

Microsoft Azure Maps: https://azure.microsoft.com/en-in/support/legal/

Openlayers: https://openlayers.org/

TomTom: https://developer.tomtom.com/terms-and-conditions

Here Maps: https://developer.here.com/terms-and-conditions

MapBox: https://www.mapbox.com/legal/service-terms

Apple Mapkit: https://developer.apple.com/terms/

Airmap: https://www.airmap.com/terms-service/

MapQuest: https://developer.mapquest.com/legal

TMS software is not responsible for the use of TMS FNC Maps components. The purchase of TMS FNC Maps does not include any license fee that you might possibly be required to pay to the supported services. It will depend on your type of usage of these services whether a license fee needs to be paid. It is the sole responsibility of the user or company providing the application that integrates the terms and conditions of the supported services. TMS software does not take any responsibility nor indemnifies any party violating the terms and conditions of the supported services. We cannot guarantee that a 3rd party service will approve or allow the use of the services used in TMS FNC Maps components in your application(s) now or at any time in the future. This is up to the 3 rd party service provider to decide and not under our control. In case the 3rd party service provider makes changes to the conditions for using the service, the API itself or anything else that causes an incompatibility with our component implementations, tmssoftware.com will do its best to accommodate the changes but cannot be forced in any way or within any timeframe to do so and might be technically limited to do so.

Limited warranty

TMS software cannot guarantee the current or future operation and uptime of the supported services. TMS software offers the consulting and support for TMS FNC Maps in good faith that the supported services are reliable and future-proof. In no case, TMS software shall offer refunds or any other compensation in case the supported services terms/operation changes or stops.