Клуб API Карт

Процесс кодирования вершин ломаной в base64

web-sphere
29 сентября 2013, 16:58

Добрый день.

Подскажите, пожалуйста, имеется ли сейчас в документации по maps api 2.0 подробное описание алгортима кодирования координат ломаной в base64?

В предыдущих темах несколько раз встречалась ссылка: http://api.yandex.ru/maps/jsapi/doc/dg/tasks/how-to-add-polyline.xml#encoding-polyline-points

но, видимо, она уже устарела (404).

 

Заранее спасибо.

4 комментария
Подписаться на комментарии к посту

В 2.0 есть методы для кодирования геометрии ломаной

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/geometry.LineString.toEncodedCoordinates.xml

Ну и в браузерах теперь есть btoa

https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa

Дело в том, что у меня задача собрать данные по геометрии объектов, которые будут отображены на карте.

Данные хранятся в базе (postgresql/postgis). Саму геометрию я посчитал, теперь осталось только сохранить ее в base64, чтобы по сети меньше данных гонять.

Метод toStringEncodedCoordinates() я рассматривал на крайний случай, т.к. хотел дописать postgres процедурку, чтобы на выходе уже получалась таблица с готовыми данными в base64 формате.

Я на форуме нашел примеры реализации кодирования на JS:

http://rodlex.narod.ru/examples/from-encoded-points.html

http://api.yandex.ru/maps/doc/jsapi/1.x/examples/mappolylineencodepoints.html

и в них конечно можно разобраться, но, все-таки хотелось бы увидеть более формальное описание (вида step-by-step). Поясню: в проекте, в котором я работаю, скоро нужно будет добавлять карту с размещенными на ней

конкретными географическими объектами. Поскольку геометрия этих объектов меняется довольно редко, то координаты этих объектов я хотел хранить в закодированном виде base64. И вот тут хотелось бы иметь уверенность, что алгоритм кодирования/декодирования у карт яндекса не поменяется.

Или может есть другое решение хранения гео данных? Все-таки, насколько я понял, алгоритм яндекса довольно специфичный в том смысле, что закодированная строка координат через yandex api не будет совместима, например, с google api: https://developers.google.com/maps/documentation/utilities/polylinealgorithm

 

Я бы не стал хранить геометрию в base64, может только на клиент ее пересылать в этом формате.

Если Вы используете postgis, храните ее в тех типах, которые он предоставляет. Иначе зачем нужен postgis

Да, наверное это самое разумное решение

Спасибо большое за ответы!