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 cambiar la posición del botón Mi ubicación en Google Maps con Android Studio
  • Cómo tomar google Maps v2 snapshot?
  • Buscar una ubicación en google maps sin dar sus geo-coordenadas
  • Crear dibujable del marcador de mapa de Google BitmapDescriptorFactory
  • Cómo calcular el radio visible en Google Maps en Android
  • Android Google Map InfoWindow punto de anclaje después de la rotación del marcador
  • PlaceAutoCompleteFragment en android no muestra sugerencias y se cierra después de ingresar la primera letra
  • Límites de uso de la API de zona horaria de Google
  • Google maps api para la página de registro de android
  • Cómo dibujar una forma en el fragmento de mapa al tocarlo con google map V2
  • Configuración de un LongClickListener en un marcador de mapa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.