El marco MapKit proporciona una gran cantidad de características útiles, excepto el regreso Latitud y Longitud desde una dirección. En JavaScript, por ejemplo, puede utilizar el servicio ofrecido por Google geocodificación y discutido en Google Maps: cómo conseguir latitud y longitud de una dirección . El iPhone de Apple o iPad, sin embargo, puede superar este obstáculo mediante el uso de un diferentes servicios de Google. En concreto, puede llamar directamente a la url:
1 | http://maps.google.com/maps/geo?q = [dirección] y salida = csv |
¿Dónde está [indirizzo] introduzca la cadena con la dirección que queremos transformar coordenadas. El resultado devuelto es del tipo:
1 | 200,8,41.9128300,12.2241172 |
). El primer valor, 200 , indica que todo está bien ( 200 OK ). La segunda, 8 , es el parámetro de precisión de Google (1-10). Los dos últimos valores son, finalmente, latitud y longitud. Veamos ahora un posible prototipo de un método para incluir en nuestras aplicaciones:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | CLLocationCoordinate2D ) getLocationFromAddress : ( NSString * ) address { - (CLLocationCoordinate2D) getLocationFromAddress: ( NSString *) Dirección de { urlString = [ NSString stringWithFormat : @ "http://maps.google.com/maps/geo?q=%@&output=csv" , NSString * urlString = [ NSString stringWithFormat: @ "http://maps.google.com/maps/geo?q =% @ & output = csv", NSUTF8StringEncoding ] ] ; [StringByAddingPercentEscapesUsingEncoding Dirección: NSUTF8StringEncoding]]; listItems = [ locationString componentsSeparatedByString : @ "," ] ; NSArray * listItems = [locationString componentsSeparatedByString: @ ","]; / / Int zoom = 0; 0.0 ; doble latitud = 0,0; 0.0 ; doble longitud = 0,0; listItems count ] > = 4 && [ [ listItems objectAtIndex : 0 ] isEqualToString : @ "200" ] ) { if ([listItems count]> = 4 && [[listItems objectAtIndex: 0] isEqualToString: @ "200"]) { / / Zoom = [[listItems objectAtIndex: 1] intValue]; listItems objectAtIndex : 2 ] doubleValue ] ; latitud = [[listItems objectAtIndex: 2] doubleValue]; listItems objectAtIndex : 3 ] doubleValue ] ; longitud = [[listItems objectAtIndex: 3] doubleValue]; { Else {} / / Error } Ubicación CLLocationCoordinate2D; location.latitude = latitud; location.longitude = longitud; devolver la ubicación; } |
Notas de interés
, alla stregua della funzione explode ( ) del PHP per intenderci. La cadena devuelta en locationString está "dividida" por el método componentsSeparatedByString , como la función de explode ( ) php para hablar. En el ejemplo que propuse entré - pero comenté - también el código para recuperar el parámetro Google exactitud, precisión o escala factorial, denominada zoom .
Fuente eg
Para completar, he creado una pequeña aplicación de ejemplo con el que se puede probar el método propuesto anteriormente, entrar en cualquier dirección y el iPhone se mostrará en el mapa.
Doy las gracias al equipo de devAPP por la inspiración de este artículo.








Últimos Comentarios
Giovambattista Fazioli : @ ale: Como se muestra @ Kevin ver en GitHub repo: https://github.com/gfazioli/Ch roma-Key
Giovambattista Fazioli : @ Kevin: Ver https://github.com/gfazioli/Ch roma-Key
Kevin : Muy buen ejemplo - le gustaría ver el fla también.!
Ludovica : Hello! Voy a explicar mi duda. Cuando escribo un post no añadir imágenes en el artículo (si es así ...
Marco : hola @ Giovan Battista Fazioli, da las gracias por todas las explicaciones de esta guía excelente. Tengo una pregunta para ...