#android #performance #google-maps
#Android #Производительность #google-карты
Вопрос:
Я разрабатываю приложение places / shops и у меня есть более 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, и они работают, но не взаимодействуют с картой напрямую.
Android Google Map API просто не справляется со многими маркерами, или мне следует использовать другой подход?
Если вам нужна дополнительная информация, пожалуйста, сообщите мне сейчас!
Ответ №1:
Рассматривали ли вы возможность использования кластеров маркеров вместо создания более 500 отдельных маркеров? В дополнение к снижению производительности, ваша текущая настройка может перегрузить пользователя.
Комментарии:
1. Кажется, это классная библиотека. Спасибо! Я попробую это в ближайшем будущем!