Как добавить несколько отметок на MapView - более ста - PullRequest
1 голос
/ 14 января 2011

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

Причина: keyDispatchingTimedOut

Моя установка выглядит следующим образом..

Четыре строковых массива с данными для карты, у всех есть (и всегда будет) одинаковое количество индексов, и fId [0] == fLatitude [0] == fLongitude [0] ==fDetails [0] и т. д.:

    String[] fId;
    String[] fLatitude;
    String[] fLongitude;
    String[] fDetails;

На данный момент именно так я рисую точки на карте.Это явно не правильный путь, потому что карта продолжает падать:

        List<Overlay> mapOverlays = mapView.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
    FriendItemizedOverlay itemizedoverlay = new FriendItemizedOverlay(drawable, mapView.getContext());

    for(int i=0;i<aLatitude.length;i++){

        Double intLon = Double.parseDouble(aLongitude[i]);
        Double intLat = Double.parseDouble(aLatitude[i]);

        GeoPoint point = new GeoPoint((int)(intLat * 1E6), 
                (int)(intLon * 1E6));
        OverlayItem overlayitem = new OverlayItem(point, "Friend ", "Something");

        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);

    }

Дайте мне знать в комментариях, если вам нужна дополнительная информация, спасибо.

Logcat:

01-13 18: 39: 34.732: ОШИБКА / MapActivity (1085): не удалось получить клиент фабрики соединений 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): ANR в com.example.friendapp (com.example.friendapp / .FriendMaps) 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): Причина: keyDispatchingTimedOut 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): загрузка: 2,39 / 0,78 /0,42 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): загрузка ЦП с 6026мс до 0 мс назад: 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 93% 1085 / com.example.friendapp: 93% пользователь + 0% ядро ​​/ ошибки: 25 минорных 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 2,6% 69 / system_server: 1,8% пользователь + 0,8% ядро ​​/ ошибки: 3 второстепенных 01-1318: 40: 14.473: ОШИБКА / ActivityManager (69): 1,1% 875 / com.google.process.gapps: 0% пользователь + 1,1% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 1.1% 980 / com.android.quicksearchbox: 0% пользователь + 1.1% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 0,9% 133 / com.android.launcher: 0% пользователь + 0,9%ядро 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 0,1% 40 / adbd: 0% пользователь + 0,1% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 100% ИТОГО:95% пользователь + 4,1% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): загрузка ЦП с 2192 мс до 2863 мс позже: 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 80% 1085/com.example.friendapp: 80% пользователь + 0% ядро ​​/ ошибки: 3 второстепенных 01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 77% 1085 / bile.friendapp: 77% пользователь + 0% ядро01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 16% 69 / system_server: 4,8% пользователь + 11% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 14% 101 / InputDispatcher: 3,2% пользователь + 11% ядро ​​01-13 18: 40: 14,473: ОШИБКА / ActivityManager (69): 1,6% 70 / HeapWorker: 1,6% пользователь + 0% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 0,5% 133 / com.android.launcher: 0% пользователь + 0,5% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 0,5% 134 / HeapWorker: 0% пользователь + 0,5% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 0,6% 980 / com.android.quicksearchbox: 0% пользователь + 0,6% ядро ​​01-13 18: 40: 14.473: ОШИБКА / ActivityManager (69): 1,3% 981 / HeapWorker: 0% пользователь + 1,3% ядро ​​01-13 18: 40: 14.473: ОШИБКА /ActivityManager (69): 100% ИТОГО: 80% пользователь + 19% ядро ​​01-13 18: 40: 20.702: ОШИБКА / InputDispatcher (69): канал '406f88b8 com.example.friendapp / com.example.friendapp.FriendMaps (сервер) '~ Потребитель закрыл входной канал или произошла ошибка.events = 0x8 01-13 18: 40: 20.712: ERROR / InputDispatcher (69): канал '406f88b8 com.example.friendapp / com.example.friendapp.FriendMaps (сервер)' ~ Канал неисправим и сломан!

1 Ответ

0 голосов
/ 16 января 2011

Вы добавляете один и тот же оверлей на карту 150 раз. Пожалуйста, добавьте его только один раз.

...