2014-07-07 24 views
5

Google haritaları kullanıyorum ve google yerlerimden konumumun etrafındaki kafe ayrıştırmak için JSON'ı kullanıyorum.Konumun bulunduğu konumdan seçilen bir kafede gezinmeye başladığımda 95% cafe I Bir polyline olsun, fakat bazılarında kuzey enlemi güney enlemi ve uygulama çökmelerini aşıyor gibi hata alıyorum. Bu olacakAndroid google maps, google yerleri, kuzey enlemi güney latitiude aşıyor

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

Anahtarı iki puan:

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) 

cevap

0

kodunuzda bu satırı bulun:

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

ve buna değiştirmek İşte

benim logcat olduğunu çöz onu!

Düzenleme: Elbette, anahtarın gerekip gerekmediğini kontrol etmek için bazı yöntemlere ihtiyacınız olacaktır, ancak uygulama ve uygulama mantığınıza bağlıdır. Kukla çözüm, try-catch kullanmak ve çökecekse noktaları değiştirmektir.

15

LatLng'nizi .include() kullanarak eklemek için LatLngBounds.Builder sınıfından yararlanın. Bu hatayı önleyecektir.

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); 
0
İlk

I'am Çin ve ben Gaode Harita (aMap.com) kullanıyorum ve bu

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

İstisna koşarken "Güney enlem kuzey enlem aşıyor" oluşur; Sonra sınıf kontrol ve LineNumber 35 cümle bulmak, o zaman böyle benim kodlarını değiştirmek ve sorunlar çözüldüğü: oluşturarak LatLngBounds yanlış EnlBoy puanla itiraz ederken

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))); 
       } 
      } 
+0

Belki de bazı dilbilgisi hataları var, lütfen bana gelin –

0

Bu istisna temelde gerçekleşir. güneybatısında Latlong ilk ve kuzeybatı 2. parametre olmalıdır. check this link