Подтвердить что ты не робот

Отображение MapView с отсутствующими фрагментами с "x" в центре

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


mapview with tiles missing

4b9b3361

Ответ 1

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

mapView.setSatellite(true);

mapView.setStreetView(true);

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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 - это строковая переменная, определенная пользователем. Недействительный тип предыдущего вида при переключении на типы просмотра. что ошибка, которую мы сделали, устанавливает только тип вида, который вам нужен.

Ответ 7

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

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

Ответ 8

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

Ответ 9

Помимо удаления 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 правильно отображало карту. В любом случае, это сработало.