Google Static Maps API: создание статической карты с путями - PullRequest
5 голосов
/ 22 февраля 2011

Я пытаюсь сгенерировать статическую карту Google с несколькими точками на ней и несколькими линиями, соединяющими эти точки (я скоро собираюсь привести линии в соответствие с направлениями движения, но это произойдет позже). Сейчас у меня есть такой код для генерации URL:

def getStaticMapAddress(self, route):
    url = "http://maps.google.com/maps/api/staticmap?center="+str(route[0].location.lat)+","+str(route[0].location.lng)+"&zoom=6&size=400x400&markers="
    i=0
    while i<len(route):
        url += str(route[i].location.lat)+","+str(route[i].location.lng)
        i=i+1
        if (i < len(route)):
            url += "|"
    url += "&path=color:0xff0000ff&weight:5"
    i=0
    while i<len(route):
        url += "|"+str(route[i].location.lat)+","+str(route[i].location.lng)
        i+=1
    url += "&sensor=false"
    return url

В этой функции «маршрут» представляет собой список пользователей с соответствующими местоположениями. С моими тестовыми данными этот URL был сгенерирован:

http://maps.google.com/maps/api/staticmap?center=50.8202008,-0.1324898&zoom=6&size=400x400&markers=50.8202008,-0.1324898|51.447341,-0.0761212|51.4608947,-2.5884312&path=color:0xff0000ff&weight:5|50.8202008,-0.1324898|51.447341,-0.0761212|51.4608947,-2.5884312&sensor=false

Если вы посмотрите на эту статическую карту, вы увидите маркеры, но не пути. Я искал документацию для этого (http://code.google.com/apis/maps/documentation/staticmaps/#Paths) и не вижу, где я ошибся. При просмотре примеров мой URL, похоже, имеет тот же формат, что и примеры. Кто-нибудь знает, что я? я делаю неправильно?

Спасибо

Ben

1 Ответ

9 голосов
/ 01 марта 2011

Что-то не так с параметром цвета путей.У меня работает следующий URI:

http://maps.google.com/maps/api/staticmap?center=50.8202008,-0.1324898&zoom=6&size=400x400&markers=50.8202008,-0.1324898|51.447341,-0.0761212|51.4608947,-2.5884312&path=weight:5|50.8202008,-0.1324898|51.447341,-0.0761212|51.4608947,-2.5884312&sensor=false

, и я вижу синие линии по умолчанию.

Обновление :«что-то не так» заключается в том, что разделитель между цветом пути и весом пути является символом трубы , а не амперсандом.Это:

http://maps.google.com/maps/api/staticmap?center=50.8202008,-0.1324898&zoom=6&size=400x400&markers=50.8202008,-0.1324898|51.447341,-0.0761212|51.4608947,-2.5884312&path=color:0xff0000ff|weight:5|50.8202008,-0.1324898|51.447341,-0.0761212|51.4608947,-2.5884312&sensor=false

работает и дает красную линию.

...