Overview of tile map services
Online tile services are popular and commonly used. Here is a good description of data model of online tile map service (TMS) provided for Bing Maps. To choose tile provider in MapWinGIS it's enough to set:
axMap1.TileProvider = tkTileProvider.OpenStreetMap; // or any other default one
Each tile provider has its own license / terms of service. MapWinGIS helps you to find those by adding a link to such docs at the bottom right corner of the control. Please read them before using tile providers in your apps.
See detailed description of tile providers in API reference.
Free tile services
MapWinGIS provides access for tile services with data is in the public domain:- OpenStreetMap - terms or use;
- MapQuest Aerial - terms of use;
- other OpenStreetMap affiliated services (OpenCycleMap, OpenTransportMap);
Commercial tile services
These services usually provide APIs for developers with some form of control of the network traffic and certain limits for free unpaid use. In order to access the services developer should register the app and obtain API key.1. Bing Maps - documentation - licensing options
MapWinGIS provides access for the following imagery sets:- road (tkTileProvider.BingMaps);
- aerial(tkTileProvider.BingSatellite);
- aerial with labels(tkTileProvider.BingHybrid).
// to access Bing Maps providersnew GlobalSettings() { BingApiKey = "your_key"};
Create a Bing maps key
2. Here Maps - documentation - available plans
MapWinGIS provides access for the following schemes:- normal.day (tkTileProvider.HereMaps);
- satellite.day (tkTileProvider.HereSatellite);
- hybrid.day (tkTileProvider.HereHybrid);
- terrain.day (tkTileProvider.HereTerrain).
// to access Here maps providersnew GlobalSettings().SetHereMapsApiKey("app_id", "app_code");
Create HERE maps application credentials
3. Google Maps.
Unfortunately Google doesn't provide any official REST API to access its maps. Therefore you must not use these providers in your commercial applications. See details here.Version number for Google Maps providers isn't updated automatically, which after some time (usually several months) lead to missing tiles. TileProviders.Version property can be used to do it in the client code.
Adding custom / new tile services
Adding new services in most cases is easy if they comply with OpenStreetMap / Google Maps data model ( projection Mercator on sphere, hierarchy of zoom levels with each tile split into 4 pieces on each new level, etc.). It's possible to add your own custom providers with TileProviders.Add method.// Here is a definition of custom provider for OpenStreetMap service: providers.Add(providerId, "Custom TMS provider", "http://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png", tkTileProjection.SphericalMercator, 0, 18);
If potential provider is a commercial one and requires API key or can't be defined with this method, it should be added to MapWinGIS source. You can speed the process by adding topic in the Discussion section with access details (url scheme) and a link to license / terms of use information.