2012-02-01 17 views

Odpowiedz

9

Użyj map rects. Oto przykład użycia aktualnego widocznego rect mapy. Jeśli chodzi o twoje pytanie, możesz najpierw użyć convertRegion:toRectToView:, aby najpierw przekształcić swój region na MKMapRect.

MKMapPoint userPoint = MKMapPointForCoordinate(mapView.userLocation.location.coordinate); 
MKMapRect mapRect = mapView.visibleMapRect; 
BOOL inside = MKMapRectContainsPoint(mapRect, userPoint); 
+0

Ha, zabawne, aby uzyskać odpowiedź dużo później! Dzięki, dobra odpowiedź, więc pójdę do przodu i dam ci znak - convertRegion: ToRectToView to rzecz, której mi brakowało. –

0

Jest to proste rozwiązanie, aby zdecydować, czy punkt jest wewnątrz obszaru, jeśli obszar jest podana przez wielokąt stosując algorytm rozstrzygający ray: patrz tutaj http://en.wikipedia.org/wiki/Point_in_polygon

Jako punkt wyjścia użyć lokalizację gwarancją zewnątrz twój region, np (geograficzny) biegun północny.

+0

Byłem naprawdę szuka czegoś w MapKit że do pracy dla mnie! –

2

Swift 3 wersja firstresponder „s odpowiedź:

let userPoint = MKMapPointForCoordinate(mapView.userLocation.coordinate) 
let mapRect = mapView.visibleMapRect 
let inside = MKMapRectContainsPoint(mapRect, userPoint) 

niemal tak samo. Ten interfejs API nie był jeszcze Swift-ified (tj. Zaktualizowany zgodnie z wytycznymi projektowania interfejsu API Swift). To naprawdę powinny być ...

let userPoint = mapView.userLocation.coordinate.mapPoint 
let inside = mapView.visibleMapRect.contains(userPoint) 
Powiązane problemy