2015-02-23 73 views
0

我正在使用GMSMapView作为iPad应用程序。我想在地图上显示自定义瓷砖,但我不能。iOS GMSSyncTileLayer不起作用

我创建定制TileLayer.h

#import <GoogleMaps/GoogleMaps.h> 
    @interface TileLayer : GMSSyncTileLayer 
@end 

和TileLayer.m

#import "TileLayer.h" 
@implementation TileLayer 
-(UIImage *) tileForX:(NSUInteger)x y:(NSUInteger)y zoom:(NSUInteger)zoom { 
    NSLog(@"tile"); 
} 
@end 

在MainView.m

viewMap.mapType = kGMSTypeNone;  
GMSTileURLConstructor urls = ^(NSUInteger x, NSUInteger y, NSUInteger zoom) { 
     NSString *url = [NSString stringWithFormat:@"http://www.example.com/images/tile/%d_%d_%d.jpg",zoom,x,y]; 
     return [NSURL URLWithString:url]; 
    }; 
    GMSURLTileLayer *layer = [GMSURLTileLayer tileLayerWithURLConstructor:urls]; 
    layer.zIndex = 100; 
    layer.map = viewMap; 

NSLog的命令永远不会被执行。哪里不对?

回答

0

您的TileLayer永远不会被调用。如果您喜欢使用您的自定义类:

layer = [[TileLayer alloc] init] 
    layer.map = mapView 

GMSURLTileLayer是添加自定义图块的另一种方法。