Module ogc::wms[][src]

Web Mapping Service support, versions 1.1.0 and 1.3.0.

Typically one would use WebMappingService::from_url to invoke a remote Web Mapping Service endpoint, e.g.:

use ogc::wms::{Wms, WebMappingService};
#[tokio::main]
async fn main() -> Result<(), String> {
  let url =
  "http://giswebservices.massgis.state.ma.us/geoserver/wms?request=GetCapabilities&service=WMS&version=1.3.0".to_string();
  let capa = WebMappingService::from_url(url.clone()).unwrap()
        .get_capabilities().await.expect("Failure during GetCapabilities call");
  assert_eq!(capa.service.name, "WMS");
  assert_eq!(capa.service.title, "Massachusetts Data from MassGIS (GeoServer)");
  Ok(())
}

WMS GetMap Support

The supported request parameters are:

  • VERSION
  • LAYERS
  • STYLES
  • SRS
  • WIDTH
  • HEIGHT
  • FORMAT

e.g.:

use ogc::wms::{BoundingBox, GetMapParameters, Wms, WebMappingService};
use std::fs::File;
use std::io::Write;
#[tokio::main]
async fn main() {
  let url = "https://ows.terrestris.de/osm/service?";
  let bytes = WebMappingService::from_url(url.to_string()).unwrap().get_map(
    GetMapParameters {
      layers: vec!["OSM-WMS".to_string()],
      srs: "EPSG:4326".to_string(),
      bbox: BoundingBox {
          srs: "EPSG:4326".to_string(),
          minx: -180.0,
          miny: -90.0,
          maxx: 180.0,
          maxy: 90.0,
      },
      ..GetMapParameters::default()
    }).await.unwrap();
  assert_ne!(bytes.len(), 0);
  let mut file = File::create("/tmp/terrestris-get-map.png").unwrap();
  assert!(file.write_all(&bytes).is_ok());
}

Structs

BoundingBox
Capability

The root element

GetCapabilities
GetFeatureInfo
GetMapParameters

The parameters for a GetMap service request, as per the WMS test data spec.

KeywordList
LatLonBoundingBox
Layer
ScaleHint
Service

General service metadata

Style
WebMappingService

A configurable WMS endpoint

Traits

Wms

Behaviour for a Web Mapping Service endpoint as per the specification.