无法创建从一点到另一点的路径 ArcGIS Android
Cannot create route from one point to another ArcGIS Android
我一直在努力创建两点之间的路线(起点,终点)。但我收到以下错误:
"Stops" 中的位置 "Location 1" 未定位。 "Stops" 中的位置 "Location 2" 未定位。至少需要 2 个有效停靠站。 "Stops" 不包含任何路线的有效输入。
我已经在 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();
}
我已经在网上搜索过了。许多开发人员 were/are 面临这个问题。我已经尝试了所有的解决方案,但其中 none 行得通。我从 ArcGIS Routing Sample 应用程序中获得了 routeTaskURL。 ArcGIS 地图 documentation 中给出的 link 如果我在浏览器中打开它会出现 403 错误。
注意:"token" 和 "clientID" 是在第一步中声明的,它们都取自我注册应用程序的 ArcGIS 开发人员控制台。
有什么建议吗?
您的 X 和 Y 值已调换。更改为:
Point startPoint = new Point(-119.866896, 36.793653);
Point stopPoint = new Point(-119.853345, 36.795488);
查看Point
class documentation了解构造函数参数是(x, y),而不是(y, x)。您正在使用的路线服务具有默认空间参考 4326,这是未投影的经度和纬度。 -119.866896 和 -119.853345 不是有效的纬度 (y) 值,但它们是有效的经度 (x) 值。
我一直在努力创建两点之间的路线(起点,终点)。但我收到以下错误:
"Stops" 中的位置 "Location 1" 未定位。 "Stops" 中的位置 "Location 2" 未定位。至少需要 2 个有效停靠站。 "Stops" 不包含任何路线的有效输入。
我已经在 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();
}
我已经在网上搜索过了。许多开发人员 were/are 面临这个问题。我已经尝试了所有的解决方案,但其中 none 行得通。我从 ArcGIS Routing Sample 应用程序中获得了 routeTaskURL。 ArcGIS 地图 documentation 中给出的 link 如果我在浏览器中打开它会出现 403 错误。
注意:"token" 和 "clientID" 是在第一步中声明的,它们都取自我注册应用程序的 ArcGIS 开发人员控制台。
有什么建议吗?
您的 X 和 Y 值已调换。更改为:
Point startPoint = new Point(-119.866896, 36.793653);
Point stopPoint = new Point(-119.853345, 36.795488);
查看Point
class documentation了解构造函数参数是(x, y),而不是(y, x)。您正在使用的路线服务具有默认空间参考 4326,这是未投影的经度和纬度。 -119.866896 和 -119.853345 不是有效的纬度 (y) 值,但它们是有效的经度 (x) 值。