This document is for maps in Webserver apps.
For maps in Desktop apps see here.
NetTalk 8 introduced the MAP form field type. This means that a map can be
included onto a Form.
The map has some basic functionality (starting
position and so on). You can also add data to the map from your tables.
This data can be displayed as Markers on the map. Markers can be moved
by dragging them (and the underlying record will be updated). If you click
on a marker then the form for that marker appears.
Providers provide the Tile and/or Satellite images which underpin your map.
Through the magic of Leaflet you are able to easily change the provider
while maintaining the map functionality.
Please note that different
providers have different licensing terms of their own. It is critical that
you ensure that your application conforms to the terms of the Provider that
you choose.
NetTalk contains support for several providers "built-in"
- however other providers supported by Leaflet can still be used. If you
would like support for a specific provider to be added to NetTalk please
contact us.
The pricing and terms mentioned below are a guide and may
be inaccurate. Please check the provider's current terms carefully before
selecting a provider. It is likely that the data below will become
inaccurate over time as the providers change their terms.
The following providers are already supported;
OpenStreetMap
OpenStreetMap is, as the name suggests, an Open-Source style collection of
map data. It is created and maintained by the community, and is of a very
high standard.
Using the OpenStreetMap data directly from their
servers is discouraged (as per their
Tile Usage Policy.) They are however the data
underpinning some of the providers below. So you won't use OSM directly,
rather, if you want to use the OpenStreetMaps data then you will use one
of the providers below that supports it.
MapQuest
As of July 2016
MapQuest requires a Developer ID to get started. You can register for an
ID at
https://developer.mapquest.com/plan_purchase/steps/business_edition/business_edition_free/register
The Free level allows for a number of free transactions per month,
after which some paid plans come into effect.
MapQuest provides both Free and Licensed access to their services. You can learn about the differences on their
Licensed Data page.
Usage of the free (Community Edition) MUST comply with their
Terms
and Conditions.
If you want to make use of the MapQuest data
then you will need an Application Key.
Users are able to switch between Map mode and Satellite mode at
runtime.
Mapbox
Mapbox requires you to sign up to get a free developer key. You can
enter this ID on the Maps tab of the WebServer extension.
It has
limits on free support, but paid support starts at $5 per month, and
includes satellite pictures. Their pricing, and feature set for each
level can be found at
https://www.mapbox.com/plans/.
Using Mapbox you can create multiple "projects" - each project has it's own ID code.
Different projects can have different styles and so on. You will need to create at
least one project to use it in your NetTalk app. Terrain style looks good.
Mapbox allows you to create your own custom maps, which can be
useful if you are mapping things other than the earth. For example you
may need a detailed map of a specific building, or campus, and this may
make this a good choice for that sort of use.
HERE Maps (formerly Nokia Maps, formerly OVI Maps)
HERE requires you to sign up to get a free developer key. You can
enter this ID on the Maps tab of the WebServer extension.
While
there is a free tier, the
Terms and Conditions on the usage of this tier are laid out very
explicitly. It is a good provider choice if your application conforms to
these terms and conditions.
Includes
Maps and Satellite images as well as a Hybrid mode which combines the
two.
Stamen
Maps rendered using a water color look. Can create a unique look for your app.
Esri
Esri is free for development and testing, but requires you to use an
account when deploying in production. Their pricing plans can be found
at
https://developers.arcgis.com/en/plans Plans start from $20 per
month.
Google Maps
You can add a map to your application by adding it as a Form-Field on a
form. If this is a Memory form, with no Save button then it in turn can be
included on other forms, or as the child of a browse.
The field to be
added is of type MAP and does not require a FIELD to be set. It does however
require a USE EQUATE. When a field is set to be a Map then the following
tabs are visible with additional information about the field;
- Map: This contains basic settings for the map, and also optionally
displays a "home" marker on the map.
- OnClick: Contains settings for what to do if the user clicks on the
map itself. A form can be called in Insert mode, and/or the map
co-ordinates can be copied into other fields on the form.
- Data: Multiple data sources can be added to the map.
The settings for the map are documented in the
WebServer Template
Refererence.
Map data is stored as a pair of REAL values, containing the Latitude and Longitude of the data point.
The unit of measure is DEGREES, and both the Latitude and Longitude usually contain fractional values.
Latitude is measures in degrees North or South of the equator.
Negative values entered here are treated as South, positive values are treated as North.
Longitude is measures in degrees East or West of the Greenwich Meridian
(which goes through London, England). Negative values entered here are
treated as West, positive values are treated as East.
In addition you
may want to store the Zoom Value as a LONG. This can range from 1 ("seen
from space") to 16, which is "very close to the ground". Depending on the
nature of the data, you may want the user to set (and hence store) the Zoom
level which best suits the map.
The basic map consists of a Tile Layer (the actual map drawing or satellite
picture) and data from the database.
A single map can contain multiple
sources of data.
Data on the map is usually represented by a Marker.
Data can be edited directly from the map, simply by clicking on the marker.
Markers can also be moved by dragging them around on the map. As the map
zooms out, Markers that are close together will be aggregated into a
cluster.
A collection of Markers can form the boundary of an Area.
On the OnClick tab, for a map field, you can set an Insert Form that will be
called when the user clicks on the map.
The form that is called can
prime a number of fields, based on the current viewable map, and based on
the location which was clicked. This priming is done in the Insert Form, on
the Priming tab, on the From Maps tab.