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
Odpowiedz
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.
OhMyGod dziękuje za link do rozszerzenia klastrowania, choć istniało tylko dla interfejsu API JS. –
@thibaultd To jest kod, który napisałem. Istnieje inne podejście tutaj: https://github.com/twotoasters/clusterkraf –
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.
dzięki za poświęcenie czasu, aby odpowiedzieć na moje pytanie. Jednak link "Spatial Lite" daje mi 404 – Hector
Teraz jest naprawiony. Możesz google i więcej o tym wiedzieć. –
- 1. Dodaj niestandardowe znaczniki do kruk
- 2. Dlaczego muszę mnożyć znaczniki czasu unix przez 1000 w JavaScript?
- 3. Sencha Touch - Dodaj znaczniki do mapy po Maprender
- 4. Widok Androida dodaj dziecko
- 5. Dodaj słowa do UserDictionary użytkownika Androida
- 6. Szyny i bootstrap - Dodaj znaczniki HTML do tekstu złożyć przycisk
- 7. Python - Dodaj znaczniki ID3 do pliku mp3 bez znaczników
- 8. SlidingDrawer przez GoogleMap
- 9. GoogleMap offsetWidth problem
- 10. Kartagina i GoogleMap
- 11. Uzyskiwanie dostępu do GoogleMap spoza wątku interfejsu użytkownika w Androidzie
- 12. GoogleMap V2 ładuje mapę losowo Android
- 13. Dodaj bibliotekę obsługi Androida v4 do intellij ide
- 14. oracle gdzie w ograniczeniu do 1000/hibernacji
- 15. Nie można uzyskać usługi GoogleMap OnMarkerClickListener do pracy
- 16. Ulotka: Dodaj link do znaczników
- 17. Dodaj zdarzenia dotykowe do klasy tabletu VrPanoramaView pakietu SDK dla Androida dla Androida
- 18. Jak uzyskać aktualny poziom powiększenia GoogleMap?
- 19. Poddaj podwójną wartość Geopoint w nakładkach GoogleMap
- 20. Pokaż 1k zamiast 1000
- 21. JSON dodaj do JSONArray numer
- 22. Dodaj podstawowe znaczniki do mapy w mapboxie poprzez mapbox gl js
- 23. 1000 cyfr pi w pytonie
- 24. Hibernate kryterium klauzuli 1000 zerwać
- 25. Znaczniki ulotek
- 26. LINQ do SQL - nie Dodaj metody Dodaj
- 27. Szyny - dodaj atrybuty i dodaj do tablicy
- 28. Dodaj znacznik do środka statycznej mapy google
- 29. R Marker tabeli 1000 separatora
- 30. ostrzegawcze: zmienne wejściowe przekroczyła 1000
https://code.google.com/p/android-maps-extensions/ –
Czy u próbował AsyncTask .. – Juliousraj
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