Table of content

Adding a tile server

Server section in NeronGPS.conf

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 naming

<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>, ...

Server configuration

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.

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.

Different tiles organization

With snailmode=false, equatorcentric=false

(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.

With snailmode=false, equatorcentric=true

(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.

With snailmode=true, equatorcentric=false

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:

01
23

The root+2 zoom level add a second digit, which reproduce the same patern within the selected first level tile:

00011011
02031213
20213031
22233233

Tile composer

Composer section in NeronGPS.conf

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>, ...

Composer configuration

<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.

Disable magnification

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
<

Example of map servers

[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

Example of map composer

[Composer]
antialiasing1=false
antialiasing2=true
layer1=ve_aerial
layer2=yimg_transp
magnification1=0
magnification2=1

[tileserver]
httpservers=ve, osm, yimg
composers=Composer