Sprawdź, czy zmienił się poziom powiększenia
Używam MapKit na iPhonie.
Skąd mogę wiedzieć, że użytkownik zmieni poziom powiększenia (powiększ/pomniejsz mapę)?
Próbowałem użyć
mapView: (MKMapView *) mapView regionDidChangeAnimated: (BOOL) animated;
ale jest to wywoływane nawet wtedy, gdy karta jest tylko przeciągnięta.
Niestety podczas przeciągania mapy mapView.region.span również się zmienia ...
Wsparcie?
10x.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
7 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Prawdopodobnie możesz po prostu zatrzymać się na kroku , ponieważ to powie Ci, czy skala w ogóle się zmieniła.
Zrozumiałem to po przeczytaniu kilku doskonałych postów na blogu Troya Branta na ten temat:
http://troybrant.net/blog/2010 ... guide
http://troybrant.net/blog/2010 ... uide/
/
Swift 3
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Aby uzyskać poziom powiększenia, możesz wywołać następujące polecenia w delegatach i określić, czy poziom powiększenia uległ zmianie:
Anonimowy użytkownik
Potwierdzenie od:
Będziesz także musiał posłuchać właściwości widoku mapy. Zawiera wartości latitudeDelta i longitudeDelta, których można użyć do obliczenia zmiany poziomu powiększenia.
to znaczy w pliku .h
i w swoim pliku .m
Powinno to określić, czy skala mapy uległa zmianie.
jednak trzeba uważać na powiększenie, ponieważ Ziemia jest zakrzywiona :( jeśli mapa się przewija, latitudeDelta i longitudeDelta zmienią się nieznacznie tylko z powodu kształtu Ziemi, a nie z powodu powiększenia przez użytkownika. Być może będziesz musiał wykryć dużą zmianę w deltach i zignorować drobne zmiany.
Mam nadzieję że to pomoże.
Anonimowy użytkownik
Potwierdzenie od:
:
Najłatwiejszym sposobem uzyskania liczby całkowitej dla bieżącego poziomu powiększenia jest użycie funkcji MapView: regionDidChangeAnimated. Ta funkcja rozpoznaje każdą zmianę powiększenia i daje podstawę do obliczenia współczynnika skali.
Po prostu wstaw tę funkcję do swojej klasy MapView (
działa dla Swift 3.0
):
I otrzymujesz z niego wartość zoomFactor, gdzie 0 jest najbliższym punktem, który możesz powiększyć na mapie, a każda wyższa wartość to duże powiększenie ... :-)
Anonimowy użytkownik
Potwierdzenie od:
Obliczanie skali powiększenia w rozwiązaniu MKMapView - Swift
Stworzyłem następujące rozszerzenie dla MKMapView, abyś mógł uzyskać skalę powiększenia na mapie. Rozwiązanie jest podobne do powyższego, ale w Swift.
Istnieje również dodatkowa funkcja , która zaokrągla skalę, którą f.ex może odfiltrować. małe powiększenie w MapView
Anonimowy użytkownik
Potwierdzenie od: