无法创建从一个点到另一个点的路线ArcGIS Android

时间:2016-02-01 10:19:26

标签: android routing arcgis

我一直在努力创建两点之间的路线( startPoint,endPoint )。但我收到以下错误:

位置"位置1" in" Stops"是不定位的。位置"位置2" in" Stops"是不定位的。至少需要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 Sample应用程序获得了 routeTaskURL 。如果我在浏览器中打开它,则在 documentation 的ArcGIS地图中给出的链接会给我403错误。

注意:&#34;令牌&#34;和&#34; clientID&#34;在第一步中声明它们,它们都来自我注册我的应用程序的ArcGIS开发人员控制台。

任何建议?

1 个答案:

答案 0 :(得分:1)

切换您的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)值。