我更新了我的应用程序以使用 Google Maps iOS SDK 1.3。除了 GMSMarkers 之外,一切似乎都有效。它们要么不出现,要么以错误的图像出现。它们仍然响应触摸并且可以移动,但在其他方面是不可见的或损坏的。
以下是添加 GMSMarkers 的代码:
playerAnnotation = [[CustomPlayerAnnotation markerWithPosition:coord] retain];
[playerAnnotation setType:ANNOTATION_PLAYER];
[playerAnnotation setIcon:[UIImage imageNamed:@"Icon-72.png"]];
[playerAnnotation setGroundAnchor:ccp(.5f, .5f)];
[playerAnnotation setAnimated:NO];
[playerAnnotation setTappable:YES];
[playerAnnotation setTitle:@"Player"];
[playerAnnotation setMap:gameMapView];
GMSMarker* test = [[GMSMarker markerWithPosition:gameMapView.myLocation.coordinate] retain];
[test setIcon:[UIImage imageNamed:@"Icon-72.png"]];
[test setGroundAnchor:ccp(.5f, .5f)];
[test setAnimated:NO];
[test setTappable:YES];
[test setTitle:@"Player"];
[test setMap:gameMapView];
而 CustomPlayerAnnotation 只是一个带有一些额外变量的 GMSMarker:
@interface CustomPlayerAnnotation : GMSMarker
{
AnnotationType type;
int tag;
struct CoordinatePair coordinatePair;
}
使用 CustomPlayerAnnotation 映射并测试 GMSMarker:
我确实有大量的地面覆盖层,移除覆盖层会使标记重新出现,但有些仍然有无法正确显示的奇怪图像。它在 1.2.2 中工作正常,但不是 1.3。
有没有人有让标记工作的解决方法?还有其他人在 GMSMarkers 中看到这种行为吗?
其他细节:app使用cocos2d 2.0,加载地图前先停止director,添加GMSMapView如下:
UIWindow* window = [(ProjectFusionAppDelegate*)[[UIApplication sharedApplication] delegate] window];
[[[window subviews] objectAtIndex:0] addSubview:gameMapView];