POST
|
We are trying to fetch origin cost matrix using this API Origin Destination Cost Matrix service—ArcGIS REST API: Directions and Routing Services | ArcGIS for Developers However as this is not there in the SDK we are calling rest api to fetch the data. This API results in a Job and we have to poll for the job status. Instead of writing our own code for it, we would like to create AGSJob and use the default functionality, however we do not see any mechanism to create AGSJob from an URL. Is there a way to solve this?
... View more
12-12-2019
02:51 AM
|
0
|
1
|
437
|
POST
|
We are using Online services to fetch routes. We have an application where we find etas and routes in parallel for multiple locations. Some of the locations are far off, and we see that Route comes after a long time. When we are trying to solve many routes in parallel, we find that RouteTask is taking time (especially with far away locations) Set of Questions Is there away to execute RoueTasks in parallel? Is it possible to prioritise among the parallel RouteTasks? Is there a way to run them in separate AGSOperationQueue? For some routes we only want ETAs, what should be the default params for only fetching ETAs without directions and rest of the details? We have created separate RouteTasks for etas and calculation of detail routes - This is not helping our case. What could be the reason?
... View more
09-19-2019
10:45 AM
|
0
|
1
|
492
|
POST
|
We would like to use client-id and client-secret which are not supported by OAuthConfiguration in Android ArcGIS SDK and ArcGIS IOS SDK but are supported in .NET SDK and Rest Api. Only way we can achieve this is by using RestApi to get the token and assign the token through UserCredential class and assign this credential object to RouteTask However this is not working, LoadAsync throws an Error. Any suggestions on how to manage this?
... View more
08-16-2019
10:35 AM
|
0
|
1
|
2252
|
POST
|
Hi Mark, Thanks for the feedback, have modified the code. Kindly note that in the code below I am passing on the token (hard coded for now generated using the API https://www.arcgis.com/sharing/rest/oauth2/token However - loadAsync fails with error saying unable to generate the token. We do not want to hardcode user name and password. Instead would like to use client_id, and client_secret. As this is not available in Android SDK, we are using rest api to generate the token. We are creating UserCredential object with token. Unfortunately UserCredential doesn't take empty referrer unlike iOS. What should be specified for referrer. // Find a route from mStart point to mEnd point.
private void findRoute() {
String routeServiceURI = getResources().getString(R.string.routing_url);
final RouteTask solveRouteTask = new RouteTask(getApplicationContext(), routeServiceURI);
credential = UserCredential.createFromToken("Q88bbFWwQyx4vuo37xAArEfTjiguvI5kJhm5E4ZJlroboCSX7omF2I-kReJU1dHbDeJz0dWK5CrwO0Jp_bg2--BB_4zZ-D-7mnUcn0tYO5-oPKRbcl3s3GJDvvJnY7l_5h_zHOhHftzl17lmUnVaHw..", "ArcGIS.com");
AuthenticationManager.setAuthenticationChallengeHandler(this);
solveRouteTask.setCredential(credential);
solveRouteTask.loadAsync();
solveRouteTask.addDoneLoadingListener(() -> {
if (solveRouteTask.getLoadStatus() == LoadStatus.LOADED) {
final ListenableFuture<RouteParameters> routeParamsFuture = solveRouteTask.createDefaultParametersAsync();
routeParamsFuture.addDoneListener(() -> {
try {
RouteParameters routeParameters = routeParamsFuture.get();
List<Stop> stops = new ArrayList<>();
stops.add(new Stop(mStart));
stops.add(new Stop(mEnd));
routeParameters.setStops(stops);
final ListenableFuture<RouteResult> routeResultFuture = solveRouteTask.solveRouteAsync(routeParameters);
routeResultFuture.addDoneListener(() -> {
try {
RouteResult routeResult = routeResultFuture.get();
Route firstRoute = routeResult.getRoutes().get(0);
Polyline routePolyline = firstRoute.getRouteGeometry();
SimpleLineSymbol routeSymbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.BLUE, 4.0f);
Graphic routeGraphic = new Graphic(routePolyline, routeSymbol);
mGraphicsOverlay.getGraphics().add(routeGraphic);
} catch (InterruptedException | ExecutionException e) {
showError("Solve RouteTask failed " + e.getMessage());
}
});
} catch (InterruptedException | ExecutionException e) {
showError("Cannot create RouteTask parameters " + e.getMessage());
}
});
} else {
showError("Unable to load RouteTask " + solveRouteTask.getLoadError().getCause().toString());
}
});
} @Override
public AuthenticationChallengeResponse handleChallenge(AuthenticationChallenge authenticationChallenge) {
return new AuthenticationChallengeResponse(AuthenticationChallengeResponse.Action.CONTINUE_WITH_CREDENTIAL, credential);
} Is there a mechanism to pass token generated from Rest api to RouteTask ?
... View more
08-16-2019
06:16 AM
|
0
|
3
|
2252
|
POST
|
We are using ARCGIS Android SDK 100.5 We try to fetch the token using rest api https://www.arcgis.com/sharing/rest/oauth2/token and create UserCredentials object using token and referrer (unfortunately referrer cannot be nil in Android unlike IOS). We are assigning the credentials to an online RouteTask val routeTask = RouteTask(appContext, "http://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World") val credential = UserCredential.createFromToken(accessToken, "www.arcgis.com") routeTask.credential = credential We are getting exception : "ArcGISRuntimeException: Cannot call this method in this context" whenever we try to get route parameters from routeTask. for this method val routeParameters = routeTask?.createDefaultParametersAsync()?.get() Please note that we are following similar approach in IOS and it is working fine. Any hints or suggestion on why this exception is coming?
... View more
08-15-2019
11:07 PM
|
1
|
5
|
2885
|
Title | Kudos | Posted |
---|---|---|
1 | 08-15-2019 11:07 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|