Eksperymentuję z pakietem SDK Map Google na iOS w najnowszej wersji 1.2.1.2944, aby animować plik GMSGroundOverlay
. Użytkownik ma kontrolę nad sekwencją obrazów, więc używanie animacji UIImage
nie jest niestety możliwe, więc ładuję w UIImage
locie. GMSGroundOverlay.icon
Jest ustawiony na UIImage
który jest aktualizowany.
Oprócz dużego zużycia pamięci, wydaje mi się, że napotkałem ograniczenie polegające na tym, że za każdym razem, gdy próbuję nałożyć na siebie UIImage
użycie GMSGroundOverlay.icon
o rozmiarze większym niż 1000 pikseli x 1000 pikseli, ulega awarii. Odniesienie do pliku UIImage
o wymiarach 1000 x 1000 pikseli pozwala obejść awarię.
Wydaje mi się jednak, że może powinienem wykorzystać CATiledLayer
do obsługi obrazu tylko ładowanie do pamięci, a następnie do właściwości ikony GMSGroundOverlay
, ale czy ktoś miał jakieś doświadczenie w korzystaniu CATiledLayer
z Google Maps na iOS SDK i sekwencjonowaniu obrazów jako animowanych GMSGroundOverlay
?
źródło
Odpowiedzi:
Otrzymałem tę odpowiedź z pressanswer.com, myślę, że może ci to pomóc.
Ponieważ obecnie nie mogę użyć keypath „position” do animacji, skończyło się na animowaniu go przy użyciu osobno ścieżek „latitude” i „longitude”.
Najpierw oblicz punkty i dodaj je do 2 oddzielnych tablic, jednej dla wartości szerokości geograficznej (y) i jednej dla długości geograficznej (x), a następnie użyj właściwości values w CAKeyFrameAnimation do animacji. Utwórz 2 obiekty CAKeyFrameAnimation (po jednym na każdą oś) i zgrupuj je razem za pomocą CAAnimationGroup i animuj je razem, aby utworzyły okrąg.
W moim równaniu zmieniam długość promienia na każdej osi, dzięki czemu mogę również wygenerować owalną ścieżkę.
źródło