[Qgis-user] Howto: load ArcGIS "mapserver" raster layers

Alister Hood Alister.Hood at synergine.com
Sun Sep 23 22:37:41 PDT 2012


Hi everyone,
Just a quick follow up, as I've learned it is actually even easier than I described:

1. You can automatically generate a service description xml like this:

gdal_translate "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json&pretty=true" ESRI_world_imagery.xml -of WMS

2. You don't actually need a service description xml.  You can run this in the QGIS Python console:

qgis.utils.iface.addRasterLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json&pretty=true","raster")

I've now created a wiki page about this.


> -----Original Message-----
> From: Alister Hood
> Sent: Friday, 24 August 2012 12:44 p.m.
> To: 'qgis-user at lists.osgeo.org'
> Subject: Howto: load ArcGIS "mapserver" raster layers
> 
> Hi everyone,
> I don't think anyone around here has ever explained how to add raster
> ArcGIS "mapserver" layers from servers which provide a REST interface.  As
> far as I know, there is no way to just load them with a url directly from
> the QGIS gui, but they can be handled by the GDAL WMS driver, and thus can
> be loaded in QGIS.
> 
> Firstly (and the most difficult part) you need to find the URL for the
> REST service for your layer.  E.g. you might want to use a layer that is
> available in the ESRI "Maps for Personal Use" web map at:
> http://www.arcgis.com/home/webmap/viewer.html?useExisting=1
> Hopefully with a little googling you will be able to find the address
> where you can browse the "ArcGIS services directory" of your favourite
> ArcGIS server.  In this case it is:
> http://server.arcgisonline.com/ArcGIS/rest/services/
> 
> Find the layer that you are after, and now you have two options:
> 
> 1. You can create a GDAL "service description" XML file, and open it with
> QGIS.
> E.g. try this file:
> http://www.gdal.org/frmt_wms_arcgis_mapserver_tms.xml
> Or e.g. save the XML code pasted at
> http://trac.osgeo.org/mapserver/ticket/3804 and try it.
> 
> 2. You can create a .vrt file (which requires less thinking), and open
> that with QGIS.
> E.g. find the raster layer you want in the ArcGIS services directory, and
> get the URL for its REST interface, which should be at the bottom of the
> page, under "Supported Interfaces".  The gdal utilities can just use this
> URL (since GDAL 1.9), so you can simply create a .vrt like this:
> gdalbuildvrt test.vrt
> "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServ
> er?f=json&pretty=true"
> 
> Of course, you will need to check the restrictions on what you are legally
> allowed to do with any particular layer.
> 
> And if you are wondering: as far as I know there is currently no way to
> load _vector_ ArcGIS "mapserver" layers, or ArcGIS "globeserver" or
> "featureserver" layers (except for manually writing a query URL.  i.e. you
> can't use their REST services).
> 
> Regards,
> Alister
> 




More information about the Qgis-user mailing list