Хорошо, может быть, это глупый вопрос, но я трачу часы и не могу найти что-то, чтобы помочь мне это выяснить.
Я использую Google Maps Static Map, чтобы нарисовать карту с множеством точек на пути, я делаю один запрос, как этот:
https://maps.googleapis.com/maps/api/staticmap?size=1000x500&maptype=roadmap&markers=icon:http://api.appcargo.com/app_images/ic_pin.png|44.80006858,20.4791788&markers=icon:http://api.appcargo.com/app_images/ic_pin_destination_toolbar.png|44.8013566,20.4804733&path=color:0xff0000ff|weight:5|44.80006858,20.4791788|44.80028333,20.47892833|44.80152833,20.48004833|44.80135667,20.48047333&format=jpg
Работает отлично! Теперь я пытаюсь использовать Polylines для создания короткого запроса, потому что предел API Google составляет 2000 символов, и для моего приложения у меня есть ситуации с более чем 100 точками координат, которые нужно указать в пути.
У меня есть алгоритм (PHP) для кодирования координат в полилиниях, после этого я запрашиваю снова с закодированными координатами.
Результат для того же запроса, но с полилинией:
https://maps.googleapis.com/maps/api/staticmap?size=1000x500&maptype=roadmap&markers=icon:http://api.appcargo.com/app_images/ic_pin.png|44.80006858,20.4791788&markers=icon:http://api.appcargo.com/app_images/ic_pin_destination_toolbar.png|44.8013566,20.4804733&path=color:0xff0000ff|weight:5|m_mpG{y~{Bi@p@yF_F`@sA&format=jpg
Не работает … поэтому мой вопрос здесь: могу ли я использовать закодированную Polyline для такого рода вызовов в Google API, как я делаю сейчас без Polyline, или я делаю что-то не так?
Вам не хватает enc:
: статическая карта с закодированной строкой
https://maps.googleapis.com/maps/api/staticmap?size=1000x500&maptype=roadmap&markers=icon:http://api.appcargo.com/app_images/ic_pin.png%7C44.80006858,20.4791788&markers=icon:http://api.appcargo.com/app_images/ic_pin_destination_toolbar.png%7C44.8013566,20.4804733&path=color:0xff0000ff%7Cweight:5%7Cenc:m_mpG%7By~%7BBi@p@yF_F%60@sA&format=jpg
От документация:
Закодированные полилинии
Вместо ряда местоположений вы можете объявить путь как закодированную полилинию, используя ENC: префикс в объявлении местоположения пути. Обратите внимание, что если вы указываете закодированный путь ломаной линии для карты, вам не нужно указывать (обычно требуется) параметры центра и масштабирования.
Других решений пока нет …