已经阅读了类似的帖子并尝试了他们的解决方案,但没有什么能为我工作。有超级简单的Google Maps SDK 1.9.x示例通过XCode 6.x在IOS Simulator上运行,当我点击(确定,真的点击模拟器,这有什么不同?)没有任何记录,因为代码会让我相信它会,所以看起来doTapOverlay永远不会被调用。
#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>
@interface ViewController ()
@end
@implementation ViewController {
GMSMapView *mapView_;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Create a GMSCameraPosition that tells the map to display the
// coordinate -33.86,151.20 at zoom level 6.
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:43.5157
longitude:-114.2933
zoom:14];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.myLocationEnabled = YES;
mapView_.settings.compassButton = YES;
mapView_.settings.myLocationButton = YES;
GMSMutablePath *path2 = [GMSMutablePath path];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50618099,-114.34367)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50624301,-114.343572)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50635399,-114.343333)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50644602,-114.34312)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50655801,-114.342884)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50667996,-114.342642)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.506801,-114.342368)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50693896,-114.342054)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50707299,-114.341756)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50719796,-114.341476)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50731196,-114.341215)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.507419,-114.340978)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.50751396,-114.340759)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.507607,-114.340546)];
[path2 addCoordinate:CLLocationCoordinate2DMake(43.507736,-114.340248)];
GMSPolyline *rectangle2 = [GMSPolyline polylineWithPath:path2];
rectangle2.spans = @[[GMSStyleSpan spanWithColor:[UIColor redColor]]];
rectangle2.tappable = true;
rectangle2.strokeWidth = 10.f;
rectangle2.map = mapView_;
NSLog(@"The code runs through here!");
self.view = mapView_;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay
{
NSLog(@"in didTapOverlay");
}
@end
任何想法都赞赏。
- 低音
答案 0 :(得分:0)
首先,如果您可以将相机启动到以下位置,将会更容易:
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:43.5157
longitude:-114.34367
zoom:14];
因此,您可以在相机内轻松看到折线。
然后在您的ViewController.h
标头文件中,将您的界面更改为以下内容:
@interface ViewController : UIViewController<GMSMapViewDelegate>
所以你的视图控制器将是一个GMSMapViewDelegate。
最后,在self.view = mapView_;
下面添加以下这一行:
mapView_.delegate = self;
这一行将你的视图控制器(它是一个GMSMapViewDelegate)分配给你的mapView _的delgate,这样你的mapView的委托将是一个GMSMapViewDelegate,并且将调用didTapOverlay方法。