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 deshabilitar la función de rotación de mapas en el fragmento de mapa de Android
  • Android Maps API v2 - ¿acercamientos a la rotación del marcador?
  • GetSupportFragmentManager (). FindFragmentById (R.id.map) comenzó a devolver null
  • ¿Cómo almacenar varios tipos de datos en una matriz?
  • Android Studio Maps Api v2
  • Cambiar Google Place Picker Appbar Text Color
  • Android 2.3 Google Maps Falta el recurso maps_watermark_dark.png
  • Google Maps Android V2 relleno con rotación alrededor del usuario
  • Mapa de Google que muestra texto de derechos de autor adicional en algunos dispositivos
  • El proyecto de la biblioteca de Android no se registra en Google Map
  • Api de Google Maps: muestra todos los caminos de un área específica
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.