te::ws::ogc::WMSClient Class Reference

A class to retrieve information and data from a Web Map Service. More...

#include <WMSClient.h>

Public Member Functions

const te::ws::ogc::wms::WMSCapabilitiesgetCapabilities () const
 Return the WMSCapabilities member. More...
 
const te::ws::ogc::wms::WMSGetFeatureInfoResponse getFeatureInfo (const te::ws::ogc::wms::WMSGetFeatureInfoRequest &request) const
 It execute a WMS GetFeatureInfo and returns a WMSGetFeatureInfoResponse with the result. More...
 
const te::ws::ogc::wms::WMSGetMapResponse getMap (const te::ws::ogc::wms::WMSGetMapRequest &request) const
 Return the WMSGetMapResponse member. More...
 
std::string makeFileRequest (const std::string url, const std::string fileName) const
 Executes a request on a WMS server. More...
 
const std::string saveGetMap (const te::ws::ogc::wms::WMSGetMapRequest &request, const std::string &filename)
 It execute a WMS GetMap and save the result image on disk. The request will be based on WMSGetMapRequest setted to this WMSLayer. More...
 
void setCapabilities (const te::ws::ogc::wms::WMSCapabilities &capabilities)
 
void setCurlWrapper (te::ws::core::CurlWrapper *curlWrapper)
 Sets the TerraLib CurlWrapper to be used internally. More...
 
void updateCapabilities ()
 Method to get the capabilities from a WMS server and store in m_capabilities member. More...
 
 WMSClient (const std::string usrDataDir="", const std::string uri="", const std::string version="1.3.0")
 Class constructor. It initializes the m_uri and m_version class members. More...
 
 ~WMSClient ()
 Default destructor. More...
 

Private Member Functions

std::string build111GetFeatureInfoURL (const te::ws::ogc::wms::WMSGetFeatureInfoRequest &request) const
 
std::string build111GetMapRequestURL (const te::ws::ogc::wms::WMSGetMapRequest &request) const
 
std::string build130GetFeatureInfoURL (const te::ws::ogc::wms::WMSGetFeatureInfoRequest &request) const
 
std::string build130GetMapRequestURL (const te::ws::ogc::wms::WMSGetMapRequest &request) const
 
std::string buildGetFeatureInfoURL (const te::ws::ogc::wms::WMSGetFeatureInfoRequest &request) const
 
std::string buildGetMapRequestURL (const te::ws::ogc::wms::WMSGetMapRequest &request) const
 

Private Attributes

te::ws::ogc::wms::WMSCapabilities m_capabilities
 
std::shared_ptr< te::ws::core::CurlWrapperm_curl
 
std::string m_dataDir
 
std::unique_ptr< te::ws::ogc::wms::XMLParserm_parser
 
te::core::URI m_uri
 
std::string m_version
 

Detailed Description

A class to retrieve information and data from a Web Map Service.

Definition at line 57 of file WMSClient.h.

Constructor & Destructor Documentation

te::ws::ogc::WMSClient::WMSClient ( const std::string  usrDataDir = "",
const std::string  uri = "",
const std::string  version = "1.3.0" 
)

Class constructor. It initializes the m_uri and m_version class members.

Parameters
usrDataDirDirectory to store used temporary XML and images from WMS server.
uriThe adress of WMS server.
versionThe WMS version.

Definition at line 18 of file WMSClient.cpp.

References te::core::FileSystem::createDirectories(), te::core::FileSystem::exists(), te::core::URI::host(), te::ws::core::HTTP_BASIC, te::core::FileSystem::isDirectory(), m_curl, m_dataDir, m_parser, m_uri, m_version, te::common::AbstractFactory< XMLParser, std::string >::make(), te::core::URI::password(), te::core::URI::path(), te::core::URI::port(), te::core::URI::query(), te::core::URI::scheme(), te::core::URI::user(), and ~WMSClient().

te::ws::ogc::WMSClient::~WMSClient ( )
default

Default destructor.

Referenced by WMSClient().

Member Function Documentation

std::string te::ws::ogc::WMSClient::buildGetFeatureInfoURL ( const te::ws::ogc::wms::WMSGetFeatureInfoRequest request) const
private

Definition at line 366 of file WMSClient.cpp.

References build111GetFeatureInfoURL(), build130GetFeatureInfoURL(), and m_version.

Referenced by getFeatureInfo().

std::string te::ws::ogc::WMSClient::buildGetMapRequestURL ( const te::ws::ogc::wms::WMSGetMapRequest request) const
private

Definition at line 180 of file WMSClient.cpp.

References build111GetMapRequestURL(), build130GetMapRequestURL(), and m_version.

Referenced by getMap(), and saveGetMap().

const te::ws::ogc::wms::WMSCapabilities & te::ws::ogc::WMSClient::getCapabilities ( ) const

