2013-07-24 19 views
5

Opracowuję aplikację na Androida opartą na GoogleMap.
Potrzebuję wyświetlić 1000 znaków na mapie.
Obecnie pobieram szerokość i długość geograficzną dla każdego markera z programu ładującego bazę danych SQLite i dodajemy znaczniki w metodzie public void onLoadFinished(final Loader loader, final Cursor cursor).
To podejście daje jednak bardzo złe wrażenia użytkownika, ponieważ aplikacja nie odpowiada, gdy dodaję znaczniki.
Jak mogę dodać 1000 znaków do googlemap i zachować responsywność mojej aplikacji?
ponieważ muszę dodać znaczniki do mapy w głównym wątku UI.Dodaj znaczniki 1000 do androida Googlemap

+4

https://code.google.com/p/android-maps-extensions/ –

+0

Czy u próbował AsyncTask .. – Juliousraj

+0

przystań próbował AsyncTask, jednak nie sądzę, że rozwiąże problem, jak mam jeszcze dodać markery na wątku z wewnątrz z onPostExecute() – Hector

Odpowiedz

8

Jednym ze sposobów jest dodanie tylko Marker s, gdy wpadną one w widoczny obszar mapy.

Można by rzeczywiście trzeba przenieść połączeń na addMarker z onLoadFinished do onCameraChange aw onLoadFinished tylko utworzyć listę danych potrzebnych do tworzenia tych Marker s. W najprostszej formie może to być List<MarkerOptions>.

Android Maps Extensions wymienione przez Lalit Poptani w powyższym komentarzu mogą obsłużyć to, nawet jeśli nie chcesz używać klastrowania. Po prostu zostawić swój kod jak to jest i tylko nawiązać połączenie jak

googleMap.setClustering(new ClusteringSettings().enabled(false).addMarkersDynamically(true)); 

po wymianie Mapy Google Android API v2 z tego rozszerzenia lib.

+0

OhMyGod dziękuje za link do rozszerzenia klastrowania, choć istniało tylko dla interfejsu API JS. –

+1

@thibaultd To jest kod, który napisałem. Istnieje inne podejście tutaj: https://github.com/twotoasters/clusterkraf –

0

Możesz użyć operatora Spatial Lite z geoserver, aby dostarczyć mapy WMS. W Androidzie możesz ustawić tile provider do spożywania takich map płytek.

+0

dzięki za poświęcenie czasu, aby odpowiedzieć na moje pytanie. Jednak link "Spatial Lite" daje mi 404 – Hector

+0

Teraz jest naprawiony. Możesz google i więcej o tym wiedzieć. –

Powiązane problemy