2012-09-17 44 views
0

我正在實現一個iOS應用程序,並且我想以編程方式設置用戶位置。我試過mapView。以編程方式設置用戶位置的協調Xcode/Objective-C

 mapView.userLocation.location.coordinate=CLLocationCoordinate2DMake(latFloat, longFloat); 

它告訴,這是分配給只讀屬性。

那麼如何以編程方式分配用戶位置?旨在在自定義位置顯示藍點。

回答

2

據我所知你不能。該屬性是用於用戶位置,而不是任意點。你應該使用MKAnnotation並且它是相關的類。如果你想用類似於用戶位置的脈衝圈來做點類型的點,你可能會發現一個更適合的自定義MKOverlay。被警告,雖然多MKOverlays 崩潰你的應用程序,在這種情況下,你想使用MKOverlayPathView在一個MKOverlayView中繪製很多東西。

**順便說一句,在模擬器測試,你可以在點到模擬器,這將提供給應用程序的用戶位置的任意列表通過。這是專門用於測試各種地圖相關的代碼,雖然並不會真正幫助或工作在'現實世界'**

就像,假設'註釋'是一個NSMutableArray包含您的註釋。

-(MKAnnotationView *)mapView:(MKMapView *)mV 
    viewForAnnotation:(id <MKAnnotation>)annotation { 

    MKPinAnnotationView *pinView = nil; 
    MKPinAnnotationColor pinColor = MKPinAnnotationColorPurple; 
    if([annotations lastObject] == annotation) 
    { 
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"LastLocationIdentifier"]; 
    pinColor = MKPinAnnotationColorGreen; 
    } 
    else 
    { 
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PreviousLocationIdentifier"]; 
    } 

    pinView.pinColor = pinColor; 

    return pinView; 
} 

我目前無法測試此功能,但稍後會做。

+0

感謝您的評論... 我有什麼是地圖,我有一個由座標,經緯度和長度填充的對象數組,我在地圖上放置多個註釋...最後丟棄的引腳是用戶的最後位置。所以我想要的是將藍色圓圈添加到最後的位置。我試圖改變最後一針的顏色,我不能。這裏是我的過去的主題http://stackoverflow.com/questions/12369712/multiple-annotation-color/12369885#comment16636904_12369885 或你有什麼建議? – fadd

+0

我已更新帖子。 – Diziet

+0

作品完美。非常感謝,但只有一件事發生了變化,那就是放大到最後,而在所有註釋都在地圖上出現之前... 再次感謝 – fadd

1

使用.gpx文件根據需要設置用戶位置。

步驟:

  • 按Commd + N
  • 轉到資源
  • 然後選擇GPX
  • 爲其輸入一個名稱,然後選擇要保存的位置

  • .GPX文件是一個XML格式的文件。

  • 在LAT = 「37.331705」 LON = 「-122.030237」,根據自己的位置改變這一緯度和經度值。
  • 不要忘記點擊模擬位置按鈕,如果您選擇了「不要模仿我的位置」。然後,將其更改爲您保存的位置名稱..

更多細節,檢查了這一點------

http://plainoldstan.blogspot.cz/2011/08/on-gpx-files-for-xcode-42.html

(只是忘了添加)另外,在您的viewDidLoad方法,不要忘記ADD-

yourMapView.showuserslocation = YES;

相關問題