Return the WMSCapabilities member.

The WMSCapabilities will be empty until the updateCapabilities() method its called.

Returns
Returns the WMSCapabilities member.

Definition at line 108 of file WMSClient.cpp.

References m_capabilities.

Referenced by BOOST_AUTO_TEST_CASE(), and main().

const te::ws::ogc::wms::WMSGetFeatureInfoResponse te::ws::ogc::WMSClient::getFeatureInfo ( const te::ws::ogc::wms::WMSGetFeatureInfoRequest request) const

It execute a WMS GetFeatureInfo and returns a WMSGetFeatureInfoResponse with the result.

Returns
a WMSGetFeatureInfoResponse with server response.

Definition at line 147 of file WMSClient.cpp.

References buildGetFeatureInfoURL(), m_curl, te::ws::ogc::wms::WMSGetFeatureInfoResponse::m_featureInfoContent, te::ws::ogc::wms::WMSGetFeatureInfoRequest::m_infoFormat, and te::ws::ogc::wms::WMSGetFeatureInfoResponse::m_infoFormat.

Referenced by main().

const te::ws::ogc::wms::WMSGetMapResponse te::ws::ogc::WMSClient::getMap ( const te::ws::ogc::wms::WMSGetMapRequest request) const

Return the WMSGetMapResponse member.

Make the GetMapRequest and return the server answer as a WMSGetMapResponse.

Returns
Returns a path to a file

Definition at line 118 of file WMSClient.cpp.

References buildGetMapRequestURL(), te::ws::ogc::wms::WMSGetMapResponse::m_buffer, m_curl, te::ws::ogc::wms::WMSGetMapRequest::m_format, te::ws::ogc::wms::WMSGetMapResponse::m_format, and te::ws::ogc::wms::WMSGetMapResponse::m_size.

Referenced by BOOST_AUTO_TEST_CASE(), and main().

std::string te::ws::ogc::WMSClient::makeFileRequest ( const std::string  url,
const std::string  fileName 
) const

Executes a request on a WMS server.

Parameters
urlThe complete url of request
Returns
Returns a path to a file

Definition at line 166 of file WMSClient.cpp.

References m_curl, and m_dataDir.

Referenced by saveGetMap(), and updateCapabilities().

const std::string te::ws::ogc::WMSClient::saveGetMap ( const te::ws::ogc::wms::WMSGetMapRequest request,
const std::string &  filename 
)

It execute a WMS GetMap and save the result image on disk. The request will be based on WMSGetMapRequest setted to this WMSLayer.

Returns
std::string with saved image path.

Definition at line 137 of file WMSClient.cpp.

References buildGetMapRequestURL(), and makeFileRequest().

Referenced by BOOST_AUTO_TEST_CASE().

void te::ws::ogc::WMSClient::setCapabilities ( const te::ws::ogc::wms::WMSCapabilities capabilities)

Definition at line 113 of file WMSClient.cpp.

References capabilities, and m_capabilities.

void te::ws::ogc::WMSClient::setCurlWrapper ( te::ws::core::CurlWrapper curlWrapper)

Sets the TerraLib CurlWrapper to be used internally.

By default it is an instance of te::ws::core::CurlWrapper class.

Parameters
curlWrapperWrapper to be used.

Definition at line 175 of file WMSClient.cpp.

References m_curl.

void te::ws::ogc::WMSClient::updateCapabilities ( )

Method to get the capabilities from a WMS server and store in m_capabilities member.

To access the information contained in the m_capabilities, use the getCapabilities() method.

According to version negotiation, the client must try to request with the higher supported version. If server response with an other version, client must try to request with an lower version.

Definition at line 67 of file WMSClient.cpp.

References m_capabilities, m_curl, m_parser, m_uri, m_version, te::common::AbstractFactory< XMLParser, std::string >::make(), makeFileRequest(), TE_TR, and te::core::URI::uri().

Referenced by BOOST_AUTO_TEST_CASE(), te::ws::ogc::wms::da::DataSource::exists(), and main().

Member Data Documentation

te::ws::ogc::wms::WMSCapabilities te::ws::ogc::WMSClient::m_capabilities
private

Definition at line 154 of file WMSClient.h.

Referenced by getCapabilities(), setCapabilities(), and updateCapabilities().

std::shared_ptr<te::ws::core::CurlWrapper> te::ws::ogc::WMSClient::m_curl
private
std::string te::ws::ogc::WMSClient::m_dataDir
private

Definition at line 152 of file WMSClient.h.

Referenced by makeFileRequest(), and WMSClient().

std::unique_ptr<te::ws::ogc::wms::XMLParser> te::ws::ogc::WMSClient::m_parser
private

Definition at line 156 of file WMSClient.h.

Referenced by updateCapabilities(), and WMSClient().


The documentation for this class was generated from the following files: