我有一个应用程序,我在其中给用户 2 个选项。1. 通过 GPS 选择您当前的位置 2. 手动输入您的当前位置。
我想要的是当用户选择第一个选项时,我必须显示当前位置的蓝色动画图标当用户选择第二个选项时,我必须显示我自己的当前位置自定义图标。
可能吗?建议是最受欢迎的。
谢谢。
我有一个应用程序,我在其中给用户 2 个选项。1. 通过 GPS 选择您当前的位置 2. 手动输入您的当前位置。
我想要的是当用户选择第一个选项时,我必须显示当前位置的蓝色动画图标当用户选择第二个选项时,我必须显示我自己的当前位置自定义图标。
可能吗?建议是最受欢迎的。
谢谢。
首先为示例 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 在 Swift 中的解决方案:
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
}