GMSTileURLConstructor GMSURLTileLayer не показывая плиткиGoogle Map изо Мозаичный слой не работает GMSTileURLConstructor GMSURLTileLayer
Я пытаюсь наложить свои собственные плитки (tilestream) на верхней карте Google. Но это провалилось. Поэтому я решил попробовать накладывать открытые фрагменты карты поверх карты google, поскольку URL-адрес tileestream такой же структуры, как URL-адрес для openstreet map. Оба http://xxx/z/x/y.png
использование GMSTileURLConstructor GMSURLTileLayer, но не показывая плитки
только Google SDKdemo образец работает отлично. URL-адрес является:
NSString *url = [NSString stringWithFormat:@"https://www.gstatic.com/io2010maps/tiles/9/L1_%tu_%tu_%tu.png",zoom, x, y];
, если я использую openstreet URL, он не смог показать пользовательские плитки на любом уровне масштабирования.
NSString *url = [NSString stringWithFormat:@"http://a.tile.openstreetmap.org/%tu/%tu/%tu.png", (unsigned long)zoom, (unsigned long)x, (unsigned long)y];
zIndex установлен в 99, 100, 1, все еще не отображается плитка.
Я подтверждаю, что сервер плитки работает нормально, изображение плитки правильно получено, если я напрямую использую URL в браузере.
также образец рисунка плана Google, плита, зум, x, y в точности соответствует карте открывания, x, y.
Я не понимаю, почему URL-адрес URL-шаблона Google хорошо работает, но openstreet map url tiles DOSE NOT показывается.
вот мой код: кто знает почему?
- (void)viewDidLoad {
[super viewDidLoad];
//------------- google map ------------
// GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:33.6599244
// longitude:-117.915058135
// zoom:13];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.78318
longitude:-122.403874
zoom:18];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
//mapView_.myLocationEnabled = YES;
mapView_.mapType = kGMSTypeHybrid;
mapView_.buildingsEnabled = NO;
mapView_.indoorEnabled = NO;
self.view = mapView_;
// Create a new GMSTileLayer with the new floor choice.
GMSTileURLConstructor urls = ^(NSUInteger x, NSUInteger y, NSUInteger zoom) {
//NSString *url = [NSString stringWithFormat:@"https://www.gstatic.com/io2010maps/tiles/9/L1_%tu_%tu_%tu.png",zoom, x, y];
//NSString *url = [NSString stringWithFormat:@"http://tile.openstreetmap.org/%tu/%tu/%tu.png", zoom, x, y];
NSString *url = [NSString stringWithFormat:@"http://a.tile.openstreetmap.org/%tu/%tu/%tu.png", (unsigned long)zoom, (unsigned long)x, (unsigned long)y];
NSLog(@"%@", url);
return [NSURL URLWithString:url];
};
layer = [GMSURLTileLayer tileLayerWithURLConstructor:urls];
layer.zIndex = 1;
layer.opacity= 0.5;
layer.map = mapView_;
Это на андроид? – geocodezip
нет, это на ios iphone – hoogw
Как получить x и y? –