ubicacion - abra la aplicación Google Maps desde un navegador con la ubicación de inicio predeterminada en Android y iPhone
establecer google maps como predeterminado en whatsapp iphone (4)
Tengo un sitio móvil y tengo un enlace que puede abrir la aplicación nativa de google maps en iphone y android con ubicaciones de inicio y final predeterminadas mediante el formato de enlace: http://maps.google.com/maps?saddr=XX&daddr= XX .
Mi problema es que deseo poder configurar la ubicación de inicio para que sea la ubicación actual, y quiero que funcione desde los navegadores de Android y iPhone. Desde mi experiencia, si dejo el saddr en blanco, en android esta predeterminada es la ubicación actual, pero en iphone solo deja la ubicación de inicio en blanco. Si configuro el saddr en "ubicación actual", esto establece que la ubicación de inicio sea la ubicación actual en el iPhone, pero en Android no reconoce la ubicación.
Mi solución ahora es usar las coordenadas geográficas / largas del usuario como la dirección de inicio. Esto funciona con éxito en ambas plataformas, pero según el método utilizado para obtener las coordenadas, puede que no sea tan preciso como la ubicación actual del usuario desde los gps de la aplicación. Me preguntaba si había alguna forma de obtener el enlace para abrir la aplicación nativa con la "ubicación actual" correcta para el punto de partida. Sé que también podría verificar condicionalmente el agente de usuario y crear el enlace en consecuencia, pero esperaba que hubiera una forma más elegante de hacerlo.
Simplemente reemplazo los valores en la siguiente cadena con mi inicio y destino Lng / Lat
http://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD
Luego, ejecuto la url de esta manera en Android, que permitirá al usuario elegir usar el navegador o su aplicación de mapas nativos:
String url = "http://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD";
startActivity( new Intent(Intent.ACTION_VIEW).setData(Uri.parse(url)));
Para iOS, si prefijas la URL con los mapas: // en lugar de http: // abrirá la aplicación de mapas en el teléfono, que funciona muy bien. Algo como
NSString *url = @"maps://maps.google.com/maps?saddr=START_ADD&daddr=DEST_ADD&ll=START_ADD";
[[UIApplication sharedApplication] openURL:[NSURL urlWithString:url]];
Esa es la forma en que he elegido manejarlo. Es bastante fácil en cualquiera de los dispositivos obtener el Lng / Lat actual usando sus respectivos marcos de ubicación. Los resultados siempre me parecen bastante precisos, puede especificar la precisión con la que desea los resultados. Cuanto más preciso sea, más drenarás tu batería y, a veces, te llevará más tiempo adquirirla, pero eso es algo que, al final, debes ajustar para obtener los mejores resultados para tu implementación.
Sé que también podría verificar condicionalmente el agente de usuario y crear el enlace en consecuencia, pero esperaba que hubiera una forma más elegante de hacerlo.
Esta es la solución más elegante. Las dos plataformas difieren demasiado, para hacer esto con el mismo enlace para ambas plataformas. Agregue Blackberry o Windows Phone en la ecuación, y tendrá aún más dificultades para lograr el mismo comportamiento sin consultar al agente de usuario.
En Iphone, puede obtener la ubicación actual utilizando CLLocationManagerDelegate en el siguiente método.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
CLLocationCoordinate2D location = newLocation.coordinate;
Float x = location.latitude, y = location.longitude;
}
Eche un vistazo al geo del administrador de url para decirle al navegador que use la aplicación nativa
<a href="geo:50.066274, 10.754427;">Location here!</a>
no te olvides de la alternativa para los navegadores de escritorio