Map tile sources¶
You can easily add or remove tile sources from the layer tab. It can be public tile sources or you can even generate your own tiles !
Edit tile sources¶
You need to copy tile_sources.xml
in your user directory, and edit this file.
To do so, you can start PprzGCS, then go to File->Open user directory
and File->Open app directory
. Then just copy tile_sources.xml
from the app directory to the user directory.
Note
The files in the user directory take precedence over those in the app directory.
A tile source is identified by an xml node of this form:
<source
name="OpenStreetMap" dir="OSM_CLASSIC"
addr="http://tile.openstreetmap.org/{z}/{x}/{y}.png"
zoomMin="0" zoomMax="19"
tileSize="256"
format=".png"
/>
name is the name of the layer in PprzGCS.
dir is the name of the directory in which the tiles will be saved. In this example, the tiles are saved in
map/OSM_CLASSIC
.- addr is the address from which the tiles will be fetched.
Use
{x}
,{y}
and{z}
as placeholders for tiles coordinates.Don’t forget to escape characters according to XML format (e.g.
&
become&
).Set
addr=""
if don’t want to fetch tiles from internet but only from local directory.
zoomMin and zoomMax define the min and max available zoom levels.
tileSize is the size in pixel of the tiles. A current size is 256.
format is the file extension of the tiles. A current format is .png.
When you add a tile source, you also have to add a thumbnail for this source in pictures/map_thumbnails/<name>.png
. The thumbnail should be a 200x100 pixels png.
Note
These directories will probably not exist the first time you add a layer, just create them !
Make your own tiles¶
You can make your own tiles with QGIS using the processing tool Raster tools -> Generate XYZ tiles (Directory)
.
Lets do a rather complicated example: I want to make a map for local ENU/NED coordinates from an image.
First, let create a georeferenced image:
In QGIS, go to Project->Properties->SRC and select the CRS in which your coordinates are.
Note
In my case, I want them to be in my local coordinate system, so I first have to define my own CRS:
Exit the properties and go to Settings->Custom projections.
Add a projection with the Proj String format, and the following parameters:
+proj=ortho +lat_0=43.564092 +lon_0=1.48292
, replacing the origin coordinates.Select the newly created CRS in you project properties.
Go to Plugins->Manage and Install Plugins and activate Georeferencer GDAL.
Open the Raster->Georeferencer tool, and open you image with Open raster.
Open the Transformation settings and set the Target CRS, and the Output raster.
Click on a point you know the coordinates, and enter the coordinates.
Repeat the previous step for multiple points.
Run Start Georeferencing. You’re done!
Now, lets create the tiles:
Import the georeferenced image you created back in QGIS.
Run the processing tool
Raster tools -> Generate XYZ tiles (Directory)
Select the extent and the minimun and maximum zoom
Select the output directory
Run the tool
Now, lets import theses tiles in PprzGCS:
Open the PprzGCS user directory, and copy the tiles directory in
map/<YOUR_MAP_NAME>
Add the source to the
tile_sources.xml
file, as described above.You’re done ! Open PprzGCS and enjoy !