El marco proporciona características útiles MapKit muchos, excepto el retorno de latitud y longitud de una dirección. En JavaScript, por ejemplo, puede utilizar el servicio proporcionado por Google geocodificación y discutido en Google Maps: Cómo llegar latitud y longitud de una dirección . Apple iPhone o iPad, sin embargo, puede superar este obstáculo mediante el uso de otro servicios de Google. En concreto, puede llamar directamente a la url:
1 | http://maps.google.com/maps/geo?q = [dirección] & output = csv |
¿Dónde está [indirizzo] para entrar en la cadena con la dirección que desea para transformar las coordenadas. La salida que se devuelve es de tipo:
1 | 200,8,41.9128300,12.2241172 |
). El primer valor, 200 , indica que todo ha ido bien ( 200 OK ). El segundo, 8 , Google es el parámetro de precisión (1-10). Los dos últimos valores son, por último, la latitud y longitud. Ahora podemos ver un prototipo de un método se puede 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 { 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 ; latitud doble = 0.0; 0.0 ; longitud doble = 0.0; listItems count ] > = 4 && [ [ listItems objectAtIndex : 0 ] isEqualToString : @ "200" ] ) { if ([ListItems cuenta]> = 4 & & [[ListItems objectAtIndex: 0] isEqualToString: @ "200"]) { / / Zoom = [[objectAtIndex ListItems: 1] intValue]; listItems objectAtIndex : 2 ] doubleValue ] ; Latitud = [[ListItems objectAtIndex: 2] doubleValue]; listItems objectAtIndex : 3 ] doubleValue ] ; Longitud = [[ListItems objectAtIndex: 3] doubleValue]; { Else {} / / Error } CLLocationCoordinate2D ubicación; location.latitude = latitud; location.longitude = longitud; Lugar de entrega; } |
Notas de interés
, alla stregua della funzione explode ( ) del PHP per intenderci. La cadena devuelta en locationString se "divide" por el método de componentsSeparatedByString , al igual que la función de explode ( ) en PHP, por ejemplo. Pongo el ejemplo que propone -, pero comentó - el código para recuperar siquiera el parámetro de precisión de Google, la precisión o factor de escala, que se denota por zoom .
Fuente como
Para completar, hice un pequeño ejemplo de aplicación con la que puedes probar el método propuesto más arriba, 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
Marcos : @ Marcos: Gracias por la respuesta. Por ejemplo, si usted tiene un código para guardar / utilizar la carpeta ...
Marcos : Gracias por la respuesta. Por ejemplo, si usted tiene un código para guardar / utilizar la carpeta ...
Giovambattista Fazioli : @ Marcos: en principio, absolutamente, mucho depende de cómo y por qué descargar. Luisiana ..
Marcos : Hola, buen guía! Quería preguntarle, usted puede usar el mismo código para ejecutar una base de datos sql? En lugar de ...
José : Hola quería preguntar cómo se puede hacer en el post que he subido una galería de 50 imágenes, por ejemplo, ...