Иногда при загрузке карты я получаю статическое изображение (и без маркеров) вместо интерактивной карты с маркерами и элементами управления.
Думаю, это особенность для медленных подключений:
http://code.google.com/intl /es-AR/apis/maps/articles/static+js.html

Но тогда в API есть ошибка, потому что я застрял в этом статическом изображении, карта никогда не загружается.

Знаете ли вы, можно ли отключить статическое изображение в APIv3 и принудительно загружать интерактивную карту каждый раз?

3
Enrique 28 Авг 2011 в 00:42

2 ответа

Лучший ответ

НОВЫЙ / ОБНОВЛЕННЫЙ ОТВЕТ . По-видимому, раньше вы могли подавить это поведение, установив useStaticMap: false в своем объекте MapOptions. Однако есть сообщения, что это перестало работать примерно в марте. См. эту ветку Групп Google. Возможно, он был восстановлен, а возможно, нет. Поиск "useStaticMap" в миниатюрном коде JavaScript для Google Maps API v3 действительно дает результат, так что это многообещающе.

Также обратите внимание на сообщение в этом потоке, в котором говорится, что имя свойства было изменено на useStaticMapImpl. Беглый поиск в JavaScript не позволяет найти эту строку, но если useStaticMap не работает, то это тоже стоит попробовать.

И снова удачи! Если бы я мог воспроизвести эту проблему, я мог бы протестировать некоторые из этих предложений, прежде чем их отбросить, но, увы, я не могу этого добиться по какой-либо причине.

СТАРЫЙ ОТВЕТ . Я пытался добиться описанного вами поведения, замедляя сетевое соединение с помощью SpeedLimit на Mac. Я не смог этого сделать. Из этого я прихожу к выводу, что, возможно, проблема в медленном соединении, это может быть очень медленное соединение. Поэтому я подозреваю, что отключение этой функции может привести к тому, что карта просто не загрузится.

Я не могу найти в Справочнике по API ничего, что указывало бы на возможность использования этой функции. Фактически, если судить исключительно из Справочника по API, такого переключения на статические карты не существует. Хотя я вижу, где это упоминается в предоставленной вами ссылке, возможно, справочник по API неполный.

С учетом всего сказанного, если вы хотите попытаться отключить поведение, вы можете сделать это, прослушивая событие tilesloaded и / или idle в объекте Map. (Событие idle предположительно запускается, когда карта загружена и готова к использованию, но событие tilesloaded кажется более интуитивным. Возможно, вам придется поэкспериментировать, чтобы увидеть, какое из них даст вам результат, который вы хотите.) Вы можете скрыть <div> до тех пор, пока не сработает соответствующее событие.

Удачи!

2
Trott 28 Авг 2011 в 18:01

Вероятно, это не ответ на ваш вопрос, но у меня была такая же проблема, и я обнаружил, что дважды загружал API по ошибке. Как только я удалил повторяющийся скрипт, все снова заработало.

3
Jens 5 Авг 2013 в 12:41