Skip to content

Route Matching API

RmeApi

Bases: HEREApi

A python interface into the RME API

Source code in herepy/rme_api.py
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
class RmeApi(HEREApi):
    """A python interface into the RME API"""

    def __init__(self, api_key: str = None, timeout: int = None):
        """Returns a RmeApi instance.
        Args:
          api_key (str):
            API key taken from HERE Developer Portal.
          timeout (int):
            Timeout limit for requests.
        """

        super(RmeApi, self).__init__(api_key, timeout)
        self._base_url = "https://m.fleet.ls.hereapi.com/2/matchroute.json"

    def __get(self, data):
        url = Utils.build_url(self._base_url, extra_params=data)
        response = requests.get(url, timeout=self._timeout)
        try:
            json_data = json.loads(response.content.decode("utf8"))
            if json_data.get("TracePoints") != None:
                return RmeResponse.new_from_jsondict(json_data)
            else:
                raise HEREError(
                    json_data.get(
                        "Details",
                        "Error occurred on function " + sys._getframe(1).f_code.co_name,
                    )
                )
        except ValueError as err:
            raise HEREError(
                "Error occurred on function "
                + sys._getframe(1).f_code.co_name
                + " "
                + str(err)
            )

    def match_route(
        self, gpx_file_content: str, route_mode: str = "car", pde_layers: List[str] = []
    ) -> Optional[RmeResponse]:
        """Retrieves misc information about the route given in gpx file
        Args:
          gpxfile content (str):
            gpx file content as string
          routemode (str):
            route mode ('car')
          pde_layers (str list):
            PDE layers to retrieve e.g.:
              ROAD_GEOM_FCn(TUNNEL)
              SPEED_LIMITS_FCn(FROM_REF_SPEED_LIMIT,TO_REF_SPEED_LIMIT)
              ADAS_ATTRIB_FCn(SLOPES)

              or e.g.,

              ROAD_GEOM_FCn(*)
              SPEED_LIMITS_FCn(*)
        Returns:
          RmeResponse
        Raises:
          HEREError"""

        data = {
            "file": Utils.get_zipped_base64(gpx_file_content),
            "routemode": route_mode,
            "attributes": ",".join(pde_layers),
            "apikey": self._api_key,
        }
        return self.__get(data)

__init__(api_key=None, timeout=None)

Returns a RmeApi instance. Args: api_key (str): API key taken from HERE Developer Portal. timeout (int): Timeout limit for requests.

Source code in herepy/rme_api.py
18
19
20
21
22
23
24
25
26
27
28
def __init__(self, api_key: str = None, timeout: int = None):
    """Returns a RmeApi instance.
    Args:
      api_key (str):
        API key taken from HERE Developer Portal.
      timeout (int):
        Timeout limit for requests.
    """

    super(RmeApi, self).__init__(api_key, timeout)
    self._base_url = "https://m.fleet.ls.hereapi.com/2/matchroute.json"

match_route(gpx_file_content, route_mode='car', pde_layers=[])

Retrieves misc information about the route given in gpx file Args: gpxfile content (str): gpx file content as string routemode (str): route mode ('car') pde_layers (str list): PDE layers to retrieve e.g.: ROAD_GEOM_FCn(TUNNEL) SPEED_LIMITS_FCn(FROM_REF_SPEED_LIMIT,TO_REF_SPEED_LIMIT) ADAS_ATTRIB_FCn(SLOPES)

  or e.g.,

  ROAD_GEOM_FCn(*)
  SPEED_LIMITS_FCn(*)

Returns: RmeResponse Raises: HEREError

Source code in herepy/rme_api.py
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
def match_route(
    self, gpx_file_content: str, route_mode: str = "car", pde_layers: List[str] = []
) -> Optional[RmeResponse]:
    """Retrieves misc information about the route given in gpx file
    Args:
      gpxfile content (str):
        gpx file content as string
      routemode (str):
        route mode ('car')
      pde_layers (str list):
        PDE layers to retrieve e.g.:
          ROAD_GEOM_FCn(TUNNEL)
          SPEED_LIMITS_FCn(FROM_REF_SPEED_LIMIT,TO_REF_SPEED_LIMIT)
          ADAS_ATTRIB_FCn(SLOPES)

          or e.g.,

          ROAD_GEOM_FCn(*)
          SPEED_LIMITS_FCn(*)
    Returns:
      RmeResponse
    Raises:
      HEREError"""

    data = {
        "file": Utils.get_zipped_base64(gpx_file_content),
        "routemode": route_mode,
        "attributes": ",".join(pde_layers),
        "apikey": self._api_key,
    }
    return self.__get(data)