Skip to content

heremaps/here-polyline-converter

Repository files navigation

workflow codecov

A tool to encode/decode HERE legacy polyline strings and convert them from/into HERE Flexible Polyline format.

Note that the HERE Places (Search) API is in maintenance: Developers need to adapt their applications to the newer HERE Geocoding & Search API to benefit from the features developed after 2018.

Install

pip install here-polyline-converter

Usage

>>> convert_legacy_to_flex(legacy_polyline_string)

Transforms a HERE legacy polyline string into a flexible polyline string. The legacy Polyline third dimension (segments width changes) is ignored.

>>> encode_legacy(iterable)

Encodes a list of coordinates to the corresponding HERE legacy polyline string representation. Expected coordinates order: (lat, lng[, width]). Note that width is expected to be one of DW, HW, CW.

>>> decode_legacy(legacy_polyline_string)

Decodes a HERE legacy polyline string into an array of coordinates (lat, lng[, width]).

Note that width is expected to be one of DW, HW, CW.

Examples

>>> import here_search.polyline_converter as pc
>>> legacy_polyline = "oz5xJ67i1B1B7PzIhaxL7Y"
>>> flexible_polyline = pc.convert_legacy_to_flex(legacy_polyline)
>>> flexible_polyline
'BFoz5xJ67i1B1B7PzIhaxL7Y'

>>> points = [(50.1022829, 8.6982122), (50.1020076, 8.6956695), (50.1006313, 8.6914960), (50.0987800, 8.6875156)]
>>> pc.encode_legacy(points)
'oz5xJ67i1B1B7PzIhaxL7Y'

>>> legacy_polyline = "oz5xJ67i1B.C1B7PzIha.DxL7Y"
>>> pc.decode_legacy(legacy_polyline)
[(50.10228, 8.69821, 'CW'), (50.10201, 8.69567), (50.10063, 8.6915, 'DW'), (50.09878, 8.68752)]

License

Copyright (C) 2023 HERE Europe B.V.

See the LICENSE file in the root of this project for license details.