Android-карта движется медленно после добавления многих наложений - PullRequest
0 голосов
/ 28 ноября 2010

Мое приложение имеет много оверлеев на карте, как я могу сохранить карту такой медленной? Это как 5 секундная задержка при перемещении по карте. Посмотрите на мой код ниже о том, как я добавляю людей, и может ли кто-нибудь показать мне, как это исправить, чтобы он не был таким медленным, у меня на карте было около 80 оверлеев и они увеличивались на секунду.

ArrayList<String> lstotherslocation = MyGlobalInfomation.getOthersLocation();
              List<Overlay> mapOverlays = gMapView.getOverlays();
                Drawable drawable = this.getResources().getDrawable(R.drawable.otherslocation);
                OthersLocationOverlay otherslocation = new OthersLocationOverlay(drawable,this);
                mapOverlays.clear();
                for(int i = 0; i < lstotherslocation.size();i++){
                    number = number + 1;
                      OthersPoint = new GeoPoint((int) (Double.parseDouble(lstotherslocation.get(i).trim())),
                                                (int) (Double.parseDouble(lstotherslocation.get(i + 1).trim())));
                      OverlayItem overlayitem = new OverlayItem(OthersPoint, "Title",
                      "test: " +  lstotherslocation.get(i+ 2) + "\n" +
                      "User: " + lstotherslocation.get(i+ 3) + "\n" +
                      "test: " + lstotherslocation.get(i+ 4) + "\n" +
                      "test: " +  lstotherslocation.get(i+ 5 ));
                    i = i + 5;
                    otherslocation.addOverlay(overlayitem);
                    mapOverlays.add(otherslocation);

1 Ответ

1 голос
/ 28 ноября 2010

Есть ли причина, по которой mapOverlays.add (otherslocation) находится внутри цикла for?

Можете ли вы попробовать следующий код:

OthersLocationOverlay otherslocation = new OthersLocationOverlay(drawable,this);
mapOverlays.clear();
mapOverlays.add(otherslocation);
for(int i = 0; i < lstotherslocation.size();i++){
    ....
    otherslocation.addOverlay(overlayitem);
}

Я полагаю, вы хотите, чтобы ваши 80 маркеров были на других объектах Overlay?

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