Google Static Maps API: создание статической карты с путями

Я пытаюсь создать статическую карту 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-адрес, похоже, имеет тот же формат, что и примеры. Кто-нибудь знает, что я делаю неправильно?

Спасибо

Бен


person benwad    schedule 22.02.2011    source источник


Ответы (1)


Что-то не так с цветовым параметром путей. У меня работает следующий 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

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

person Andrew Walker    schedule 01.03.2011