2013-05-03 5 views
6

Attualmente la mia app utilizza google maps api v2 per iOS. Vorrei aggiungere degli overlay piastrellati personalizzati, che realizzo non è supportato dall'api.iOS Google Maps Api Sovrapposti piastrellati

Il primo approccio a questo problema è stato quello di provare ad estendere la classe GMSOverlay ma in seguito ho scoperto che il metodo drawLayer non veniva mai chiamato.

Successivamente, ho provato ad avere la mia classe personalizzata estendere UIView e quindi aggiungere la mia classe come sottoview alla visualizzazione mappa. Sono stato in grado di utilizzare il metodo didChangeCameraPosition per riportare gli aggiornamenti della fotocamera alla mia classe personalizzata in modo che i riquadri possano essere ridisegnati. Questo ha funzionato principalmente con un paio di eccezioni, in primo luogo, solo il set iniziale di tiles verrebbe caricato, e se si effettua una panoramica o uno zoom dalle iniziali X, Y, Z, i tiles della mappa non si aggiornerebbero tramite il metodo drawInRect. Il secondo problema era che il mio custom UIView copriva tutti i marker e i loro callout corrispondenti dopo aver toccato.

La mia domanda è: qualcuno che ha esperienza con l'aggiunta di piastrelle personalizzate o sottoclasse la classe GMSOverlay per aggiungere, ad esempio, tessere meteo personalizzate sopra la mappa di google?

risposta

0

Hai provato a guardare questo esempio?

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

Si basa sul MKMapKit, non il Google-Map SDK. Supporta le tessere con lo zoom ed è molto facile da estendere e potrebbe indirizzarti nella giusta direzione.

Se è necessario generare piastrelle per la mappa, è possibile utilizzare MapTiler

http://www.maptiler.org/

La versione per Windows di MapTiler dà più controllo a grana fine della generazione di piastrelle.

+0

Grazie per la risposta. In realtà, Google ha appena rilasciato la versione 1.3 della loro API che ha implementato TiledOverlays. Quindi, immagino che questo problema sia risolto. –