Better support for ArcGIS Server services in NextGIS QGIS Future

We’ve developed better integration between QGIS and ESRI ArcGIS Server, users of NextGIS QGIS can now work with almost all services provided by ESRI ArcGIS Server.

Until now, QGIS user was able to consume ArcGIS Server services using standard protocols WMS and WFS. Advanced users were able to connect to cached tiled services (TiledMapService) by creating a special XML file for GDAL. However, these methods work only if they are activated on ArcGIS Server itself. By default, these protocols are turned off and only base (proprietory) services access protocol is available (MapService). It was impossible to work with this type of services from standard GDAL and QGIS. So it is impossible to add some datasources such as ZOUIT (Alienation zones)  from Public Cadaster Map or EGIP data layers from Digital Atlas of Moscow.

Thanks to recent development, it is now possible to add those services to NextGIS QGIS Future.

NextGIS QGIS Future is the special build of QGIS that uses development version of GDAL and some of our developments which are not yet in upstream. We’ve developed a new AGS minidriver to support Schematic Export and Schematic Identify operations from ArcGIS Server API. Because of that, it is now possible to get rasters (gdal_translate) from ArcGIS Server, and request pixel information (gdallocationinfo).

From the practical side, new development adds the following functionality:

  1. One can add an ArcGIS Server layer using standard Add raster layer. To add a new layer, XML file will need to be created (example for Alienation zones from Public Cadaster Map). Note that the data provider is unstable and can be unavailable:
    <GDAL_WMS>
        <Service name="AGS">
            <ServerUrl>http://maps.rosreestr.ru/arcgis/rest/services/Cadastre/ZOUIT/MapServer</ServerUrl>
            <ImageFormat>png32</ImageFormat>
            <Transparent>true</Transparent>
            <ImageSR>102100</ImageSR>
            <Layers></Layers>
            <BBoxOrder>xyXY</BBoxOrder>
        </Service>
        <DataWindow>
            <UpperLeftX>-20037508.34278700</UpperLeftX>
            <UpperLeftY>20037508.34278700</UpperLeftY>
            <LowerRightX>20037508.34278103</LowerRightX>
            <LowerRightY>-20037508.34278103</LowerRightY>
            <SizeX>40075016</SizeX>
            <SizeY>40075016</SizeY>
        </DataWindow>
        <BlockSizeX>512</BlockSizeX>
        <BlockSizeY>512</BlockSizeY>
        <Projection>EPSG:3857</Projection>
        <BandsCount>4</BandsCount>
        <ClampRequests>true</ClampRequests>
        <UserAgent>Mozilla/5.0</UserAgent>
        <Referer>http://maps.rosreestr.ru/PortalOnline/</Referer>
        <ZeroBlockHttpCodes>499,204,404</ZeroBlockHttpCodes>
        <ZeroBlockOnServerException>true</ZeroBlockOnServerException>
    </GDAL_WMS>

    An example for “Leaseplots” (layer number 120) from Digital Atlas of Moscow:

    <GDAL_WMS>
        <Service name="AGS">
            <ServerUrl>http://api.atlas.mos.ru/arcgis/rest/services/Basemaps/egipdata/MapServer</ServerUrl>
            <ImageFormat>png</ImageFormat>
            <Transparent>true</Transparent>
            <ImageSR>102100</ImageSR>
            <Layers>show:120</Layers>
            <BBoxOrder> xyXY </BBoxOrder>
        </Service>
        <DataWindow>
        <UpperLeftX>-2.0037507067199707E7</UpperLeftX>
        <UpperLeftY>1.6979753644836426E7</UpperLeftY>
        <LowerRightX>2.0037507067382812E7</LowerRightX>
        <LowerRightY>5039694.577209473</LowerRightY>
        <SizeX>40075014</SizeX>
        <SizeY>11940059</SizeY>
        </DataWindow>
        <BlockSizeX>256</BlockSizeX>
        <BlockSizeY>256</BlockSizeY>
        <Projection>EPSG:3857</Projection>
        <BandsCount>4</BandsCount>
        <ClampRequests>false</ClampRequests>
    </GDAL_WMS>
  2. You can then identify features using new Identify Plus plugin for QGIS. Our new plugin extends functionality of standard identification tool and included in NextGIS QGIS Future by default.

The result of adding Alienation zones layer and identification of one of the objects:

agsserver_ngq_zouit

The result of adding Leaseplots layer and identification of one of the objects:

agsserver_ngq_egip

We’re in process of preparing these changes for upstream GDAL. After its new release and its adoption by QGIS they will become available for any user of QGIS.

Leave a Reply

Your email address will not be published. Required fields are marked *