我有一個應用程序,在這裏我給用戶2選項。 1.通過GPS選擇您的當前位置 2.手動輸入您當前的位置。在iPhone中需要時在地圖上定製圖標和默認當前位置圖標
我想要的是當用戶選擇第一個選項,然後我必須顯示當前位置的藍色動畫圖標 當用戶選擇了第二個選項時,我必須顯示我自己的自定義圖標的當前位置。
可能嗎?建議是最受歡迎的。
謝謝。
我有一個應用程序,在這裏我給用戶2選項。 1.通過GPS選擇您的當前位置 2.手動輸入您當前的位置。在iPhone中需要時在地圖上定製圖標和默認當前位置圖標
我想要的是當用戶選擇第一個選項,然後我必須顯示當前位置的藍色動畫圖標 當用戶選擇了第二個選項時,我必須顯示我自己的自定義圖標的當前位置。
可能嗎?建議是最受歡迎的。
謝謝。
首先設置一個布爾變量爲例isInGPSMode
現在應用下面的代碼
if(isInGPSMode==TRUE)
{
mapViewHome.showsUserLocation=TRUE;
}
else
{
mapViewHome.showsUserLocation=FALSE;
}
和處理地圖視圖委託作爲
- (MKAnnotationView *) mapView:(MKMapView *)mapView1 viewForAnnotation:(id <MKAnnotation>) annotation
{
if(annotation==mapViewHome.userLocation)
{
return nil;
}
addAnnonation *tempAnnonation=(addAnnonation *)annotation;
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
annView.pinColor = MKPinAnnotationColorRed;
return annView;
}
進一步的細節請參考該鏈接 http://developer.apple.com/iphone/library/samplecode/MapCallouts/Introduction/Intro.html
希望這有助於
Rupesh在斯威夫特的解決方案:
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
// Keep default pin for user location
if myMapView.userLocation.isEqual(annotation) {
return nil;
}
var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier("pin") as? MKPinAnnotationView
if pinView == nil {
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "pin")
pinView!.canShowCallout = true
pinView!.animatesDrop = true
pinView!.pinColor = .Red
}
else {
pinView!.annotation = annotation
}
return pinView
}
如果我縮小我的地圖..默認當前位置圖標消失。如果我再次點擊從GPS獲取座標的按鈕並將地圖放大到該特定位置,則在大約3-4分鐘後出現默認當前位置圖標。任何想法是什麼問題?或者它是默認行爲.. –