Both sides previous revisionPrevious revisionNext revision | Previous revision |
en:help:1.4:maps:stored-create [2014/07/20 11:58] – [WMS servers] alpinequest | en:help:1.4:maps:stored-create [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 |
---|
<sub>[[en:help|Online Help]] > [[en:help:1.4|AlpineQuest 1.4]] > [[en:help:1.4:maps|Maps]]</sub> | |
| |
===== Custom stored maps ===== | |
| |
The application allows you to create your own stored map configurations and access a wide range of on-line map servers. | |
| |
Stored maps are defined using an XML based file format offering a powerful configuration flexibility. Files must have an "''**.aqx**''" extension to be recognized by the application. These AQX files must be placed on the device memory like an on-board map, and selected be added to the stored map list. | |
| |
{{:icon_help.png?nolink}} Be sure to use the last application version. | |
| |
| |
==== Basic example ==== | |
| |
Here is a simple example to access an OSM-like tile server: | |
| |
<file xml example_1.aqx> | |
<?xml version="1.0" encoding="utf-8"?> | |
<aqx version="3"> | |
| |
<name>Basic Map Examples</name> | |
| |
<source id="ID1"> | |
<name>Basic Map Example</name> | |
<level> | |
<zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values> | |
<servers> | |
<server>http://server1.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server2.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server2.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
</servers> | |
</level> | |
</source> | |
| |
</aqx> | |
</file> | |
| |
This example is composed of the following required elements: | |
| |
* The generic XML and AQX declarations: | |
<code xml> | |
<?xml version="1.0" encoding="utf-8"?> | |
<aqx version="3"> | |
</code> | |
\\ | |
| |
* The name of the AQX file maps set: | |
<code xml><name>Basic Map Examples</name></code> | |
\\ | |
| |
* The definition of the first map inside the AQX file: | |
<code xml><source id="ID1"></code> | |
| |
The "''**id**''" attribute value must be unique inside the file, and is used to create the cache storage file.\\ | |
Other maps can be added to the file.\\ | |
\\ | |
| |
* The name of the map: | |
<code xml><name>Basic Map Example</name></code> | |
\\ | |
| |
* The definition of the zoom levels of the map: | |
<code xml><level></code> | |
The "''**type**''" attribute specify type of the tile server being accessed. Use "''**rest**''" for OSM-like server.\\ | |
\\ | |
| |
* The zoom values being used for this map: | |
<code xml><zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values></code> | |
\\ | |
| |
* The URL of the tile servers: | |
<code xml> | |
<servers> | |
<server>http://server1.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server2.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server3.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
</servers> | |
</code> | |
| |
Any number of "''**<server>**''" tag can be added.\\ | |
The ''**{$x}**'', ''**{$y}**'' and ''**{$z}**'' variables are used to define the tiles. | |
| |
| |
==== Advanced example ==== | |
| |
In addition to the required tags, additional ones are available: | |
| |
<file xml example_2.aqx> | |
<?xml version="1.0" encoding="utf-8"?> | |
<aqx version="3"> | |
| |
<name>Advanced Map Examples</name> | |
| |
<source id="ID1_1"> | |
<name>Advanced Map Example 1</name> | |
<description>Description</description> | |
<data-source>http://www.example.com/viewer/</data-source> | |
<outline>2.54,49.49 2.54,51.51 6.41,51.51 6.41,49.49</outline> | |
<copyright>2014 Example</copyright> | |
<icon-data>(base 64 encoded 69*69px icon data)</icon-data> | |
<level> | |
<zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values> | |
<tiles-size>256</tiles-size> | |
<update-delay>None</update-delay> | |
<servers> | |
<referer>http://server1.example.com/</referer> | |
<max-threads>2</max-threads> | |
<server>http://server1.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server2.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server2.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
</servers> | |
</level> | |
</source> | |
| |
<source id="ID1_2" layer="true"> | |
<name>Advanced Map Example 2</name> | |
<description><![CDATA[<html>HTML description...</html>]]></description> | |
<level> | |
<zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values> | |
<server>http://server.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
</level> | |
</source> | |
| |
</aqx> | |
</file> | |
| |
| |
==== Quadtree encoded tiles ==== | |
| |
Instead of using the classical ''**{$x}**'' / ''**{$y}**'' / ''**{$z}**'' variables, you can use the ''**{$q}**'' variable that contains the quadtree encoded coordinates of the tiles, like in this example: | |
| |
<code xml> | |
<source id="ID2"> | |
<name>Quadtree Map Example</name> | |
<level> | |
<zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values> | |
<servers> | |
<server>http://server1.example.com/tiles/{$q}</server> | |
<server>http://server2.example.com/tiles/{$q}</server> | |
<server>http://server3.example.com/tiles/{$q}</server> | |
</servers> | |
</level> | |
</source> | |
</code> | |
| |
| |
==== Custom variables / Expression ==== | |
| |
In addition to the variables provided by default, you can create your own variables defined by mathematical expressions for each levels: | |
| |
<code xml> | |
<source id="ID3"> | |
<name>Expressions Map Example</name> | |
<level type="rest"> | |
<zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values> | |
<expression set="k" type="int">iif( z>10, x*y, x+y )</expression> | |
<servers> | |
<server>http://server.example.com/tiles/{$k}.png</server> | |
</servers> | |
</level> | |
</source> | |
</code> | |
| |
The "''**set**''" attribute defines the name of the new variable, the "''**type**''" attribute tells that the result should be displayed as an integer when using it. | |
| |
| |
==== WMS servers ==== | |
| |
To access WMS servers, you must use the level type ''**wms**''. The application will then replace the ''**{$bbox}**'' variable by the tile coordinates. | |
| |
You can specify the coordinate system of the bounding box using the ''**<bbox-crs-code>**'' tag. | |
| |
Here is an example of how to access tiles from a WMS server: | |
| |
<code xml> | |
<source id="ID4"> | |
<name>WMS Map Example</name> | |
<level> | |
<zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values> | |
<servers> | |
<bbox-crs-code>EPSG:4326</bbox-crs-code> | |
<server><![CDATA[http://server.example.com/wms/Service?REQUEST=GetMap&VERSION=1.1.1&LAYERS=layer&FORMAT=image/png&BBOX={$bbox}&SRS=EPSG:4326&WIDTH=256&HEIGHT=256]]></server> | |
</servers> | |
</level> | |
</source> | |
</code> | |
| |
| |
==== WMTS servers ==== | |
| |
To access WMTS servers, you need to manually configure each levels: | |
| |
<code xml> | |
<source id="ID5"> | |
<name>WMTS Map Example</name> | |
| |
<level type="rest"> | |
<zoom-values>8</zoom-values> | |
<projection-code>EPSG:4218</projection-code> | |
<projection-resolution>2.645833333</projection-resolution> | |
<projection-offset-x>-450000.0</projection-offset-x><!-- optional, default is 0 --> | |
<projection-offset-y>-800000.0</projection-offset-y><!-- optional, default is 0 --> | |
<tiles-size>256</tiles-size><!-- optional, default is 256 --> | |
<tiles-bounds>104,80,527,423</tiles-bounds><!-- optional --> | |
<referer>http://server.example.com/wmts/</referer><!-- optional, default is empty --> | |
<server>http://server.example.com/wmts/{$z}/{$y}/{$x}.png</server> | |
</level> | |
| |
<level type="rest"> | |
<zoom-values>9</zoom-values> | |
<projection-code>EPSG:4218</projection-code> | |
<projection-resolution>1.322916667</projection-resolution> | |
<projection-offset-x>-450000.0</projection-offset-x><!-- optional, default is 0 --> | |
<projection-offset-y>-800000.0</projection-offset-y><!-- optional, default is 0 --> | |
<tiles-size>256</tiles-size><!-- optional, default is 256 --> | |
<tiles-bounds>208,160,1047,839</tiles-bounds><!-- optional --> | |
<referer>http://server.example.com/wmts/</referer><!-- optional, default is empty --> | |
<server>http://server.example.com/wmts/{$z}/{$y}/{$x}.png</server> | |
</level> | |
| |
</source> | |
</code> | |
| |
To get the ''**<projection-resolution>**'' from a ''**ScaleDenominator**'', just multiply this value by ''**0.00028**'' (which is the "standardized rendering pixel size", in meter). | |
| |
| |
==== Mixed servers ==== | |
| |
You can also create maps that use different services based on the zoom levels: | |
| |
<code xml> | |
<source id="ID6"> | |
<name>Mixed Map Example</name> | |
| |
<level type="rest"> | |
<zoom-values>5,7,9,11,12</zoom-values> | |
<servers> | |
<server>http://server1.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server2.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
<server>http://server2.example.com/tiles/{$z}/{$x}/{$y}.png</server> | |
</servers> | |
</level> | |
| |
<level type="wms"> | |
<zoom-values>13,14,15,16,17</zoom-values> | |
<servers> | |
<bbox-crs-code>EPSG:4326</bbox-crs-code> | |
<server><![CDATA[http://server.example.com/wms/Service?REQUEST=GetMap&VERSION=1.1.1&LAYERS=layer&FORMAT=image/png&BBOX={$bbox}&SRS=EPSG:4326&WIDTH=256&HEIGHT=256]]></server> | |
</servers> | |
</level> | |
| |
</source> | |
</code> | |
| |