(Korzystanie z iOS 5 i Xcode 4.2)narysować okrąg o promieniu 1000m wokół lokalizacji użytkowników w MKMapView
Mam MKMapView i chcesz narysować okrąg o promieniu 1000m wokół lokalizacji użytkownika.
Na pozór wydaje się, że wdrożenie metody delegowania widoku mapy w widoku mapView:viewForAnnotation: i dodanie niestandardowego widoku MKAnnotationView dla lokalizacji użytkowników byłoby idealnym rozwiązaniem. Wyglądałoby to mniej więcej tak:
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
// If it's the user location, return my custom MKAnnotationView.
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return myCustomAnnotationView;
} else {
return nil;
}
}
Adnotacje na mapie nie są jednak skalowane podczas powiększania i pomniejszania mapy.
Tak więc próbowałem dodać nakładkę (ponieważ nakładki skalują się z mapą), używając klasy MKCircle i ustawiając współrzędne dla najnowszych współrzędnych z mojego delegata lokalizacji Manger/map. Jednakże, ponieważ coordinate property z MKCircle jest tylko do odczytu, muszę usunąć nakładkę, a następnie dodać nową za każdym razem, gdy użytkownik się porusza. Powoduje zauważalne migotanie, jak to się dzieje.
Czy istnieje sposób na płynne wprowadzanie skali adnotacji, ponieważ widok mapy jest skalowany i wyrzucany? Czy istnieje dobry sposób na płynne przeniesienie nakładki ze zmianami w lokalizacji użytkowników?
Byłbym bardzo wdzięczny za pomoc :)
myślę zwyczaj nakładki i nakładki widok jest co trzeba (czyli to, co wydaje się być @Flink sugerując). Jednak przykład Apple bliżej Twoich wymagań to aplikacja LocationReminders z WWDC 2010. Jeśli jesteś zarejestrowanym programistą, możesz go znaleźć [tutaj] (http://connect.apple.com/cgi-bin/WebObjects/MemberSite .woa/wa/getSoftware? code = y & source = x & bundleID = 20645). Niestandardowy rysuje nakładkę okrągłą, której rozmiar i położenie mogą zmieniać się dynamicznie. – Anna
Dzięki za link, brzmi dokładnie tak, jakbym potrzebował tego przykładu. Dodatkowo jestem zarejestrowanym programistą, więc to jest przydatne :) –
Link jest uszkodzony, ale znalazłem to na github: https://github.com/master-nevi/WWDC-2010/tree/master/LocationReminders – foson