2016-02-01 26 views
1

我一直努力在两点之间创建路线(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开发人员控制台中获取的。

有什么建议吗?

回答

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)值。

+0

谢谢你解决了我的问题。但你能看看我的更新代码,看看为什么路线不显示在地图上。我已经添加了所有必要的图形图层。 代码链接:http://paste.ubuntu.com/14856322/ –

+0

我很高兴工作。你应该创建一个新的问题。我马上去看看。 –

相关问题