我正在製作一個應用程序,我需要訪問OSM數據庫中的maxspeed
。我在OSM wiki http://wiki.openstreetmap.org/wiki/Overpass_API中找到api http://overpass-api.de/api/
,但是我找不到訪問它的方法,並且當我在線搜索api時,它重新發送Forbidden
錯誤。如何訪問OSM API
如何編程我的應用程序以訪問api,以便我可以查詢數據庫json以查找我的android應用程序的maxspeed
。
我正在製作一個應用程序,我需要訪問OSM數據庫中的maxspeed
。我在OSM wiki http://wiki.openstreetmap.org/wiki/Overpass_API中找到api http://overpass-api.de/api/
,但是我找不到訪問它的方法,並且當我在線搜索api時,它重新發送Forbidden
錯誤。如何訪問OSM API
如何編程我的應用程序以訪問api,以便我可以查詢數據庫json以查找我的android應用程序的maxspeed
。
OSMBonusPack(osmdroid的一個插件庫)有一個OverpassAPIProvider,可以使用,沒有你的「禁止」問題。
如果它不完全符合你的需要,看源代碼應該可以幫助你實現你想要的。
編輯
使用OverpassAPI可能不是簡單的得到 「當前」 MAXSPEED ...
繼MMD的建議,這裏是piece of code from velociraptor建立自己的OverpassAPI請求字符串:
private String getOsmQuery(Location location) {
return "[out:json];" +
"way(around:15,"
+ location.getLatitude() + ","
+ location.getLongitude() +
")" +
"[\"highway\"];out body geom;";
}
這可能有幫助...
感謝您的更新。實際上,我在構建應用程序時瀏覽了Velociraptor中的大部分代碼,並且使用了這段代碼,並且創建了一個查詢和一個HTTP get函數,但api從未向我提供我需要的信息。嘗試從頭到尾獲得正確的查詢。 –
http://stackoverflow.com/questions/8194233/open-street-maps-api-for-android – AnixPasBesoin
@AnixPas Besoin,我已經有庫並將其導入到我的應用程序中。我需要訪問他們的數據庫。 http地址是根據維基百科頁面的API,但是當我點擊它時,它給了我訪問被拒絕的消息。我不明白爲什麼如果它應該是開放的sourse –
有幾個現有的Android應用程序服務完全相同的目的,例如:https://github.com/plusCubed/velociraptor - 我建議研究源代碼並返回更具體的問題。 **重要的一點**:立交橋有一個使用政策,您必須遵守。 OSM API和Overpass API也是兩種完全不同的API。 – mmd