2016-10-11 6 views
0

Я использую этот учебник: https://github.com/MKergall/osmbonuspack/wiki/Tutorial_2OpenStreetMap POIs с Nominatim - ошибка

я поставил этот код в моем проекте:

NominatimPOIProvider poiProvider = new NominatimPOIProvider(); 
ArrayList<POI> pois = poiProvider.getPOICloseTo(startPoint, "cinema", 50, 0.1); 

Но я получаю некоторые ошибки:
NominatimPOIProvider (String) в NominatimPOIProvider не может быть применен к()

и

java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/Request$Builder; at org.osmdroid.bonuspack.utils.HttpConnection.doGet(HttpConnection.java:65) at org.osmdroid.bonuspack.utils.BonusPackHelper.requestStringFromUrl(BonusPackHelper.java:70) at org.osmdroid.bonuspack.location.NominatimPOIProvider.getThem(NominatimPOIProvider.java:83) at org.osmdroid.bonuspack.location.NominatimPOIProvider.getPOICloseTo(NominatimPOIProvider.java:133) at x.x.UserArea.onCreate(UserArea.java:152) at android.app.Activity.performCreate(Activity.java:6876) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) at android.app.ActivityThread.access$1100(ActivityThread.java:222) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:7229) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.Request$Builder"

ответ

1

Ошибка:

NominatimPOIProvider (String) in NominatimPOIProvider cannot be applied to()

вызвано отсутствием непараметрического конструктора для NominatimPOIProvider. Вам необходимо указать агент пользователя, который будет использоваться в заголовках, отправленных поставщику услуг Nominatim. Более подробную информацию можно найти в this issue и в usage policy of openstreetmap.

использовать что-то вроде:

NominatimPOIProvider poiProvider = new NominatimPOIProvider("YourUserAgentSpecificForYourApplicationOrWhatever");