GMSTileURLConstructor GMSURLTileLayer nicht Kacheln zeigtgoogle map iso Kachel Arbeitslayer nicht GMSTileURLConstructor GMSURLTileLayer
Ich versuche, meine eigenen Fliesen (tilestream) oben auf Google-Map zu überlagern. Aber es ist fehlgeschlagen. Also entscheide ich mich, overlay openstreet map-Kacheln über google map zu versuchen, weil die Kachel-URL für tilestream dieselbe Struktur wie die URL für openstreet map hat. Beide sind http://xxx/z/x/y.png
Verwendung GMSTileURLConstructor GMSURLTileLayer, aber nicht zeigen, Fliesen
Nur SDKdemo Probe funktioniert Google. die URL ist:
NSString *url = [NSString stringWithFormat:@"https://www.gstatic.com/io2010maps/tiles/9/L1_%tu_%tu_%tu.png",zoom, x, y];
wenn ich Openstreet URL verwenden, es ist fehlgeschlagen benutzerdefinierte Fliesen zu jeder Zoomstufe angezeigt werden soll.
NSString *url = [NSString stringWithFormat:@"http://a.tile.openstreetmap.org/%tu/%tu/%tu.png", (unsigned long)zoom, (unsigned long)x, (unsigned long)y];
zIndex auf 99, 100, 1 eingestellt, Kacheln werden immer noch nicht angezeigt.
Ich bestätige, der Kachelserver funktioniert einwandfrei, das Kachelbild wird korrekt empfangen, wenn ich die URL direkt im Browser verwende.
auch Google Beispiel Grundriss Kachel, Zoom, x, y genau übereinstimmen openstreet Karte zoom, x, y.
Ich verstehe nicht, warum google sample Tile URL gut funktioniert, aber openstreet map url Fliesen DOSE NICHT zeigt.
Hier ist mein Code: jemand weiß warum?
- (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_;
Ist dies auf Android? – geocodezip
nein, es ist auf ios iphone – hoogw
Wie bekomme ich x und y? –