Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
en:help:v2:maps:on-demand-create [2017/01/29 00:15] – alpinequest | en:help:v2:maps:on-demand-create [2019/05/01 09:54] – alpinequest |
---|
====== How to create a custom map? ====== | ====== How to create a custom map? ====== |
\\ | \\ |
The application uses an XML based format for its maps configuration. Files must have an ''**.AQX**'' extention and be placed in the "''**[application folder]/cache/custom-maps/**''" folder. | The application uses an XML based format for its maps configuration. Files must have an ''"**.aqx**"'' extention and be placed in the ''"**[application folder]/cache/custom-maps/**"'' folder. |
| |
See [[en:help:v2:settings:storage#how_to_locate_the_application_folder|how to locate the application folder here]]. | See [[en:help:v2:settings:storage#how_to_locate_the_application_folder|how to locate the application folder here]]. |
<file xml TEST1.AQX> | <file xml TEST1.AQX> |
<?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> |
<aqx version="7"> | <aqx version="9"> |
| |
<name>Simple Test AQX</name> | <name>Simple Test AQX</name> |
Note that the application will recognize the ''**{$x}**'', ''**{$y}**'' and ''**{$z}**'' variable and replace them with correct values. | Note that the application will recognize the ''**{$x}**'', ''**{$y}**'' and ''**{$z}**'' variable and replace them with correct values. |
| |
The source ''**id**'' field must be unique in the file, and contains only characters and numbers. It is used internally by the application to identify the data storage of the map. | The source ''"**id**"'' field must be unique in the file, and contains only characters and numbers. It is used internally by the application to identify the data storage of the map. |
| |
\\ | \\ |
<file xml TEST2.AQX> | <file xml TEST2.AQX> |
<?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> |
<aqx version="7"> | <aqx version="9"> |
| |
<name>Simple Test AQX</name> | <name>Simple Test AQX</name> |
<description>© OpenStreetMap</description> | <description>© OpenStreetMap</description> |
| |
<source id="MAP01"> | <source id="MAP01" type="topo"> |
| |
<name>Standard Mapnik</name> | <name>Standard Mapnik</name> |
{{ :en:help:v2:maps:on-demand-create-preview-2.jpg?nolink }} | {{ :en:help:v2:maps:on-demand-create-preview-2.jpg?nolink }} |
| |
The ''**<update-delay>**'' tag indicates after how many time the stored map data should be updated if it's used again. The default is ''**None**'', meaning the application will never try to update the stored data. Must end with ''**D**'' (number of days), ''**W**'' (weeks), ''**M**'' (months) or ''**Y**'' (years). ''**3M**'' means ''**3 months**''. Use ''**0D**'' to force the application to update the data on each display. | The ''**<update-delay>**'' tag indicates after how many time the stored map data should be updated if it's used again. The default is ''**None**'', meaning the application will never try to update the stored data. Must end with ''**D**'' (number of days), ''**W**'' (weeks), ''**M**'' (months) or ''**Y**'' (years). For example, ''**3M**'' means 3 months. Use ''**0D**'' to force the application to update the data on each display. |
| |
| The optional ''"**type**"'' attribute allows to define the type of the map. If no preview is available, the application will use common preview based on the map type. Can be one of ''"**roads**"'', ''"**topo**"'', ''"**satellite**"'', ''"**hybrid**"'', ''"**nautical**"'', ''"**aeronautical**"'', ''"**historical**"'', ''"**hillshade**"'', ''"**contours**"''. |
| |
| ==== Map layer ==== |
| \\ |
| The difference between regular maps and map layers is that a map layer is added over the current map when being selected. This is usually used for maps having a transparent background. Here is how to define a map layer: |
| |
| <code xml> |
| <source id="LAYER01" layer="true" opacity="50"> |
| <name>Map Layer Example</name> |
| <zoom-levels z="3,5,7,8,9,10,11,12,13,14,15,16,17"> |
| <server><![CDATA[http://a.tile.openstreetmap.org/{$z}/{$x}/{$y}.png]]></server> |
| </zoom-levels> |
| </source> |
| </code> |
| |
| The optional ''"**opacity**"'' attribute allows to define an initial opacity, given in percent. |
| |
\\ | \\ |
</code> | </code> |
| |
The "''**set**''" attribute defines the name of the custom variable, the "''**type**''" attribute tells how to display the variable (either ''**int**'', ''**long**'', ''**float**'' or ''**double**''). | The ''"**set**"'' attribute defines the name of the custom variable, the ''"**type**"'' attribute tells how to display the variable (either ''"**int**"'', ''"**long**"'', ''"**float**"'' or ''"**double**"''). |
| |
| Most common functions and operators can be used, for example ''"**abs(x)**"'', ''"**sqrt(x)**"'', ''"**hypot(x,y)**"'', ''"**cos(x)**"'', ''"**charat(str,index)**"'', ''"**replace(str,target,replace)**"'', ''"**deg_to_rad(x)**"'', ''"**dist_eucl(x1,y1,x2,y2)**"'', ''"**md5(str)**"'', ''"**rand_uni()**"'', ''"**quadtree(x,y,z)**"'', etc. |
| |
\\ | \\ |
</source> | </source> |
</code> | </code> |
| |
| \\ |
| |
| ===== WMTS server ===== |
| \\ |
| To access WMTS servers, you need to manually configure each levels: |
| |
| <code xml> |
| |
| <?xml version="1.0" encoding="utf-8" ?> |
| <aqx version="9"> |
| |
| <import-ogc-wkt-def code="EPSG:4218">GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]]</import-ogc-wkt-def> |
| |
| <source id="MAP05"> |
| <name>WMTS Map Example</name> |
| |
| <zoom-levels z="8"> |
| <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> |
| </zoom-levels> |
| |
| <zoom-levels z="9"> |
| <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> |
| </zoom-levels> |
| |
| </source> |
| |
| </aqx> |
| </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). |
| |
| If you want to use a projection which is not natively supported by the application, you need to import its definition using the ''**<import-ogc-wkt-def>**'' tag. You can find the OGC WKT definition of almost all projections here: [[http://www.spatialreference.org/]]. |
| |
\\ | \\ |