knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )

The **flexpolyline** R package provides a binding to the
C++ implementation of the
flexible polyline encoding by HERE.
The flexible polyline encoding is a lossy compressed representation of a list of
coordinate pairs or coordinate triples.

The encoding is achieved by:

(1) Reducing the decimal digits of each value; (2) encoding only the offset from the previous point; (3) using variable length for each coordinate delta; and (4) using 64 URL-safe characters to display the result. The felxible polyline encoding is a variant of the Encoded Polyline Algorithm Format by Google.

**Note:**

- Decoding gives reliable results up to a precision of 7 digits. The tests are also limited to this range.
- The order of the coordinates (lng, lat) does not correspond to the original C++ implementation (lat, lng).
This enables simple conversion to
`sf`

objects, without reordering the columns. - The encoding is lossy, this means the encoding process could reduce the precision of your data.

You can install the released version of **flexpolyline** from CRAN with:

install.packages("flexpolyline")

Install the development version from GitHub with:

remotes::install_github("munterfi/flexpolyline")

Encoding and decoding in R is straight forward by using `encode()`

and `decode()`

.
These functions are binding to the flexpolyline C++ implementation and have similar arguments
and return values as their counterparts (`hf::encode_polyline`

and `hf::decode_polyline`

):

library(flexpolyline) (line <- matrix( c(8.69821, 50.10228, 10, 8.69567, 50.10201, 20, 8.69150, 50.10063, 30, 8.68752, 50.09878, 40), ncol = 3, byrow = TRUE )) (encoded <- encode(line)) (decoded <- decode(encoded))

A common way to deal with spatial data in R is the
sf package, which is
built on the concept of simple features. The functions `encode_sf()`

and
`decode_sf()`

provide an interface that support the encoding of sf objects:

(sfg <- sf::st_linestring(line, dim = "XYZ")) (encoded <- encode_sf(sfg)) (decoded <- decode_sf(encoded))

- Flexible Polyline Encoding by HERE
- Encoded Polyline Algorithm Format
- Simple Features for R
- Inspired by the googlePolylines package

**Any scripts or data that you put into this service are public.**

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.