Domanda

Sto cercando di trovare un modo per cercare un'attività commerciale, ad esempio "negozi di alimentari" e visualizzali su una mappa di Google attorno alla posizione corrente degli utenti. Questo era piuttosto semplice con il vecchio stile URL del lancio della posizione della mappa Apple, ma non riesco a scoprire come farlo con MKMapView. Capisco che dovrò usare le classi MKAnnotations ma il mio problema è trovare i dati. Ho provato a collegare l'URL seguente per ottenere le informazioni da Google, ma la dimensione dei dati sembra troppo grande.

http://maps.google com / mappa q = alimentari & amp;? MRT = yp & amp; sll = 37,769,561 mila, -122,412844 & amp; z = 14 & amp; output = kml

Esiste un modo semplice per impostare una proprietà che indichi a MKMapView di cercare una parola chiave e visualizzare tutte le attività commerciali corrispondenti nella mia posizione corrente? O qualcuno sa come ottenere queste informazioni da Google?

È stato utile?

Soluzione

Il file KML restituito da quella ricerca contiene molte informazioni. MKMapView non ha modo di interrogare Google, quindi hai un paio di scelte:

  1. Usa i dati che ottieni da quella query con NSXMLParser , ed estrai solo le cose che ti interessano (probabilmente titolo, latitudine, longitudine). KML è solo una versione di XML.

  2. Sfoglia i documenti di Google per trovare una chiamata che dia un formato di dati più leggero. Puoi modificare il formato del tuo URL in json, ma le informazioni in esso contenute sono le stesse.

Il file ha solo circa 50 KB. Nella mia esperienza, il download e l'analisi di un file XML da 50 KB richiede circa 5 secondi su 3G.

Modifica: Ho appena trovato questo, pensato che potresti essere interessato:

  

Molte persone trasferiscono dati da e verso i servizi Web su iPhone tramite JSON. Questo è un modo molto migliore rispetto all'utilizzo di XML. L'analisi di XML su iPhone fa semplicemente schifo. È troppo complicato e molto confuso. Attualmente l'app YouVersion, Bible, usa JSON per trasferire tutto avanti e indietro dal server e tutto funziona alla grande.

     

Se non hai davvero scelta, usa almeno JSON. Ecco una grande libreria per JSON che attualmente uso    http://code.google.com/p/json-framework/

Da qui: http://samsoff.es/post/iphone-plist-tutorial /

È possibile ottenere JSON modificando la stringa di richiesta in questo:

http://maps.google com / mappa q = alimentari & amp;? MRT = yp & amp; sll = 37,769,561 mila, -122,412844 & amp; z = 14 & amp; output = json

Un'altra modifica

Ecco un'altra libreria JSON chiamata Touch JSON. L'ho usato ed è abbastanza facile da implementare.

https://github.com/acf/TouchJSON

Altri suggerimenti

Invece di usare la stringa maps? q = , è meglio usare l'API ufficiale qui: http://code.google.com/apis/maps/documentation/geocoding/

Le risposte JSON dell'API funzionano con JSON Parser http://code.google .com / p / json-framework / meglio (l'altro URL non restituisce JSON conforme e non è un'API standard, quindi potrebbe essere più soggetto a modifiche).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top