我正在尝试使用osmdroid NominatimPOIProvider
接近我位置的Bus_station
,但是我收到以下NullException
:
java.lang.illegalargumentException:南部必须在 [-85.05112877980658,85.05112877980658] atrg.osmdroid.util.boundingbox.set(boundingbox.java:69(。
我敢肯定,坐标不会在我的位置附近任何点
所以这是我实现逻辑
的方法 public void poinOfInt(View view){
bus_stop = myLocationNewOverlay.getMyLocation();
NominatimPOIProvider poiProvider = new NominatimPOIProvider( BuildConfig.APPLICATION_ID);
ArrayList<POI> pois = poiProvider.getPOICloseTo(bus_stop, "highway", 50, 100);
FolderOverlay poiMarkers = new FolderOverlay();
map.getOverlays().add(poiMarkers);
Drawable poiIcon = getResources().getDrawable(R.drawable.marker_default);
for (POI poi:pois){
Marker poiMarker = new Marker(map);
poiMarker.setTitle(poi.mType);
poiMarker.setSnippet(poi.mDescription);
poiMarker.setPosition(poi.mLocation);
poiMarker.setIcon(poiIcon);
/* if (poi.mThumbnail != null){
poiItem.setImage(new BitmapDrawable(poi.mThumbnail));
}*/
poiMarkers.add(poiMarker);
}
}
我收到以下错误:
e/androidruntime:致命例外:主要 过程:com.example.xibomba,pid:6617 java.lang.illegalstateException:无法执行Android的方法:OnClick at android.support.v7.app.appcompatviewinflater $ neclaredonClicklistener.onclick(appcompatviewinflater.java:390( at android.view.view.performClick(view.java:4754( at android.view.view $ persionclick.run(view.java:19605( 在Android.os.handler.handlecallback(Handler.java:733( 在Android.os.handler.dispatchMessage(Handler.java:95( at android.os.looper.loop(looper.java:146( at android.app.activitythread.main(activityThread.java:5752( 在java.lang.reflect.method.invokenative(本机方法( 在java.lang.reflect.method.invoke(method.java:515( 在com.android.internal.os.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:1291( 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1107( 在dalvik.system.nativestart.main(本机方法(上 引起:java.lang.reflect.invocationTargetException 在java.lang.reflect.method.invokenative(本机方法( 在java.lang.reflect.method.invoke(method.java:515( at android.support.v7.app.appcompatviewinflater $ neclaredonClicklistener.onclick(appcompatviewinflater.java:385( at android.view.view.performClick(view.java:4754( at android.view.view $ persionclick.run(view.java:19605( 在Android.os.handler.handlecallback(Handler.java:733( 在Android.os.handler.dispatchMessage(Handler.java:95( at android.os.looper.loop(looper.java:146( at android.app.activitythread.main(activityThread.java:5752( 在java.lang.reflect.method.invokenative(本机方法( 在java.lang.reflect.method.invoke(method.java:515( 在com.android.internal.os.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:1291( 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1107( 在dalvik.system.nativestart.main(本机方法(上 引起的:java.lang.illegalargumentException:南部必须在[-85.05112877980658,85.05112877980658]中 atrg.osmdroid.util.boundingbox.set(boundingbox.java:69( 请访问org.osmdroid.util.boundingbox。(boundingbox.java:43( atrg.osmdroid.benuspack.location.nominatimpoiprovider.geturlcloseto(nominatimpoiprovider.java:73( atrg.osmdroid.benuspack.location.nominatimpoiprovider.getpoicloseto(nominatimpoiprovider.java:132( 在com.example.xibomba.mapaactivity.poinofint(mapaactivity.java:193( 在java.lang.reflect.method.invokenative(本机方法( 在java.lang.reflect.method.invoke(method.java:515( at android.support.v7.app.appcompatviewinflater $ neclaredonClicklistener.onclick(appcompatviewinflater.java:385( at android.view.view.performClick(view.java:4754( at android.view.view $ persionclick.run(view.java:19605( 在Android.os.handler.handlecallback(Handler.java:733( 在Android.os.handler.dispatchMessage(Handler.java:95( at android.os.looper.loop(looper.java:146( at android.app.activitythread.main(activityThread.java:5752( 在java.lang.reflect.method.invokenative(本机方法( 在java.lang.reflect.method.invoke(method.java:515( 在com.android.internal.os.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:1291( 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1107( 在dalvik.system.nativestart.main(本机方法(
poiProvider.getPOICloseTo
方法的最后一个参数应该是学位(文档说:"最大程度地限制了位置的最大程度。请注意,它用于围绕该位置构建一个边界,不是一个圆。"(。您通过了100
,该学位的价值很高,因此也许您认为那是公里或米。尝试较小的值,例如0.1
,0.2
或与示例类似的东西。
提供代码设置BUS_STOP地理点。
(顺便说一句,搜索"高速公路"将无法获得公共汽车站(