Android 如何使用osmdroid namignmpoiProvider让一些公交车站靠近我的位置

Android 如何使用osmdroid namignmpoiProvider让一些公交车站靠近我的位置,android,osmdroid,Android,Osmdroid,我正试图使用osmdroidnamignmpoiProvider将一些公交车站靠近我的位置,但我收到以下NullException: java.lang.IllegalArgumentException:南方必须在 [-85.05112877980658,85.05112877980658] 位于org.osmdroid.util.BoundingBox.set(BoundingBox.java:69) 我确信坐标不会有任何点靠近我的位置 这就是我实现逻辑的方法 public void po

我正试图使用osmdroid
namignmpoiProvider
将一些
公交车站
靠近我的位置,但我收到以下
NullException

java.lang.IllegalArgumentException:南方必须在 [-85.05112877980658,85.05112877980658] 位于org.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);
      }
    }
public void poinOfInt(视图){
公共汽车站=myLocationNewOverlay.getMyLocation();
NamentimpoiProvider poiProvider=新的NamentimpoiProvider(BuildConfig.APPLICATION\u ID);
ArrayList pois=poiProvider.getPOICloseTo(公共汽车站,“高速公路”,50100);
FolderOverlay POIMERKERS=新FolderOverlay();
map.getOverlays().add(POI标记);
Drawable POICON=getResources().getDrawable(R.Drawable.marker_默认值);
用于(POI POI:POI){
标记POIMERKER=新标记(地图);
POIMERKER.setTitle(poi.mType);
poi标记器固定接头(poi.M说明);
poi标记器设置位置(poi.M位置);
POIMERKER.setIcon(POICON);
/*if(poi.mThumbnail!=null){
setImage(新的位图绘制(poi.mThumbnail));
}*/
添加(POIMERKER);
}
}
我收到以下错误:

E/AndroidRuntime:致命异常:主 进程:com.example.xibomba,PID:6617 java.lang.IllegalStateException:无法为android执行方法:onClick 在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390) 在android.view.view.performClick上(view.java:4754) 在android.view.view$PerformClick.run(view.java:19605) 位于android.os.Handler.handleCallback(Handler.java:733) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:146) 位于android.app.ActivityThread.main(ActivityThread.java:5752) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 在dalvik.system.NativeStart.main(本机方法) 原因:java.lang.reflect.InvocationTargetException 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 在android.view.view.performClick上(view.java:4754) 在android.view.view$PerformClick.run(view.java:19605) 位于android.os.Handler.handleCallback(Handler.java:733) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:146) 位于android.app.ActivityThread.main(ActivityThread.java:5752) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 在dalvik.system.NativeStart.main(本机方法) 原因:java.lang.IllegalArgumentException:south必须位于[-85.05112877980658,85.05112877980658] 位于org.osmdroid.util.BoundingBox.set(BoundingBox.java:69) 位于org.osmdroid.util.BoundingBox(BoundingBox.java:43) 位于org.osmdroid.bonuspack.location.namignmpoiprovider.getUrlCloseTo(namignmpoiprovider.java:73) 位于org.osmdroid.bonuspack.location.namignmpoiProvider.getPOICloseTo(namignmpoiProvider.java:132) 位于com.example.xibomba.MapaActivity.poinOfInt(MapaActivity.java:193) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 在android.view.view.performClick上(view.java:4754) 在android.view.view$PerformClick.run(view.java:19605) 位于android.os.Handler.handleCallback(Handler.java:733) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:146) 位于android.app.ActivityThread.main(ActivityThread.java:5752) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 在dalvik.system.NativeStart.main(本机方法)


poiProvider.getPOICloseTo
方法的最后一个参数应该以度为单位(文档中说:“到位置的最大距离,以度为单位。请注意,它用于围绕位置构建边界框,而不是圆。”)。您通过了
100
,这是相当高的度数值,因此您可能假设度数为公里或米。尝试较小的值,例如,
0.1
0.2
或类似的值

提供设置公共汽车站地质点的代码


(顺便说一句,搜索“高速公路”将不会得到公共汽车站)

固定格式它仍然不起作用。它给出了相同的null异常