在iPhone应用程序的地图上以适当的图标显示酒店(以及附近的地点)

时间:2012-01-31 06:05:06

标签: iphone objective-c ios mapkit google-places-api

我正在使用Google地方信息API来获取预定义位置附近的地点。

工作正常。我应该为每个地方展示PushPins。目前,我正在为每个地方使用默认的红色图钉。

现在,我想为每个地方显示适当的图标,例如; 酒店,餐馆等....

在Android上,我的同事开发人员使用Google API响应做同样的事情。

在iPhone中,我无法找到任何此类帮助。在iPhone上有没有办法做到这一点???

1 个答案:

答案 0 :(得分:2)

这可能无法解决您的问题。但是,有些解决方法。

我遇到过类似的问题。 我对数据进行了分类,并根据条件显示了符号。 希望这段代码能让你了解我是如何做到的。

-(MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{
    MKPinAnnotationView *view = nil;
    if (annotation != mapView.userLocation) {
        view = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"myAnnotationIdentifier"];
        if (!view) {
            view = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"myAnnotationIdentifier"];
            CustomClassAnnotation *desclosureButton = [[CustomClassAnnotation alloc] initWithFrame:CGRectMake(0, 0, 29, 31)];
            [desclosureButton addTarget:self action:@selector(mapAction:) forControlEvents:(UIControlEventTouchUpInside)];
            view.rightCalloutAccessoryView = desclosureButton;
            view.canShowCallout = YES;
            }

        ((CustomClassAnnotation *)view.rightCalloutAccessoryView).annotation = annotation;

        if (((MapViewAnnotation *)annotation).type  == 1) {
            view.image = [UIImage imageNamed:@"image_type1.png"];  
        }
        else if (((MapViewAnnotation *)annotation).type == 2) {
            view.image = [UIImage imageNamed:@"image_type2.png"];
        }
        else if (((MapViewAnnotation *)annotation).type == 3) {
            view.image = [UIImage imageNamed:@"image_type3.png"];
        }
    }
    return view;
}

祝您好运......