Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
en:help:1.4:maps:stored-create [2013/05/28 15:10] – [Custom Stored Maps] alpinequesten:help:1.4:maps:stored-create [2015/01/19 16:04] alpinequest
Line 1: Line 1:
-====== Custom stored maps ======+<sub>[[en:help|Online Help]] > [[en:help:1.4|AlpineQuest 1.4]] > [[en:help:1.4:maps|Maps]]</sub>
  
-AlpineQuest allows you to create your own stored map configurations and access a wide range of on-line map servers.+===== Custom stored maps =====
  
-Stored maps are defined using an XML based file format offering powerful configuration flexibility. Files must have a "''**.aqx**''" extension to be recognized in AlpineQuest. These AQX files must be placed on the device memory like an on-board map, and selected be added to the stored map list.+The application allows you to create your own stored map configurations and access 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.
  
-===== The AQX file format =====+{{:icon_help.png?nolink}} Be sure to use the last application version.
  
-The AQX format used to create custom stored maps requires only few information. 
  
 ==== Basic example ==== ==== Basic example ====
Line 18: Line 18:
 <aqx version="3"> <aqx version="3">
  
-  <name>AQX Maps Example</name>+  <name>Basic Map Examples</name>
  
-  <source id="OSM"> +  <source id="ID1"> 
-    <name>Example Map 1</name> +    <name>Basic Map Example</name> 
-    <level type="rest">+    <level>
       <zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values>       <zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values>
       <servers>       <servers>
Line 34: Line 34:
 </aqx> </aqx>
 </file> </file>
-\\ + 
-\\ +This example is composed of the following required elements:
-This example is composed of the following required elements:\\ +
-\\+
  
   * The generic XML and AQX declarations:   * The generic XML and AQX declarations:
Line 47: Line 45:
  
   * The name of the AQX file maps set:   * The name of the AQX file maps set:
-<code xml><name>AQX Maps Example</name></code>+<code xml><name>Basic Map Examples</name></code>
 \\ \\
  
   * The definition of the first map inside the AQX file:   * The definition of the first map inside the AQX file:
-<code xml><source id="OSM"></code>+<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.\\ The "''**id**''" attribute value must be unique inside the file, and is used to create the cache storage file.\\
Line 58: Line 56:
  
   * The name of the map:   * The name of the map:
-<code xml><name>Example Map 1</name></code>+<code xml><name>Basic Map Example</name></code>
 \\ \\
  
   * The definition of the zoom levels of the map:   * The definition of the zoom levels of the map:
-<code xml><level type="rest"></code>+<code xml><level></code>
 The "''**type**''" attribute specify type of the tile server being accessed. Use "''**rest**''" for OSM-like server.\\ The "''**type**''" attribute specify type of the tile server being accessed. Use "''**rest**''" for OSM-like server.\\
 \\ \\
Line 81: Line 79:
 Any number of "''**<server>**''" tag can be added.\\ Any number of "''**<server>**''" tag can be added.\\
 The ''**{$x}**'', ''**{$y}**'' and ''**{$z}**'' variables are used to define the tiles. 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>
 +    <key-url>http://url-of-map-key</key-url>
 +    <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>
  
  
Line 88: Line 131:
  
 <code xml> <code xml>
-<servers> +  <source id="ID2"> 
-  <server>http://server1.example.com/tiles/{$q}</server> +    <name>Quadtree Map Example</name> 
-  <server>http://server2.example.com/tiles/{$q}</server> +    <level> 
-  <server>http://server3.example.com/tiles/{$q}</server> +      <zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values> 
-</servers>+      <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> </code>
  
Line 101: Line 150:
  
 <code xml> <code xml>
-  <source id="OSM"> +  <source id="ID3"> 
-    <name>Example Map 1</name>+    <name>Expressions Map Example</name>
     <level type="rest">     <level type="rest">
       <zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values>       <zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values>
Line 117: Line 166:
  
 ==== WMS servers ==== ==== 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: Here is an example of how to access tiles from a WMS server:
  
 <code xml> <code xml>
-  <source id="OSM"> +  <source id="ID4"> 
-    <name>Example Map 2</name> +    <name>WMS Map Example</name> 
-    <level type="wms">+    <level>
       <zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values>       <zoom-values>5,7,9,11,12,13,14,15,16,17</zoom-values>
       <servers>       <servers>
Line 130: Line 183:
       </servers>       </servers>
     </level>     </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>
 +      <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>
 +      <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>   </source>
 </code> </code>