[gdal-dev] gdal & WMS

Carl Godkin cgodkin at gmail.com
Thu Jun 17 11:57:51 PDT 2021


Hi Ming,

There are no vector layers in WMS.  It's for imagery only.

Perhaps you are interested in WFS instead?

carl

On Thu, Jun 17, 2021 at 11:03 AM Ming Chin <mingchin.st at gmail.com> wrote:

> Hello Even,
> thank you for your input.
> I will review the raster API as you have suggested.  However, as I
> understand the requirements of my task, I need to support the vector API as
> well, because we do need to support vector layers.
> Can you, or anyone else here, point to a recommended guide/tutorial to
> implementing gdal wms vector layers (in c++)?
>
> Thank you,
> Ming
>
> On Thu, 17 Jun 2021 at 08:47, Even Rouault <even.rouault at spatialys.com>
> wrote:
>
>> Ming,
>>
>> A OGRLayer is a *vector* layer, not a raster one. So you should rather
>> look at the raster API: https://gdal.org/tutorials/raster_api_tut.html
>>
>> Depending on the kind of URL you provide to GDAL, you may get directly a
>> workable dataset, or just a placeholder that links to real datasets with
>> the subdataset (which can be seen as a king of raster layer) mechanism,
>> using GDALDataset::GetMetadata("SUBDATASETS") to get the list of
>> subdatasets, and then pass to GDALOpen() the value of one of the
>> SUBDATASET_xx_NAME item
>>
>> Even
>> Le 17/06/2021 à 17:41, Ming Chin a écrit :
>>
>>
>> Hello GDAL devs,
>>
>> I am a GDAL rookie, and I am trying to add WMS support to an
>> existing GDAL (2.2.4) implementation.
>>
>> I saw in this example:
>>
>>
>> https://gis.stackexchange.com/questions/67416/using-gdal-to-connect-to-a-wfs
>>
>> that its possible to provide OGRSFDriverRegistrar::Open(sURL,  FALSE );
>>
>> with a url and use it to open an OGRDataSource.
>>
>> And in other examples I see that OGRSFDriverRegistrar::Open() has been
>> deprecated and that GDALOpen() should be used instead.
>>
>> So I did that, adding cURL to our GDAL build, and then in my
>> implementation, I provided GDALOpen() with a URL like this:
>>
>> GDALDataset *pDataset = (GDALDataset*)::GDALOpen(sURL, GA_ReadOnly);
>> if( pDataset  )
>> {
>>     int nLayers =  pDataset->GetLayerCount();
>>     OGRLayer *pLayer =  pDataset->GetLayerByName(sLayerName);
>> }
>>
>> This seems to partially work, in the sense that the  GDALOpen function
>> returns a non-NULL pointer to a GDALDataset, but when I try to call the
>> member functions of the resulting GDALDataset, everything seems to return
>> zeros or nulls;
>>
>> The above call returns nLayers = 0, and  pLayer=NULL
>>
>> but if I feed the same sURL into my web browser (Chrome), the browser
>> receives a properly formatted xml file that clearly has <Layer>(s) defined
>> in it.
>>
>> What am I missing?  Why am I unable to retrieve useful data from the
>> dataset?
>>
>> Ming
>>
>>
>> _______________________________________________
>> gdal-dev mailing listgdal-dev at lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>> -- http://www.spatialys.com
>> My software is free, but my time generally not.
>>
>> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20210617/8e1e2ed2/attachment.html>


More information about the gdal-dev mailing list