Additional map tiles servers can be added by modifying the NeronGPS.conf, adding a new section with following information:
[<server name>]
<name1>1=<url1>
<name1>2=<url2>
<name1>3=<url3>
<name2>1=<url4>
<name2>2=<url5>
<name2>3=<url6>
servers=<name1>, <name2>, ...
snailmode=<true/false>
equatorcentric=<true/false>
rootlevel=<integer value>
<server name> can be freely selected, and need to be added to the [tileserver] section:
[tileserver]
httpservers=<server name>, ...
<name1>
, <name2>
, ... can be freely selected, and need to be listed in the servers
list. They are naming the different type of tiles (aerial, road, hybrid, ...) that can be retrieved from the server, and the corresponding urls.
When used by the application, tile source will be identified by the combination of the server name and the type of tiles, separted by '_': <server name>_<name1>, <server name>_<name2>, ...
Several url can be provided for a single type of tiles (aerial1=<url>, aerial1=<url>, ...
) in case alternate locations exists. If several urls are available, the application will rotate among when retrieving tiles.
The format of the urls depend on the snailmode
value.
snailmode=false
: the url need to include a %1, %2 and %3, that will be respectively replaced by x, y and zoom level.
snailmode=true
: x, y and zoom level are compacted in a single value, as described in the snail mode description below, and a single %1 is required.
The equatorcentric
value select between 2 different modes for y coordinate, as described below.
The rootlevel
value is an integer defining the zoom level corresponding to a single tile containing the whole world. If the value is inferior or equal to 10, the levels are in increasing order: rootlevel
is the whole world in a single tile, rootlevel
+1 is the world split into 4 tiles, rootlevel
+2 is the world split into 16 tiles, etc. If the value is superior to 10, the levels are in decreasing order: rootlevel
is the whole world in a tile, rootlevel
-1 is the world divided into 4 tiles etc.
The selection of all these settings depend on the organization of tiles in the erver you selected. Some example of knwon configuration are presented at the end of this page.
(0, 0) | (1, 0) | (2, 0) | (3, 0) |
---|---|---|---|
(0, 1) | (1, 1) | (2, 1) | (3, 1) |
(0, 2) | (1, 2) | (2, 2) | (3, 2) |
(0, 3) | (1, 3) | (2, 3) | (3, 3) |
(x, y) coordinate for the 2nd zoom level. North pole is on top, south pole is at the bottom. Left and right side of the table being in the middle of the pacific ocean.
(0, 1) | (1, 1) | (2, 1) | (3, 1) |
---|---|---|---|
(0, 0) | (1, 0) | (2, 0) | (3, 0) |
(0, -1) | (1, -1) | (2, -1) | (3, -1) |
(0, -2) | (1, -2) | (2, -2) | (3, -2) |
(x, y) coordinate for the 2nd zoom level. North pole is on top, south pole is at the bottom, equator is the central line. Left and right side of the table being in the middle of the pacific ocean.
In snailmode, a single value represent x, y, and the zoom level. 1 digit is added per zoom level. Root zoom level doesn't exist. The root+1 zoom level contain a single digit, with following values:
0 | 1 |
---|---|
2 | 3 |
The root+2 zoom level add a second digit, which reproduce the same patern within the selected first level tile:
00 | 01 | 10 | 11 |
---|---|---|---|
02 | 03 | 12 | 13 |
20 | 21 | 30 | 31 |
22 | 23 | 32 | 33 |
Tile composer enable you to build a map by supperposing several layers of map tiles. Composer are expected to be used with servers providing transparent tiles (typically PNG file) for upper layers. It may also be used with a single layer, to pre-compute magnification and perform antialiasing, and store the result in the cache.
Composer can be added by modifying the NeronGPS.conf, adding a new section with following information:
[<composer name>]
layer1=<name1>
layer2=<name2>
layer3=<name3>
magnification1=<integer value>
magnification2=<integer value>
magnification3=<integer value>
antialiasing1=<true/false>
antialiasing2=<true/false>
antialiasing3=<true/false>
<composer name> can be freely selected, and need to be added to the [tileserver] section:
[tileserver]
composers=<composer name 1>, <composer name 2>, ...
<name1>
, <name2>
, ... are the name of the tile servers to be used for each layer. layer1
is the background, layer2
is displayed on top of layer1
. The names are composed of the server name combinated with the type of tiles, separated by an '_'. For example: OSM_Road.
<magnification1>
, <magnification2>
, ... are the level of magnification to be applied to each layer: 0 for no magnification, 1 for X2 magnification, 2 for X4 magnification, ...
<antialiasing1>
, <antialiasing2>
, ... determine if the sclaing need to be done with anti-aliasing. This parameter does not apply to layers with a magnification to 0.
Some tile servers may need the magnification to be disabled. For example, a composer that is natively magnificating, or aerial tiles that does not contain any text to read. This servers can be listed in the [map] section of NeronGPS.conf:
[map]
nomagnification=ve_aerial, yimg_aerial, Composer
<
[ve]
aerial1="http://a0.ortho.tiles.virtualearth.net/tiles/a%1.jpeg?g=45"
equatorcentric=false
hybrid1="http://h0.ortho.tiles.virtualearth.net/tiles/h%1.jpeg?g=45"
road1="http://r0.ortho.tiles.virtualearth.net/tiles/r%1.png?g=45"
rootlevel=0
servers=aerial, hybrid, road
snailmode=true
[osm]
equatorcentric=false
level1=http://a.andy.sandbox.cloudmade.com/tiles/cycle/%3/%1/%2.png
road1=http://tile.openstreetmap.org/%3/%1/%2.png
rootlevel=0
servers=road, level
snailmode=false
[yimg]
aerial1="http://aerial.maps.yimg.com/ximg?t=a&v=1.8&s=256&x=%1&y=%2&z=%3"
equatorcentric=true
road1="http://png.maps.yimg.com/png?t=m&v=4.1&s=256&f=j&x=%1&y=%2&z=%3"
rootlevel=18
servers=aerial, road, transp
snailmode=false
transp1="http://aerial.maps.yimg.com/tile?t=p&v=2.5&x=%1&y=%2&z=%3"
[tileserver]
httpservers=ve, osm, yimg
[Composer]
antialiasing1=false
antialiasing2=true
layer1=ve_aerial
layer2=yimg_transp
magnification1=0
magnification2=1
[tileserver]
httpservers=ve, osm, yimg
composers=Composer