java.lang.IllegalArgumentException: 南纬超过北纬 (23.029011581089936 > 23.0060917)
Posted
技术标签:
【中文标题】java.lang.IllegalArgumentException: 南纬超过北纬 (23.029011581089936 > 23.0060917)【英文标题】:java.lang.IllegalArgumentException: southern latitude exceeds northern latitude (23.029011581089936 > 23.0060917) 【发布时间】:2020-04-10 15:18:21 【问题描述】:我正在使用 Google 地图,我发现了一个以前从未遇到过的奇怪错误:以下是详细信息。
我正在尝试使用,在边界中放置两个标记,
latLngBounds = new LatLngBounds(mDestination, mOrigin);
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(mDestination).include(mOrigin);
我收到以下错误。
java.lang.IllegalArgumentException: southern latitude exceeds northern latitude (23.029011581089936 > 23.0060917)
at com.google.android.gms.common.internal.Preconditions.checkArgument(Unknown Source:38)
at com.google.android.gms.maps.model.LatLngBounds.<init>(Unknown Source:7)
at com.cmrlabs.tracker.MainActivity.drawRoute(MainActivity.java:324)
at com.cmrlabs.tracker.MainActivity.access$500(MainActivity.java:73)
at com.cmrlabs.tracker.MainActivity$2.onMapClick(MainActivity.java:410)
at com.google.android.gms.maps.zzy.onMapClick(Unknown Source:2)
at com.google.android.gms.maps.internal.zzak.dispatchTransaction(Unknown Source:5)
at com.google.android.gms.internal.maps.zzb.onTransact(Unknown Source:12)
at android.os.Binder.transact(Binder.java:667)
at cj.b(:com.google.android.gms.dynamite_mapsdynamite@19831068@19.8.31 (100700-0):14)
我不知道如何解决这个问题,有什么建议吗?
提前谢谢你..!
【问题讨论】:
如果getActivity().isFinishing()
返回true,华为地图也会抛出同样的异常。堆栈跟踪是这样的:2020-05-18 12:17:06.942 15722-15722/me.com.myApp E/AndroidRuntime: FATAL EXCEPTION: main Process: me.com.myApp, PID: 15722 java.lang.IllegalArgumentException: southern latitude >= northern latitude at com.huawei.hms.common.Preconditions.checkArgument(Unknown Source:11) at com.huawei.hms.maps.model.LatLngBounds.<init>(LatLngBounds.java:57) at com.huawei.hms.maps.model.LatLngBounds$Builder.build(LatLngBounds.java:253)
【参考方案1】:
LatLngBounds constructor 有两个参数:西南角和东北角。那不是你所拥有的——你有两点,所以你不应该使用那个构造函数。相反,使用Builder
并在最后调用build()
来构造LatLngBounds
对象:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(mDestination).include(mOrigin);
latLngBounds = builder.build();
【讨论】:
【参考方案2】:我帮助回答了ianhanniballake。 如果有人需要 Kotlin,请看:
val bilder = LatLngBounds.builder()
bilder.include(TripMetrFragment.latLngFinish).include(TripMetrFragment.latLngStart)
val latLngBounds = bilder.build()
map.moveCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, 0))
【讨论】:
以上是关于java.lang.IllegalArgumentException: 南纬超过北纬 (23.029011581089936 > 23.0060917)的主要内容,如果未能解决你的问题,请参考以下文章