Czołem, mam do zapisania w bazie mysql trasę. Owa trasa to pobierana co sekundę lokalizacja telefonu. Aktualna pozycja to dwie liczby z dokładnością do 15 miejsc po przecinku. Problem pojawia się w chwili gdy śledzenie trwa np 1 h co daje mi 3600sek i dwa razy tyle liczb do zapisu. Moim pomysłem na to jest zbieranie całej trasy po stronie klienta (android), zapisanie w stringu i potem ten string do bazy. Macie jakiś inny pomysł?
A musisz tyle danych brać? Co sekundę? Interpoluj wartości, ew przesyłaj jest na jakimś sockecie
trase rysuje na mapach google i chce mieć to dokładnie odzwierciedlone, wiec pomiarów potrzebuje dużo
Problem pojawia się w chwili gdy śledzenie trwa np 1 h co daje mi 3600sek i dwa razy tyle liczb do zapisu.
Jaki problem?
i to też nie chodzi o to aby co sekunde ładować do bazy pozycje, chce po zakończeniu śledzenia całość przesłać na backend np jsonem i potem do bazy, tylko pytanie w jakiej formie to zapisać
WeiXiao napisał(a):
Problem pojawia się w chwili gdy śledzenie trwa np 1 h co daje mi 3600sek i dwa razy tyle liczb do zapisu.
Jaki problem?
wg mnie problemem jest ilość, bo każdy odczyt daje 36 znaków + jakiś separator zebym to potem mógł jakoś dalej przetwarzać * 3600 daje mi ok 130,000 znaków do zapisu czyli 130kB
I 130kB na godzinę to Twoim zdaniem dużo? Ewentualnie zawsze możesz to jeszcze skompresować, zważywszy że pozycja się nie zmienia gwałtownie to powinien być spory stopień kompresji.
jakie 36 znaków?? Przecież to są liczby. getLatitude
czy getLongitude
zwraca double
czyli 2 x 64-bit.
A co do samej ilości to co z przypadkiem, jak ktoś będzie przez godzinę stał w jednym miejscu? Przede wszystkim załóż sobie jakąś minimalną zmianę położenia, którą będziesz zapisywał bo stojąc w miejscu będziesz miał cały czas "skaczące odczyty" (różniące się na 3 czy 4 pozycji po przecinku).
Dodatkowo nie wiem czy już próbowałeś ale wyrysowanie na google map trasy składającej się z 3000 punktów trochę zajmuje.
Zbieranie pozycji GPS jest proste ale zbieranie ich tak, żeby się do czegoś nadawały to jest trochę trudniejsze.