Artículos con 'stringByAddingPercentEscapesUsingEncoding' tag

Cómo llegar Latitud y Longitud en Objective-C

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.


Descarga Fuente

Doy las gracias al equipo de devAPP por la inspiración de este artículo.

Continuación ...