2014-10-06 17 views
6

Zaktualizowałem Google Maps v1 do v2 w mojej aplikacji na Androida.Google Maps v2 Projection.toScreenLocation (...) bardzo powolny

I v2 było miłe i tak dalej, ALE jedna metoda wydaje się być najwolniejszą rzeczą w moim życiu.

Projection proj = map.getProjection(); 
Point point = proj.toScreenLocation(example.m_geopoint); 

toScreenLocation (...) jest tak powolny, że aplikacja zwalnia do niezdolności do użycia slowmotion. Zaktualizowana metoda może być 100 razy na klatkę, ale to działa bardzo dobrze w Google Maps v1.

I kiedy sprawdzić w Android konsoli widzę tak:

10-06 13:53:04.460: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+5ms 
10-06 13:53:05.859: D/dalvikvm(4889): GC_EXPLICIT freed 252K, 14% free 14622K/16839K, paused 2ms+5ms 
10-06 13:53:07.222: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+6ms 
... 

Ten komunikat wychodzi cały czas, gdy wywoływana jest metoda.

A różnica między V2 i V1 jest taka:

pointOut = proj.toScreenLocation(geopointIn); // v2 
projection.toPixels(geopointIn, pointOut); // v1 

A v1 wydaje się być bardziej zoptymalizowane rozwiązanie. Czy jest jakiś sposób, aby go przyspieszyć? Czy to błąd wydajności?

+0

To było dość dawno temu, ale obecnie mam problemy z wydajnością bardzo podobne do opisanych tutaj. Czy znalazłeś rozwiązanie tego w pewnym momencie? – saberrider

Odpowiedz

0

Odpowiedzi te są prawdopodobnie spóźnione, ale jeśli ktokolwiek wpadnie na te same problemy, na przykład ja, rozwiązaniem może być wstępne renderowanie obrazu na własnym serwerze za pomocą Java2 Graphics2D (która działa prawie tak samo jak rysowanie do płótno) i pobrać go w aplikacji. Konwersja punktów geo na współrzędne kartezjańskie. W aplikacji, trzeba tylko ustawić obraz jako GroundOverlay z LatLngBounds: https://developers.google.com/maps/documentation/android/groundoverlay#use_latlngbounds_to_position_an_image

i dodać go do mapy ... https://developers.google.com/maps/documentation/android/groundoverlay#change_an_overlay

Dla mnie takie podejście działa całkiem szybko. Przynajmniej tak szybko, jak podejście Google Maps V1.