2013-05-03 11 views
6

Meine App verwendet derzeit die Google Maps API v2 für iOS. Ich würde gerne benutzerdefinierte gekachelte Overlays hinzufügen, die ich realisiere, wird nicht von der API unterstützt.iOS Google Maps Api Tiled Overlays

Der erste Ansatz, den ich zu diesem Problem nahm, war zu versuchen, die GMSOverlay Klasse zu erweitern, aber später fand ich, dass die DrawLayer-Methode nie aufgerufen wurde.

Als nächstes habe ich versucht, meine benutzerdefinierte Klasse erweitern UIView und dann meine Klasse als Unteransicht der Kartenansicht hinzufügen. Ich war in der Lage, die GMSMapViewDelegate Methode didChangeCameraPosition zu verwenden, um Kamera-Updates zurück zu meiner benutzerdefinierten Klasse zu melden, so dass die Kacheln neu gezeichnet werden konnten. Dies funktionierte meist mit ein paar Ausnahmen, zuerst würde nur der erste Satz von Kacheln geladen werden, und wenn Sie von den ursprünglichen X, Y, Z aus schwenken oder zoomen würden, würden die Kacheln nicht über die drawInRect-Methode aktualisiert werden. Das zweite Problem war, dass meine benutzerdefinierte UIView alle Marker und ihre entsprechenden Callouts nach dem Tippen abdeckte.

Meine Frage ist, hat jemand Erfahrung mit dem Hinzufügen von benutzerdefinierten Kacheln oder Unterklasse der GMSOverlay Klasse, um zum Beispiel benutzerdefinierte Wetter Kacheln über der Oberseite der Google-Karte hinzuzufügen?

Antwort

0

Haben Sie versucht, dieses Beispiel anzusehen?

https://github.com/mtigas/iOS-MapLayerDemo

Es ist auf der MKMapKit basiert, nicht die Google-Map-SDK. Es unterstützt Kacheln mit Zoom und ist sehr einfach zu erweitern und könnte Sie in die richtige Richtung zeigen.

Wenn Sie Kacheln für die Karte zu generieren, können Sie MapTiler verwenden

http://www.maptiler.org/

Die Windows-Version von MapTiler mehr feinkörnige Kontrolle der Fliese Generation gibt.

+0

Danke für die Antwort. Eigentlich hat Google gerade Version 1.3 ihrer API veröffentlicht, die TiledOverlays implementiert hat. Also, ich denke, dieses Problem ist gelöst. –