>阅读过类似的帖子并尝试了他们的解决方案,但没有任何效果。通过XCode 6.x在IOS模拟器上运行超级简单的Google Maps SDK 1.9.x示例,当我点击(好吧,真的在模拟器中点击,这有什么不同吗?(没有记录任何内容,因为代码会让我相信它会,所以看起来确实TapOverlay永远不会被调用。
#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
任何想法都值得赞赏。
--低音
首先,如果您可以将相机启动到以下几点,则会更容易:
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 方法将被调用。