如何访问 OSM API
How to access the OSM API
我正在制作一个应用程序,我需要在其中访问 OSM 数据库中的 maxspeed
。我在 OSM wiki http://wiki.openstreetmap.org/wiki/Overpass_API 中找到了 api http://overpass-api.de/api/
,但我找不到访问它的方法,当我在线搜索 api 时,它返回了 Forbidden
错误。
如何对我的应用程序进行编程以访问 api,以便我可以查询数据库 json 为我的 android 应用程序找到 maxspeed
。
OSMBonusPack(osmdroid 的一个插件库)有一个 OverpassAPIProvider,可以使用,没有你的 "Forbidden" 问题。
如果它不能完全满足您的需要,查看源代码应该可以帮助您实现您想要的。
编辑
使用 OverpassAPI 可能无法直接获得 "current" 最大速度 ...
根据 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;";
}
这可能会有所帮助...
我正在制作一个应用程序,我需要在其中访问 OSM 数据库中的 maxspeed
。我在 OSM wiki http://wiki.openstreetmap.org/wiki/Overpass_API 中找到了 api http://overpass-api.de/api/
,但我找不到访问它的方法,当我在线搜索 api 时,它返回了 Forbidden
错误。
如何对我的应用程序进行编程以访问 api,以便我可以查询数据库 json 为我的 android 应用程序找到 maxspeed
。
OSMBonusPack(osmdroid 的一个插件库)有一个 OverpassAPIProvider,可以使用,没有你的 "Forbidden" 问题。
如果它不能完全满足您的需要,查看源代码应该可以帮助您实现您想要的。
编辑
使用 OverpassAPI 可能无法直接获得 "current" 最大速度 ...
根据 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;";
}
这可能会有所帮助...