Android 如何使用osmdroid namignmpoiProvider让一些公交车站靠近我的位置
我正试图使用osmdroidAndroid 如何使用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
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异常