如何在Android中使用ArcGis添加多个停止点进行路由

时间:2016-10-24 09:33:04

标签: java android routing maps arcgis

我有一个项目,我有一个来源和一个目的地,但在两者之间可以有任意数量的停止点。我需要显示从源到目的地的路线,覆盖所有停靠点。

我开始在两点之间找到路线并且工作正常。但是,当我在它之间添加一个额外的点时,会出现错误说

  

位置"位置3" in" Stops"是不定位的。位置"位置2" in" Stops"是在一个软限制的网络元素上。无法保留最后位置"位置3" in" Stops"因为它无效。 "停止"不包含任何路线的有效输入。

我尝试使用谷歌搜索此错误但无法找到任何结果。

我认为位置3不是有效的位置,但是当我尝试在源和位置3之间找到路线时,它可以正常工作。我不确定我做错了什么。下面我附上了给出路线结果的功能。

private void QueryDirections(final ArrayList<Point> stopPoints) {

    dialog = ProgressDialog.show(RoutingSample.this, "Routing Sample",
            "Calculating route...", true);
    Thread t = new Thread() {
        @Override
        public void run() {
            try {
                // Start building up routing parameters
                NAFeaturesAsFeature stops = new NAFeaturesAsFeature();
                ArrayList<StopGraphic> stopGraphics = new ArrayList<StopGraphic>();
                for(Point pt : stopPoints){
                    stopGraphics.add(new StopGraphic(pt));
                }
                Graphic[] stopGraphicsPrim = new Graphic[stopGraphics.size()];
                stopGraphicsPrim = stopGraphics.toArray(stopGraphicsPrim);
                stops.setSpatialReference(wm);
                stops.setFeatures(stopGraphicsPrim);
                stops.setCompressedRequest(true);
                RouteParameters rp = mRouteTask
                        .retrieveDefaultRouteTaskParameters();
                rp.setStops(stops);
                rp.setReturnDirections(true);
                rp.setFindBestSequence(true);
                rp.setPreserveFirstStop(true);
                rp.setOutSpatialReference(wm);

                // I get error here. When routeTast.solve is called. Please help

                mResults = mRouteTask.solve(rp);
                mHandler.post(mUpdateResults);
            } catch (Exception e) {
                mException = e;
                e.printStackTrace();
                dialog.dismiss();
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(getApplicationContext(),"directions cannot be found ",Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }
    };
    // Start the operation
    t.start();

}

我指的是一篇类似的帖子Multiple Routing 但我无法从中获得任何解决方案。请帮忙。提前谢谢。

0 个答案:

没有答案