如何访问 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;";
}

这可能会有所帮助...