2013-05-03 15 views
6

Moja aplikacja używa obecnie map Google api v2 na iOS. Chciałbym dodać niestandardowe nakładki kafelkowe, które, jak rozumiem, nie są obsługiwane przez api.iOS Google Maps Api Tiled Overlays

Pierwsze podejście do tego problemu polegało na próbie rozszerzenia klasy GMSOverlay, ale później odkryłem, że metoda drawLayer nigdy nie była wywoływana.

Następnie próbowałem, aby moja klasa niestandardowa rozszerzyła się o UIView, a następnie dodaję moją klasę jako podzbiór do widoku mapy. Udało mi się użyć metody GMSMapViewDelegate do zapisania aktualizacji kamery do mojej niestandardowej klasy, aby płytki mogły zostać przerysowane. To działało głównie z kilkoma wyjątkami, po pierwsze, ładował się tylko początkowy zestaw płytek, a jeśli przesuwałeś lub powiększałeś od początkowego X, Y, Z kafelki mapy nie aktualizowałyby się za pomocą metody drawInRect. Drugi problem polegał na tym, że mój niestandardowy UIView zakrywał wszystkie znaczniki i odpowiadające im objaśnienia po dotknięciu.

Moje pytanie brzmi, czy ktoś ma doświadczenie w dodawaniu niestandardowych płytek lub podklasowaniu klasy GMSOverlay w celu dodania, na przykład, niestandardowych kafelków pogodowych nad górną częścią mapy google?

Odpowiedz

0

Czy próbowałeś spojrzeć na ten przykład?

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

Jest on oparty na MKMapKit, a nie Google Map SDK. Obsługuje płytki z zoomem i jest bardzo łatwa do rozszerzenia i może wskazać ci właściwy kierunek.

Jeśli trzeba wygenerować płytki na mapie, można użyć MapTiler

http://www.maptiler.org/

Wersja Windows MapTiler daje bardziej drobnoziarnista kontrolę nad wytwarzaniem płytek.

+0

Dzięki za odpowiedź. Właściwie Google właśnie wydało wersję 1.3 swojego interfejsu API, w którym zaimplementowano TiledOverlays. Tak więc myślę, że ten problem został rozwiązany. –