[gdal-dev] gdal & WMS

Ming Chin mingchin.st at gmail.com
Thu Jun 17 14:42:48 PDT 2021


hello Carl,
in the end I need to implement support for vectors, so yes, WFS is where I
need to go, but in the interim, i need wms rasters as well.

Ming

On Thu, 17 Jun 2021 at 11:58, Carl Godkin <cgodkin at gmail.com> wrote:

> 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
>>
> _______________________________________________
> 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/33918639/attachment.html>


More information about the gdal-dev mailing list