Android google maps, google lugares, latitud norte supera el sur latitiude

Estoy usando google maps y uso JSON para analizar café alrededor de mi ubicación de google places.When inicio navegación a la elegida una cafetería de mi ubicación actual 95% café me sale una polilínea pero en algunos me sale error como la latitud norte excede la latitud meridional Y la aplicación se bloquea.

Aquí está mi logcat:

07-07 18:11:46.037: E/AndroidRuntime(25854): FATAL EXCEPTION: main 07-07 18:11:46.037: E/AndroidRuntime(25854): java.lang.IllegalArgumentException: southern latitude exceeds northern latitude (30.7223365 > 30.722303) 07-07 18:11:46.037: E/AndroidRuntime(25854): at com.google.android.gms.internal.fq.a(Unknown Source) 07-07 18:11:46.037: E/AndroidRuntime(25854): at com.google.android.gms.maps.model.LatLngBounds.<init>(Unknown Source) 07-07 18:11:46.037: E/AndroidRuntime(25854): at com.google.android.gms.maps.model.LatLngBounds.<init>(Unknown Source) 07-07 18:11:46.037: E/AndroidRuntime(25854): at com.example.google_map_ex.MainActivity.findDirections(MainActivity.java:285) 07-07 18:11:46.037: E/AndroidRuntime(25854): at com.example.google_map_ex.MainActivity$JSONParse$1.onItemClick(MainActivity.java:366) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.widget.AdapterView.performItemClick(AdapterView.java:301) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.widget.AbsListView.performItemClick(AbsListView.java:1490) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3275) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.widget.AbsListView$1.run(AbsListView.java:4518) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.os.Handler.handleCallback(Handler.java:725) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.os.Handler.dispatchMessage(Handler.java:92) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.os.Looper.loop(Looper.java:137) 07-07 18:11:46.037: E/AndroidRuntime(25854): at android.app.ActivityThread.main(ActivityThread.java:5283) 07-07 18:11:46.037: E/AndroidRuntime(25854): at java.lang.reflect.Method.invokeNative(Native Method) 07-07 18:11:46.037: E/AndroidRuntime(25854): at java.lang.reflect.Method.invoke(Method.java:511) 07-07 18:11:46.037: E/AndroidRuntime(25854): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 07-07 18:11:46.037: E/AndroidRuntime(25854): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 07-07 18:11:46.037: E/AndroidRuntime(25854): at dalvik.system.NativeStart.main(Native Method) 

Utilice la clase LatLngBounds.Builder para incluir su LatLng usando .include (). Esto evitará este error.

 LatLngBounds.Builder builder = new LatLngBounds.Builder(); builder.include(currentLocation).include(streetLocation); //Animate to the bounds CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(builder.build(), 100); mMap.moveCamera(cameraUpdate); 

En primer lugar, soy chino, y uso el Gaode Map (aMap.com), y mientras que ejecute esto

 aMap.addPolyline(new PolylineOptions().add(drawLineLastLatlng,latlng).width(10) .color(Color.argb(255, 1, 255, 255))) 

La Excepción "latitud sur excede la latitud norte" ocurre; Entonces compruebo la clase y encuentro la oración en LineNumber 35, luego cambio mis códigos así, y las preguntas se resuelven:

 if(drawLineLastLatlng!=null&&drawLineLastLatlng.latitude!=latlng.latitude){ if(latlng.latitude>drawLineLastLatlng.latitude){ aMap.addPolyline(new PolylineOptions().add(drawLineLastLatlng,latlng).width(10) .color(Color.argb(255, 1, 255, 255))); }else{ aMap.addPolyline(new PolylineOptions().add(latlng,drawLineLastLatlng).width(10) .color(Color.argb(255, 1, 255, 255))); } } 

Encuentre esta línea en su código:

 mMapView.animateCamera(CameraUpdateFactory.newLatLngBounds(new LatLngBounds(pointA, pointB), 50)); 

Y cambiarlo a esto:

 mMapView.animateCamera(CameraUpdateFactory.newLatLngBounds(new LatLngBounds(pointB, pointA), 50)); 

Cambiar los dos puntos, se solucionará!

Edit: por supuesto, necesitará algún método para comprobar si el switch es necesario o no, pero depende de la implementación y la lógica de la aplicación. La solución simulada es usar try-catch y cambiar los puntos si se bloquea.

  • Cómo encontrar el nivel de zoom basado en círculo dibujar en el mapa
  • He creado una clave de API de mapa de Android para V2, no puedo mostrar un mapa
  • Metadatos de error de Google Play Services v13 en AndroidManifest
  • Hacer TileOverlays transparente
  • No se puede resolver el método getMap ()
  • MoveCamera y animateCamera no funcionan la segunda vez
  • google maps api clave no funciona v2
  • Android Maps error "No se pudo encontrar la clase 'android.app.AppOpsManager'"
  • Crashing de la API de Google Maps (mediante el emulador de Android)
  • Google Maps API V2 'Error al cargar mapa. No se pudo contactar con Google Servers, ni siquiera comprobar permiso y keystore
  • Google Maps API V2 - siempre obtiene error de autenticación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.