簡體   English   中英

適用於iOS的mapkit中的didupdateuserlocation方法?

[英]didupdateuserlocation method in mapkit for ios?

我試圖在用戶位置MKMapView周圍給出5個注釋...我在didupdateuserlocation方法中為注釋選擇隨機值...當我運行我的Projet時,所有5個注釋顯示在同一位置的地球中心。在非洲附近的海域中顯示...任何人都可以幫助我更改注釋的不同位置。

- (void)mapView:(MKMapView *)mv didUpdateUserLocation:(MKUserLocation *)userLocation
{
    CLLocationCoordinate2D userCoordinate = userLocation.location.coordinate;
    for(int i = 1; i<=5;i++)

    {
        CGFloat latDelta = rand()*.035;       ///RAND_MAX -5.0;
        NSLog(@"%f",latDelta);
        CGFloat longDelta = rand()*.03;       ///RAND_MAX -5.0;
        NSLog(@"%f",longDelta);
        CLLocationCoordinate2D newCoord = { userCoordinate.latitude + latDelta, userCoordinate.longitude + longDelta };
        MapPoint *mp = [[MapPoint alloc] initWithCoordinate:newCoord title:[NSString stringWithFormat:@"Azam Home %d",i] subTitle:@"Home Sweet Home"];    
        [mv addAnnotation:mp];
    }

}

我打印了我的隨機值..他們是

2012-01-02 20:27:32.229 ShareImg[749:15803] 588.244995
2012-01-02 20:27:32.230 ShareImg[749:15803] 8474257.000000
2012-01-02 20:27:32.231 ShareImg[749:15803] 56792752.000000
2012-01-02 20:27:32.231 ShareImg[749:15803] 29548310.000000
2012-01-02 20:27:32.231 ShareImg[749:15803] 40043812.000000
2012-01-02 20:27:32.231 ShareImg[749:15803] 14106338.000000
2012-01-02 20:27:32.231 ShareImg[749:15803] 3535964.000000
2012-01-02 20:27:32.232 ShareImg[749:15803] 43735528.000000
2012-01-02 20:27:32.232 ShareImg[749:15803] 51057228.000000
2012-01-02 20:27:32.232 ShareImg[749:15803] 60217132.000000

幫助我...

CLLocationCoordinate2D是兩個CLLocationDegrees的結構。 CLLocationDegrees是一個雙精度值,以度為單位顯示位置
文檔

latitude
The latitude in degrees. Positive values indicate latitudes north of the equator. Negative values indicate latitudes south of the equator.
longitude
The longitude in degrees. Measurements are relative to the zero meridian, with positive values extending east of the meridian and negative values extending west of the meridian.

因此,緯度必須在-90到90之間,而經度必須在-180到180之間。您的隨機位置太大,而mapkit顯示的位置是0、0,位於幾內亞灣。

也許您的經緯度值無效? 試試這個片段

CGFloat latDelta = userCoordinate.latitude+(i*0.000010);
CGFloat longDelta = userCoordinate.longitude+(i*0.000010);

對於緯度和經度,您生成的值似乎很奇怪! 示例Berlin Cafe Kranzler具有值

52.504039 13.330925

暫無
暫無

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

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