我一直努力在两点之间创建路线(startPoint,endPoint)。但我收到以下错误:无法创建从一个点到另一个点的路线ArcGIS Android
“停止”中的位置“位置1”未被定位。 “停止”中的位置“位置2”未被定位。至少需要2个有效的站点。 “停止”不包含任何路线的有效输入。
我已经在gis.stackexchange.com和geonet.esri.com上发布了这个问题,但没有得到答复,只有一个没有帮助。
我的代码:
private final String routeTaskURL = "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/NAServer/Route";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.map);
mMapView.enableWrapAround(true);
new Thread(new Runnable() {
@Override
public void run() {
try {
UserCredentials userCredentials = new UserCredentials();
userCredentials.setUserToken(token, clientID);
RouteTask routeTask = RouteTask.createOnlineRouteTask(routeTaskURL, userCredentials);
RouteParameters routeParameters = routeTask.retrieveDefaultRouteTaskParameters();
NAFeaturesAsFeature naFeatures = new NAFeaturesAsFeature();
Point startPoint = new Point(36.793653, -119.866896);
Point stopPoint = new Point(36.795488, -119.853345);
StopGraphic startPnt = new StopGraphic(startPoint);
StopGraphic stopPnt = new StopGraphic(stopPoint);
naFeatures.setFeatures(new Graphic[] {startPnt, stopPnt});
routeParameters.setStops(naFeatures);
RouteResult mResults = routeTask.solve(routeParameters);
List<Route> routes = mResults.getRoutes();
System.out.println(mResults.getRoutes());
Route mRoute = routes.get(0);
Geometry geometry = mRoute.getRouteGraphic().getGeometry();
Graphic symbolGraphic = new Graphic(geometry, new SimpleLineSymbol(Color.BLUE, 3));
mGraphicsLayer.addGraphic(symbolGraphic);
System.out.println(mResults.getStops());
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
我在网上搜索。许多开发人员都面临着这个问题。我试过所有的解决方案,但都没有工作。我从ArcGIS Routing示例应用程序获取了routeTaskURL。 ArcGIS地图的documentation中给出的链接给我403错误,如果我在浏览器中打开它。
注意:“token”和“clientID”是在第一步中声明的,它们都是从注册我的应用程序的ArcGIS开发人员控制台中获取的。
有什么建议吗?
谢谢你解决了我的问题。但你能看看我的更新代码,看看为什么路线不显示在地图上。我已经添加了所有必要的图形图层。 代码链接:http://paste.ubuntu.com/14856322/ –
我很高兴工作。你应该创建一个新的问题。我马上去看看。 –