【问题标题】:How can OSMdroid and OSMBonusPack use OpenStreetMap's Barrier?OSMdroid 和 OSMBonusPack 如何使用 OpenStreetMap 的 Barrier?
【发布时间】:2014-05-04 17:04:24
【问题描述】:

我目前正在 Android Studio 中开发一款 GPS 应用程序,该应用程序会将我从当前位置路由到设定的目的地。 事先,沿着这条路,我想让一些街道和路线不可用强制 GPS 引导我最短距离而不使用这些不可用路线。

例如,我正从 A 向 B 行驶。在最短的正常路线之间,我要经过一座桥。这座桥已经倒塌,并用一个大红十字形状的 MapOverlayItem 进行标记。我希望 GPS 知道桥已损坏并引导我前往另一条路线。

我使用 OSMdroid 进行地图,使用 OSMBonusPack 进行路由。 我知道 OSM 拥有我 need 的功能,但我不确定如何将它们一起使用。

【问题讨论】:

    标签: android map gps routes openstreetmap


    【解决方案1】:

    我的一个朋友解决了它。

    @Override
        protected Integer doInBackground(GeoPoint... geoPoints) {
            String url = getRoadUrl(geoPoints[0]);
            HttpConnection connection = new HttpConnection();
            connection.doGet(url);
            String s = connection.getContentAsString();
            String[] split = s.split("\"linkId\":");
            split = split[1].split(",");
    
            return Integer.parseInt(split[0]);
        }
    

    通过查找路线的 ID,您可以明确要求它不要按该道路计算。上面的代码只是一个sn-p来展示我们如何要求一条不被使用的路。询问您是否需要更多描述性的版本。

    【讨论】:

      【解决方案2】:

      不幸的是,我认为这是不可能的。据我所知,OSMBonusPack 本身并不做路由(离线路由),而是使用 MapQuest(在线路由)。因此,您不能自己添加任意障碍。唯一的解决方案是将offline router 用于android

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多