2017-01-28 74 views
0

我正在製作一個應用程序,我需要訪問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

+0

http://stackoverflow.com/questions/8194233/open-street-maps-api-for-android – AnixPasBesoin

+0

@AnixPas Besoin,我已經有庫並將其導入到我的應用程序中。我需要訪問他們的數據庫。 http地址是根據維基百科頁面的API,但是當我點擊它時,它給了我訪問被拒絕的消息。我不明白爲什麼如果它應該是開放的sourse –

+1

有幾個現有的Android應用程序服務完全相同的目的,例如:https://github.com/plusCubed/velociraptor - 我建議研究源代碼並返回更具體的問題。 **重要的一點**:立交橋有一個使用政策,您必須遵守。 OSM API和Overpass API也是兩種完全不同的API。 – mmd

回答

2

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;"; 
} 

這可能有幫助...

+0

感謝您的更新。實際上,我在構建應用程序時瀏覽了Velociraptor中的大部分代碼,並且使用了這段代碼,並且創建了一個查詢和一個HTTP get函數,但api從未向我提供我需要的信息。嘗試從頭到尾獲得正確的查詢。 –