我有一个项目,我有一个来源和一个目的地,但在两者之间可以有任意数量的停止点。我需要显示从源到目的地的路线,覆盖所有停靠点。
我开始在两点之间找到路线并且工作正常。但是,当我在它之间添加一个额外的点时,会出现错误说
位置"位置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 但我无法从中获得任何解决方案。请帮忙。提前谢谢。