Здесь показан алгоритм кодирования: http://code.google.com/apis/maps/documentation/utilities/polylinealgorithm.html
Доступен декодер от профессора Марка МакКлюра по адресу http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/decode.html
При кодировании используются смещения (дельты) от точки к точке.Смещение первой точки вычисляется из (0,0), поэтому оно равняется координатам первой точки.Вторая точка кодируется как смещение точки два от точки один и т. Д.
Чтобы соединить две линии, сначала нужно найти последнюю точку первой линии и первую точку второйline.
Затем вы вычисляете смещение второй линии от последней точки первой линии и подставляете это смещение для первой координаты во второй строке.Таким образом, вторая строка начинается не со смещения от (0,0), а со смещения от конца первой строки.
Теперь необходимо перекодировать последнюю точку первой строкичтобы показать, что это еще не все.
Поскольку каждая закодированная точка в каждой строке может состоять из переменного числа символов, нелегко найти любую точку (даже первую) без декодирования всей строки.
Итак: сделатьработа, которую вам нужно будет сделать некоторые декодирования и перекодирования.Вероятно, проще всего декодировать каждую строку в массив точек, а затем перекодировать все это.Кодирование быстро и просто в PHP - см. Сайт McClure снова.
Это противоречит ответу, который я дал в группе Google Карт версии 2, где я ошибочно предположил, что длина каждой закодированной точки строгопять символов.
UNCA реорганизовала веб-сайт своего персонала в 2013/14 году, и доступ к работе профессора МакКлюра теперь доступен только через archive.org .Хотя описание кодированных полилиний все еще доступно и актуально, примеры, основанные на Javascript, могут больше не работать.