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 <[email protected]> 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 <[email protected]> > 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 >> [email protected]https://lists.osgeo.org/mailman/listinfo/gdal-dev >> >> -- http://www.spatialys.com >> My software is free, but my time generally not. >> >> _______________________________________________ > gdal-dev mailing list > [email protected] > https://lists.osgeo.org/mailman/listinfo/gdal-dev >
_______________________________________________ gdal-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/gdal-dev
