Добавление более 500 маркеров приводит к зависанию приложения - PullRequest
1 голос
/ 19 апреля 2011

Я разрабатываю приложение мест / магазинов и имею 500+ маркеров из БД на карте Google.

Я добавляю 2 вида мест и один тип магазинов, например:

    Cursor places = db.getAllPlaces();
    this.placeMarker0 = new ItemizedMarker(this.getResources().getDrawable(
            R.drawable.place0), this);
    this.placeMarker1 = new ItemizedMarker(this.getResources().getDrawable(
            R.drawable.place1), this);
    this.shopMarker = new ItemizedMarker(this.getResources().getDrawable(
            R.drawable.shop), this);
    if (places.moveToFirst()) {
        do {
            String[] coordinates = places.getString(11).split(",");
            if (coordinates.length > 0) {
                GeoPoint point = new GeoPoint((int) (Double
                        .parseDouble(coordinates[0]) * 1E6), (int) (Double
                        .parseDouble(coordinates[1]) * 1E6));
                OverlayItem overlayitem = new OverlayItem(point, places
                        .getString(1), Integer.toString(places.getInt(0)));
                if (places.getInt(12) == 0) {
                    placeMarker0.addMarker(overlayitem);
                } else if (places.getInt(12) == 1) {
                    placeMarker1.addMarker(overlayitem);
                } else {
                    shopMarker.addMarker(overlayitem);
                }
            } else {
                Log.w("GMaps", "Place not located - " + places.getString(1));
            }
        } while (places.moveToNext());
        this.placeMarker0.populateNow();
        this.mapOverlays.add(placeMarker0);
        this.placeMarker1.populateNow();
        this.mapOverlays.add(placeMarker1);
        this.shopMarker.populateNow();
    }

Это работает просто отлично, и все маркеры отображаются (но не по умолчанию, хотя :-))

Проблема в том, что после добавления всех маркеров приложение часто зависает, и вы не можете нажатьлюбой из маркеров или щепотку-масштабирование / перемещение карты на некоторое время.У меня добавлены ZoomControls, и они работают, но не взаимодействуют с картой напрямую.

Неужели API Google Map Google не очень хорошо справляется со многими маркерами или мне следует использовать другой подход?Вам нужно больше деталей, пожалуйста, дайте мне сейчас!

1 Ответ

0 голосов
/ 19 апреля 2011

Рассматривали ли вы использование кластеров маркеров вместо создания более 500 отдельных маркеров? В дополнение к снижению производительности ваша текущая настройка может перегружать пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...