[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