2013-12-10 5 views
2

В моем Android-приложении я использую Picasso, чтобы загрузить изображения. Это нормально работает отлично.Как загрузить статическую карту Google maps с помощью Picasso?

Сегодня я попытался загрузить статическое изображение с карт google api, но это, похоже, не работает. Когда я открываю example link, как указано на their info page, я вижу, что изображение статической карты отлично. Когда я загружаю его в своем Android-приложении, используя нижеследующую строку, я ничего не получаю.

Picasso.with(getContext()).load("http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=370x250&maptype=roadmap%20&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.%20&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false").into(mapView); 

Я также попытался загрузить изображение и загрузить его на мое личное вебпространство, из которого он loads perfectly well, но так или иначе, это, кажется, не загружать непосредственно из прямого Google API URL.

Кто-нибудь знает, почему это так, и как я могу это решить?

+0

Кажется, проблема с символом '|'. Во всяком случае, это ошибка. –

ответ

0

Единственный программный момент отказа, который приходит на ум, заключается в разборе URI. Глядя на текущий код Пикассо (https://github.com/square/picasso/blob/master/picasso/src/main/java/com/squareup/picasso/Picasso.java) я вижу следующее:

public RequestCreator load(String path) { 
    if (path == null) { 
     return new RequestCreator(this, null, 0); 
    } 
    if (path.trim().length() == 0) { 
     throw new IllegalArgumentException("Path must not be empty."); 
    } 
    return load(Uri.parse(path)); 
    } 

Так я впервые отлаживать

Uri.parse("http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=370x250&maptype=roadmap%20&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.%20&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false") 

и посмотреть, что объект выглядит. Оказывает ли это или путает какие-либо из ваших параметров?

Если это не приведет вас к месту, попробуйте загрузить файл вручную с помощью HttpClient [или аналогичного]. По крайней мере, вы можете полностью отладить запрос/ответ.

Кроме того, я знаю, что карты Google имеют некоторые ограничения - вы уверены, что не достигли их?

Смежные вопросы