2014-03-28 14 views
0

我正在開發一個基於MKMapView的應用程序,並且該應用程序的要求是檢測用戶位置(由藍點表示)是位於屏幕的可見區域還是位於可見屏幕之外區。MkmapView UsersLocation

在開始加載地圖時,它會自動將其位置設置爲用戶的位置,但是我想在用戶滾動地圖視圖後檢測其當前位置是否位於屏幕的可見區域。

請提供有用的解決方案並幫助我。

在此先感謝。

+0

的[檢查用戶的位置是在地圖iphone可見]可能重複(HTTP:/ /stackoverflow.com/questions/7320101/check-if-user-location-is-visible-on-map-iphone) – Volker

回答

1

只需使用userLocationVisible(我不記得,但@Volker提醒我)


任何註釋:

得到的位置,並檢查像素座標可見

  1. 得到userLocation從地圖
  2. 獲得其座標
  3. 將其轉換爲一個MapPoint(MKMapPointForCoordinate)
  4. 得到的MapView的可見mapRect
  5. 使用MKMapRectContainsPoint

    MKMapRect visibleRect = self.mapView.visibleMapRect; 
    MKMapPoint pt = MKMapPointForCoordinate(self.mapview.userLocation.coordinate); 
    
    BOOL visible = MKMapRectContainsPoint(visibleRect, pt); 
    
+0

爲什麼不只是使用'userLocationVisible'? – Volker

+0

@Volker:d,因爲我不記得 –

+0

這裏的答案是我自己的問題: - (無效)的MapView:(*的MKMapView)的MapView regionDidChangeAnimated:動畫(BOOL) { 如果(mapView.userLocationVisible!) 的NSLog (@「userlocation不可見」); else NSLog(@「user location is visible now」); } – user2940549