Decoding and encoding of the google polyline algorithm as described at https://developers.google.com/maps/documentation/utilities/polylinealgorithm
Current stable release is 0.3.0, which requires Clojure 1.7 or later.
Leiningen dependency information:
[com.michaelgaare/clojure-polyline "0.3.0"]
(require '[com.michaelgaare.clojure-polyline :as polyline])
;; Decode a polyline string:
(polyline/decode "_p~iF~ps|U_ulLnnqC_mqNvxq`@")
;; => ({:longitude -120.2, :latitude 38.5} {:longitude -120.95, :latitude 40.7} {:longitude -126.453, :latitude 43.252})
;; Encode a collection of coordinates:
(polyline/encode [[38.5 -120.2] [40.7 -120.95] [43.252 -126.453]])
;; => "_p~iF~ps|U_ulLnnqC_mqNvxq`@"
encode expects a sequence of vectors of the format [latitude longitude] - if you have this as a sequence of maps of the format
{:longitude longitude :latitude latitude} you can use coords->vec to
convert to a collectoin of coordinate vectors.
You can use also use to-coords to turn a collection of [latitude longitude] vectors into the map format.
encode codepath completely rewritten to scrub out some of
the wacky stuff I did 6 years ago. As a result it's 19x faster.Copyright © 2018 Michael Gaare
Distributed under the Eclipse Public License, the same as Clojure.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |