在iphone中自定义googlemap视口

时间:2010-12-14 06:37:25

标签: iphone objective-c google-maps uiwebview

我一直在搞清楚如何为我的谷歌地图标记设置视口。

有没有办法在objC中做到这一点?

或者我必须在我的地图本身中做到这一点???如果是,那么如何???

我的谷歌地图代码只显​​示地图和标记,但是当我点击它时,它只是在一个小方框中显示地方的名称.. :(

如何使它成为一个合适的视口???

这是视口图像: alt text

1 个答案:

答案 0 :(得分:1)

1)你可以继承MKAnnotationView。我认为这是解决问题的最佳方法。

2)您可以自定义注释标注视图,例如:

- (MKAnnotationView *) mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation {
    static NSString* ItemAnnotationIdentifier = @"itemAnnotationIdentifier";
    MKPinAnnotationView* pinView = (MKPinAnnotationView *)
                                  [theMapView dequeueReusableAnnotationViewWithIdentifier:ItemAnnotationIdentifier];
    if (!pinView)
    {
      // if an existing pin view was not available, create one
      MKPinAnnotationView* customPinView = [[[MKPinAnnotationView alloc]
                                             initWithAnnotation:annotation 
                                             reuseIdentifier:ItemAnnotationIdentifier] 
                                            autorelease];
      customPinView.canShowCallout = YES;

      UIImage *logo = [ImageProcessor scaleImage:[UIImage imageNamed:@"logo.png"] toSize:CGSizeMake(30, 30)];
      customPinView.leftCalloutAccessoryView = [[[UIImageView alloc] initWithImage:logo] autorelease];

      UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
      rightButton.tag = [((ItemAnnotation *)annotation).itemId intValue];
      [rightButton addTarget:self
                      action:@selector(showDetails:)
            forControlEvents:UIControlEventTouchUpInside];
      customPinView.rightCalloutAccessoryView = rightButton;      

      return customPinView;
    }
    else
    {
      pinView.annotation = annotation;
    }
    return pinView;
}