2014-06-16 49 views
2

我想使用GMSPolyline实现该类,可以绘制箭头而不是直线,以显示从一个Google地图标记指向另一个的方向。目标C是否可以使用如下所示的组合来继承两个类? 下面是我的锻炼:IOS将2个GMSMarkers之间的箭头线绘制到GoogleMap上

#import <MessageUI/MessageUI.h> 
#import <GoogleMaps/GoogleMaps.h> 
#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 

@interface ClassA : GMSPolyline { 
} 

-(void)methodA; 

@end 

@interface ClassB : UIView { 
} 

-(void)methodB; 

@end 

@interface MyPolyline : NSObject { 
    ClassA *a; 
    ClassB *b; 
} 

-(void)methodA; 
-(void)methodB; 

@end 




- (void)addMarkers 
{ 
    if([array count] > 0){ 

     [mapView_ clear]; 
     GMSMutablePath *path = [GMSMutablePath path]; 
     GMSMutablePath *currentPath = [GMSMutablePath path]; 

     for (int i = 0; i < [array count]; i++) { 

      CheckPoints *cp = [array objectAtIndex:i]; 
      CLLocationCoordinate2D position = CLLocationCoordinate2DMake(cp.getLatitude , cp.getLongitude); 
      GMSMarker *marker = [GMSMarker markerWithPosition:position]; 
      // GMSMarker *marker = [[GMSMarker alloc] init]; 
      marker.position = position; 
      NSLog(@"%d", cp.getState); 
      NSLog(@"%f", cp.getLatitude); 
      NSLog(@"%f", cp.getLongitude); 
      NSLog(@"%@", cp.getDesp); 
      marker.title = cp.getDesp; 

      NSString *tmpLat = [[NSString alloc] initWithFormat:@"%f", position.latitude]; 
      NSString *tmpLong = [[NSString alloc] initWithFormat:@"%f", position.longitude]; 
      marker.snippet = [NSString stringWithFormat:@"%@ %@", tmpLat,tmpLong]; 
      UIColor *color; 
      GMSPolyline *polyline ; 
      if (cp.getState ==0) { 
       color = [UIColor greenColor]; 
       [path addLatitude:cp.getLatitude longitude:cp.getLongitude]; 
      } else { 
       color = [UIColor redColor]; 
      } 
      if(i > [array indexOfObject:array.lastObject] -2){ 
       [currentPath addLatitude:cp.getLatitude longitude:cp.getLongitude]; 
      } 
      polyline = [GMSPolyline polylineWithPath:path]; 
      polyline.geodesic = YES; 
      polyline.strokeWidth = 5.f; 
     // polyline.strokeColor = [UIColor redColor]; 
      GMSStrokeStyle *solidRed = [GMSStrokeStyle solidColor:[UIColor redColor]]; 
      GMSStrokeStyle *solidRGreen = [GMSStrokeStyle solidColor:[UIColor greenColor]]; 
      polyline.spans = @[[GMSStyleSpan spanWithStyle:solidRed segments:[array count]-1], 
           [GMSStyleSpan spanWithStyle:solidRGreen segments:2]]; 
      marker.icon = [GMSMarker markerImageWithColor:color]; 
      marker.map = mapView_; 
      polyline.map = mapView_; 
     } 

    } 
} 

回答

1

不知道,如果你还在寻找一个答案,但这里有一个选择:使用自定义箭头图标添加一个GMSMarker到相应的路径终点,设置它的旋转根据给定线段的斜率(arctan dy/dx),确保它设置为平面而不是广告牌(所以它随着用户旋转视图自然旋转)。以下是屏幕截图:

directed GMSPolyline

+0

请问您可以为此屏幕截图提供代码检查吗? – Den