Cerca e visualizza sedi di attività commerciali su MKMapView
-
08-07-2019 - |
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.
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?
Soluzione
Il file KML restituito da quella ricerca contiene molte informazioni. MKMapView
non ha modo di interrogare Google, quindi hai un paio di scelte:
-
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. -
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:
Un'altra modifica
Ecco un'altra libreria JSON chiamata Touch JSON. L'ho usato ed è abbastanza facile da implementare.
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).