osmapi.capabilities
Capabilities and miscellaneous operations for the OpenStreetMap API.
1""" 2Capabilities and miscellaneous operations for the OpenStreetMap API. 3""" 4 5from typing import Any, TYPE_CHECKING, cast 6from xml.dom.minidom import Element 7 8from . import dom, parser 9 10if TYPE_CHECKING: 11 from .OsmApi import OsmApi 12 13 14class CapabilitiesMixin: 15 """Mixin providing capabilities and misc operations with pythonic method names.""" 16 17 def capabilities(self: "OsmApi") -> dict[str, dict[str, Any]]: 18 """ 19 Returns the API capabilities as a dict. 20 21 The capabilities can be used by a client to 22 gain insights of the server in use. 23 """ 24 uri = "/api/capabilities" 25 data = self._session._get(uri) 26 27 api_element = cast(Element, dom.OsmResponseToDom(data, tag="api", single=True)) 28 result: dict[str, Any] = {} 29 for elem in api_element.childNodes: 30 if elem.nodeType != elem.ELEMENT_NODE: 31 continue 32 result[elem.nodeName] = {} 33 for k, v in elem.attributes.items(): 34 try: 35 result[elem.nodeName][k] = float(v) 36 except Exception: 37 result[elem.nodeName][k] = v 38 return result 39 40 def map( 41 self: "OsmApi", min_lon: float, min_lat: float, max_lon: float, max_lat: float 42 ) -> list[dict[str, Any]]: 43 """ 44 Download data in bounding box. 45 46 Returns list of dict with type and data. 47 """ 48 uri = f"/api/0.6/map?bbox={min_lon:f},{min_lat:f},{max_lon:f},{max_lat:f}" 49 data = self._session._get(uri) 50 return parser.parse_osm(data)
class
CapabilitiesMixin:
15class CapabilitiesMixin: 16 """Mixin providing capabilities and misc operations with pythonic method names.""" 17 18 def capabilities(self: "OsmApi") -> dict[str, dict[str, Any]]: 19 """ 20 Returns the API capabilities as a dict. 21 22 The capabilities can be used by a client to 23 gain insights of the server in use. 24 """ 25 uri = "/api/capabilities" 26 data = self._session._get(uri) 27 28 api_element = cast(Element, dom.OsmResponseToDom(data, tag="api", single=True)) 29 result: dict[str, Any] = {} 30 for elem in api_element.childNodes: 31 if elem.nodeType != elem.ELEMENT_NODE: 32 continue 33 result[elem.nodeName] = {} 34 for k, v in elem.attributes.items(): 35 try: 36 result[elem.nodeName][k] = float(v) 37 except Exception: 38 result[elem.nodeName][k] = v 39 return result 40 41 def map( 42 self: "OsmApi", min_lon: float, min_lat: float, max_lon: float, max_lat: float 43 ) -> list[dict[str, Any]]: 44 """ 45 Download data in bounding box. 46 47 Returns list of dict with type and data. 48 """ 49 uri = f"/api/0.6/map?bbox={min_lon:f},{min_lat:f},{max_lon:f},{max_lat:f}" 50 data = self._session._get(uri) 51 return parser.parse_osm(data)
Mixin providing capabilities and misc operations with pythonic method names.
18 def capabilities(self: "OsmApi") -> dict[str, dict[str, Any]]: 19 """ 20 Returns the API capabilities as a dict. 21 22 The capabilities can be used by a client to 23 gain insights of the server in use. 24 """ 25 uri = "/api/capabilities" 26 data = self._session._get(uri) 27 28 api_element = cast(Element, dom.OsmResponseToDom(data, tag="api", single=True)) 29 result: dict[str, Any] = {} 30 for elem in api_element.childNodes: 31 if elem.nodeType != elem.ELEMENT_NODE: 32 continue 33 result[elem.nodeName] = {} 34 for k, v in elem.attributes.items(): 35 try: 36 result[elem.nodeName][k] = float(v) 37 except Exception: 38 result[elem.nodeName][k] = v 39 return result
Returns the API capabilities as a dict.
The capabilities can be used by a client to gain insights of the server in use.
def
map( self: osmapi.OsmApi.OsmApi, min_lon: float, min_lat: float, max_lon: float, max_lat: float) -> list[dict[str, typing.Any]]:
41 def map( 42 self: "OsmApi", min_lon: float, min_lat: float, max_lon: float, max_lat: float 43 ) -> list[dict[str, Any]]: 44 """ 45 Download data in bounding box. 46 47 Returns list of dict with type and data. 48 """ 49 uri = f"/api/0.6/map?bbox={min_lon:f},{min_lat:f},{max_lon:f},{max_lat:f}" 50 data = self._session._get(uri) 51 return parser.parse_osm(data)
Download data in bounding box.
Returns list of dict with type and data.