Рендеринг MapView с отсутствующими плитками со знаком «х» в центре - PullRequest
11 голосов
/ 20 сентября 2011

Это очень, очень странно. Я никогда не видел ничего подобного. В тот момент, когда я сделал этот снимок экрана, я не загружаю никаких оверлеев. Во-первых, я думал, что это было мое интернет-соединение, где он не мог загрузить информацию о тайле; но у нас есть много пользователей, сообщающих о той же проблеме, которые скачали с маркета. Это только начало происходить как неделю назад. Не уверен, почему, хотя. У кого-нибудь есть подсказка? Спасибо!


mapview with tiles missing

Ответы [ 9 ]

11 голосов
/ 21 сентября 2011

Хорошо. Начав с чистого проекта, я нашел эти две строки кода, которые были виновником.

mapView.setSatellite(true);

mapView.setStreetView(true);

Они появились вплотную друг к другу, и я оглянулся в самом начале разработки, и они были там, и это работало просто отлично. По-видимому, это ошибка в MapView, так как я предполагаю, что она пытается одновременно отображать и SateliteView, и StreetView. Можно было бы подумать, что последний переопределит первый; но я думаю, нет.

Итак, у меня есть вопрос, почему это внезапно всплыло в течение последней недели или около того. Я предполагаю, что приложение «Карты» в последний раз обновлялось на рынке 8 сентября и, может быть, через день после обновления с маркета эта проблема начала всплывать.

В качестве теста кто-то может просто добавить эти две строки в свой код и подтвердить, что у вас такое же поведение?

3 голосов
/ 21 сентября 2011

У меня было только setStreetView(true) и я получил эти надоедливые серые коробки. Я играл на обеих линиях без удачи. Решил это, удалив и setStreeView и setS satellite из моего кода, по умолчанию переходит в просмотр улиц.

2 голосов
/ 23 сентября 2011

Я удалил setStreetview (true) из моего кода, и теперь он работает нормально. Я видел, что эта проблема возникла в последние 2 недели, но мы наконец решили проблему, которая великолепна

2 голосов
/ 22 сентября 2011

У меня была та же проблема с моим приложением, которое использует библиотеку карт Google ... Поскольку у меня есть опция настроек, где пользователь может изменить вид карты на Satelite или Street, я вообще не использую setStreetView (true) ...just mapView.setSatelite (true или false) ...

preferences = PreferenceManager.getDefaultSharedPreferences(this);
        pogled = preferences.getString("list", "Street");

        if(pogled.equalsIgnoreCase("Street")){
            mapView.setSatellite(false);
            //mapView.setStreetView(true);
        }else if (pogled.equalsIgnoreCase("Satelite")) {
            mapView.setSatellite(true);
        }

Как вы можете видеть, у меня был mapView.setStreetView (true), но это доставило мне головную боль ...: D Я надеюсь, что это поможет вам...

1 голос
/ 31 июля 2012
private void setUpMapTypeScreen() {
    if (mapType.equalsIgnoreCase("Satellite")) {
        mapView.setSatellite(true);
        // mapView.setStreetView(false);
    } else if (mapType.equalsIgnoreCase("StreetView")) {
        mapView.setSatellite(false);
        // mapView.setStreetView(true);
    }
    mapView.invalidate();
}

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

1 голос
/ 01 июля 2012

Просмотр улиц всегда считается опцией по умолчанию. Проблема возникает, когда мы используем одновременно setStreetView (true) и setSatell (true). Проблема будет решена следующим образом

    if(mapView.isSatellite()){
        mapView.setSatellite(false);
            }else{
            mapView.setStreetView(false);
            mapView.setSatellite(true);
            }

Я надеюсь, что это поможет

0 голосов
/ 10 ноября 2011

Помимо удаления mapController.setStreetView (true), есть еще одна вещь, которую необходимо добавить в XML-макет.

xmlns:android="http://schemas.android.com/apk/res/android"

<com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapa" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:apiKey="YOUR API KEY"
    android:clickable="true"></com.google.android.maps.MapView>

Обратите внимание на пространство имен xml после com.google.android.maps.MapView,После добавления пространства имен перекрестные плитки исчезли.Не знаю, является ли это ошибкой или необходимо пространство имен для того, чтобы API правильно отобразил карту.В любом случае, это сработало.

0 голосов
/ 16 октября 2011

У меня была та же проблема, и общий совет, который я получил, - не использовать setStreeView (true) и setSatell (true) вместе. Некоторые даже предложили вообще не использовать setStreetView (true). Но мой код работал хорошо раньше. Мне пришлось переустанавливать свою машину и, следовательно, заново установить Android SDK и другие компоненты, после чего это начало происходить. Таким образом, я предполагаю, что это проблема с какой-то конкретной версией. Но я обнаружил, что эта проблема возникает в конкретной версии 2.2 - в моем случае Android SDK Platform 2.2, версия 3. Я пытался запустить тот же код на 2.3, и он работает правильно т.е. нет серых коробок.

0 голосов
/ 21 сентября 2011

У меня была такая же проблема, я вынул свой mapController, и он исправил это. Единственное, что я сделал иначе, это поместил вид карты в линейное представление с видом текста (раньше это был только вид карты), и я поэкспериментировал с контроллером карты, комментируя его.

Поскольку это единственные две вещи, которые я изменил, я почти уверен, что твоя проблема в этом тоже.

...