簡體   English   中英

在Cocoa macOS App中,如何獲取MKMapView左下角的度坐標?

[英]In a Cocoa macOS App, how can I get the degree coordinates of the bottom left corner of a MKMapView?

我在Objective-C中為macOS開發了一個應用程序,並且在主窗口中有一個MKMapView。 當我單擊按鈕時,我想計算可見地圖左下角和右上角的度數坐標。 我知道MKMapView具有visibleRect屬性,所以我的代碼是:

- (IBAction)userDidPressConvertButton:(id)sender {

    MKMapRect mapRect = self.mapView.visibleMapRect;

    CLLocationCoordinate2D coordinates = MKCoordinateForMapPoint(mapRect.origin);

    NSLog(@"Latitude %f Longitude: %f", coordinates.latitude, coordinates.longitude);
    NSLog(@"size width = %f, size height = %f",mapRect.size.width,mapRect.size.height);
}

根據文檔,該屬性的類型為MKMapRect。 我已經確定其原始成員指向可見Rect的左上角。 我的問題是,盡管有MKCoordinateForMapPoint函數可以轉換為MKMapPoint成員原點的坐標,但是size成員的寬度和高度沒有轉換為度數坐標的函數,也不能用度數表示,但是根據文檔,在地圖上。 如何獲取當前可見地圖的左下角和右上角的度坐標?

任何幫助,不勝感激,謝謝

我已經成功找到了從左下角到右上角的可見地圖矩形坐標,並在地圖的可見矩形上調用了MKCoordinateRegionForMapRect。 這是我的代碼:

- (IBAction)userDidPressFillCoordinates:(id)sender {

    MKMapRect mapRect = self.mapView.visibleMapRect;

    CLLocationCoordinate2D coordinates = MKCoordinateForMapPoint(mapRect.origin);

    NSLog(@"Latitude %f Longitude: %f", coordinates.latitude, coordinates.longitude);
    NSLog(@"size width = %f, size height = %f",mapRect.size.width,mapRect.size.height);

    NSLog(@"%@",MKStringFromMapRect(mapRect));

    MKCoordinateRegion region =   MKCoordinateRegionForMapRect(mapRect);

    CLLocationCoordinate2D center = region.center;
    MKCoordinateSpan span = region.span;

    CLLocationCoordinate2D topRightCoordinates = coordinates;

    coordinates.latitude -= span.latitudeDelta;

    topRightCoordinates.longitude += span.longitudeDelta;


    self.coordinatesString = [NSString stringWithFormat:@"%f,%f,%f,%f",coordinates.longitude,coordinates.latitude,topRightCoordinates.longitude,topRightCoordinates.latitude];


} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM