0

QGIS allows me to connect to free map services like ESRI's 'world imagery'.

I would like to save a certain part of it (decided by map extent) in the highest zoom level available in the service for later offline use.

this is for a purely non-commercial personal project. I intend to create a raster service for a few friends and myself in a connected environment. on this we want to overlay data related to some public service related work we are doing.

could someone tell me a) if I can save the relevant raster images using QGIS b) if yes, how to do it and in what format should I save those so that I can create a raster service from it

4 Answers 4

1

You can try SAS Planet software to save sattelite imagery of a certain place specifying coordinates or drawing a box. You have a lot of source options to choose, such as Yandex, Google Maps, Bing Maps etc.

You can choose formats like jpg, png, kmz. But I use ecw format to use in Arcmap. There are tutorials how to use it and its quite easy.

3
  • SAS planet is surprisingly easy to use but does it have option to save the tiles as geotif or ecw ? I am also not sure if the jpg it saves are geo-referenced or not ?
    – Plasma
    Commented Mar 20, 2016 at 5:59
  • It is geo-referenced. I had problems using jpg but when i saved as ecw format it was ready to use properly. You can choose proper zoom level to save it.
    – Goker
    Commented Mar 20, 2016 at 9:55
  • sorry for the late reply. it works beautifully ! however only the bing satellite seems to work, the google satellite map doesn't. any idea why ? has google (in layman terms) blocked the app ? or is the problem at my end ?
    – Plasma
    Commented May 13, 2016 at 15:14
0

Within in QGIS this is not possible as far as i know. But you can do it with GrassGIS if you have this service also as a WMS? I would not go with the ESRI World imagery as it is not even allowed to use it in other software than ArcGIS. Just be careful with it and take a free service.

http://www.esri.com/legal/software-license

The funtion you are looking for is r.in.wms . It saves the output of any WMS by automaticly creating the tile-subsets and preparing the needed getmap-requests and then downloads the tiles. But you will need a few hours to get along with grass gis probably...

2
  • thanks for the advice. GRASS looks quite powerful but also a little intimidating. could you point me towards guides or tutorials to get me started ?
    – Plasma
    Commented Mar 20, 2016 at 6:04
  • You can have a look at this Quick-Start Manual to just get going. grass.osgeo.org/grass70/manuals/helptext.html . When you set up your first Map Document you will be asked to set your Region. In this region you can already input the Extend you want to download. Afterwards when the program has started you can put into the command line r.in.wms and start the graphical interface for this function. Maybe this is already enough for you for this special case. You can then enter the options there and give it a go...
    – Matte
    Commented Mar 20, 2016 at 9:44
0

To generate MBTILES or folder of tiles (TMS pr XYZ) install a QGIS PLUG-IN named metatiles https://plugins.qgis.org/plugins/QMetaTiles/ Launch the plugin On your QGIS project Select output folder Mbtiles or folder of tiles Select zoom levels Select area of interest Each additional zoom level Adds a lot more data.

0

Use the GDAL WMS/TMS/ArcGis driver and gdal_translate.

Create an XML file specifying the server parameters, CRS and extent, for example:

<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://tile.openstreetmap.org/${z}/${x}/${y}.png</ServerUrl>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>18</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:3857</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <Cache />
</GDAL_WMS>

Then export that to a format of your choice. The back-end driver will handle the network requests.

gdal_translate -of PNG -outsize 512 512 frmt_wms_openstreetmap_tms.xml openstreetmap.png

Reference: https://gdal.org/drivers/raster/wms.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.