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:
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 |
---|---|
OpenLayers (OpenStreetMap) Maps, TileServers |
|
TomTom Maps, Geocoding, Directions, Static Maps |
|
Microsoft Azure Maps Maps, Geocoding, Directions, Static Maps, TimeZone, Places |
|
Microsoft Bing Maps Maps, Geocoding, Directions, Static Maps, TimeZone, Places This service is deprecated. Please refer to https://learn.microsoft.com/en-us/bingmaps/v8-web-control/ for more information. |
|
Google Maps Maps, Directions, Geocoding, Static Maps, TimeZone, Elevation, Location, Places |
|
Here Maps Maps, Geocoding, Directions, Static Maps, TimeZone, Toll Cost, Places |
|
MapBox Maps, Geocoding, Directions, Static Maps |
|
Apple MapKit JS Maps, Integrated Directions |
|
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
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:
How to order
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.