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 <[email protected]> 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 <[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 >
_______________________________________________ gdal-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/gdal-dev
