|
POST
|
If you are developing using an emulator (not something I'd recommend), then to get decent performance on the x86 architecture of the emulator (running on your Mac or PC with an Intel or similar processor), you will be wanting to use the x86 ABI. This is why we include this ABI. For deployment to the play store you should be targeting ARM (armeabi-v7a and arm64-v8a). I am aware that very small numbers of low volume production and prototype x86-64bit physical android devices exist, but they are not at all common. However if I've missed something new on the market, please let me know. For now, as far as I'm aware ARM is the main processor in Android devices. This document introduces the subject Reducing your APK size—ArcGIS Runtime SDK for Android | ArcGIS for Developers It talks about emulators (x86) and the techniques for choosing a target release build architecture. Using ABI filters or APK splits are commonly considered options. Most new devices are ARM 64bit today although Google have allowed us to run 32bit binaries until very recently.
... View more
08-25-2019
07:54 AM
|
0
|
3
|
4444
|
|
POST
|
At the moment, we only support the following ABIs: - x86 - armeabi-v7a - arm64-v8a What device are you using which needs x86-64?
... View more
08-23-2019
09:09 AM
|
0
|
0
|
4444
|
|
POST
|
Nathan, We've had 64bit support for native Android development for some months. 100.5 and 100.6 releases have 64bit native binaries included in the SDK. You need to set up your build script to use them. There are various approaches such as ABI Filters and APK splits. I've written the following page which introduces the subject. Reducing your APK size—ArcGIS Runtime SDK for Android | ArcGIS for Developers Follow the links to the Android developers site above which contain all the information you need on deploying apps to the store. Does this help?
... View more
08-23-2019
03:33 AM
|
1
|
2
|
4601
|
|
POST
|
My hardcoded user credentials in the above code sample were just to show the done loading pattern, as I explained this is not recommended in a real app. You shouldn't need to use the rest API directly to use oAuth. Have you seen this samples code: Authenticate with OAuth | ArcGIS for Developers ? Code is on git arcgis-runtime-samples-android/java/authenticate-with-oauth at master · Esri/arcgis-runtime-samples-android · GitHub ChallengeHandlers are what we use for this. You can use the DefaultChallengeHander as in the example linked above, or you could write your own.
... View more
08-16-2019
07:21 AM
|
0
|
2
|
3967
|
|
POST
|
Hi Ramesh, I've had a play with this code and I suspect what is happening is the RouteTask is failing to load so you are going ahead and reading the default parameters on a service which isn't working. You need to perform some more checks in your code. I would also apply the same checks in your iOS app as it would fail in the same way. My Kotlin skills are not perfect so I've tried to explain this in Java code, but the concept will be the same. I have connected to the route service using the following code. This is for demo purposes only and I'd recommend using Oauth instead for obvious reasons: UserCredential userCredential = new UserCredential("username","password");
RouteTask routeTask = new RouteTask("http://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World");
routeTask.setCredential(userCredential); You should then load the route task and listen into the done loading listener: routeTask.loadAsync();
routeTask.addDoneLoadingListener(()-> { At this point in the code you have either loaded the service or something might have gone wrong! You need to check the load status. if (routeTask.getLoadStatus() == LoadStatus.LOADED) {
try {
RouteParameters routeParameters = routeTask.createDefaultParametersAsync().get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
} else {
// failed to load so lets report the error
System.out.println("error " + routeTask.getLoadError().getCause());
}
}); So you can see above that if you have got a successful connection the service you can read the default parameters. If not the error will display on the console. If you directly run the code above which obviously has a poor user credential you will see: -- loaded FAILED_TO_LOAD -- error com.esri.arcgisruntime.io.JsonEmbeddedException: Unable to generate token. If you leave the user credential out you might see -- error com.esri.arcgisruntime.io.JsonEmbeddedException: Token Required The iOS SDK for runtime uses the same pattern for checking the loading of services. This will help to explain it: Loadable pattern for asynchronous resources—ArcGIS Runtime SDK for Android | ArcGIS for Developers
... View more
08-16-2019
05:55 AM
|
0
|
4
|
3967
|
|
POST
|
The geoprocessing option presented here is a good one, that will work fine. Another option you could consider which requires a little more development work would be: - Using a SceneView (3D control), draw a line where you want to do the elevation profile - Densify the line to get intermediate points - For each point along the line query the elevation to get the height - Take the collection of heights and display them in a 3rd party graph control This sample code shows how you can get the elevation at a single point: arcgis-runtime-samples-java/src/main/java/com/esri/samples/scene/get_elevation_at_a_point at f19449c5ff770703191a33bbb14…
... View more
08-15-2019
08:07 AM
|
1
|
1
|
3187
|
|
POST
|
You are working with a feature service which will have a set schema. The service will be backed by a relational database which has tables which contain fields which will map to the attributes in your feature. If an attribute doesn't exist in the feature, then you can't add them. This is how databases work; you can't change the schema at run-time. You should probably take a step back and think about what you are trying to do exactly. Can you design a feature service which has the correct attributes? If your data is only needed for the duration of your application running and doesn't need to be persisted on a server / database then you could consider using Graphics which are stored in GraphicsOverlays. These are totally flexible and you can add whatever attributes you like, but they are not persisted after your application stops unless you write your own logic for this. Information on Graphics and GraphicsOverlays: https://developers.arcgis.com/android/latest/guide/add-graphics-overlays-to-your-app.htm https://developers.arcgis.com/android/latest/guide/add-graphics-and-text-to-graphics-overlays.htm
... View more
08-14-2019
04:32 AM
|
0
|
0
|
1438
|
|
POST
|
The current area covered by your mapview is the ViewPoint. You can read the Viewpoint into an Envelope geometry. From that Envelope you can call getCenter() which is the centre point of your screen Envelope extent = (Envelope) mapView.getCurrentViewpoint(Viewpoint.Type.BOUNDING_GEOMETRY).getTargetGeometry();
System.out.println("extent " + extent.toString());
System.out.println("centre " + extent.getCenter().toString()); Is this what you are after?
... View more
08-13-2019
06:31 AM
|
0
|
0
|
888
|
|
POST
|
Discussing the best solution with the team... watch this space!
... View more
08-13-2019
06:17 AM
|
1
|
1
|
3187
|
|
POST
|
Just want to make sure you are using the ArcGIS Runtime SDK for Java as in this: https://developers.arcgis.com/java/ The reason I ask is that there isn't a getPolygon method on the JavaFX control in this API. Also want to double check what you mean by "drag and drop"? Are you just referring to panning the map to another location? If you are after the current extent of you map, then you will be interested in the map's viewpoint. The code below shows how you could use it. mapView.addDrawStatusChangedListener(listener -> {
System.out.println("draw status" + listener.getDrawStatus());
Envelope extent = (Envelope) mapView.getCurrentViewpoint(Viewpoint.Type.BOUNDING_GEOMETRY).getTargetGeometry();
if (listener.getDrawStatus() == DrawStatus.COMPLETED) {
System.out.println("extent " + extent.toString());
}
}); Does this help?
... View more
08-12-2019
07:14 AM
|
0
|
0
|
770
|
|
POST
|
How are you adding your attributes? Do they properly match the specification of your feature schema? This doc might help:https://developers.arcgis.com/android/latest/guide/edit-features.htm There is also a sample showing this working: https://developers.arcgis.com/android/latest/java/sample-code/add-features-feature-service/ Let me know if this helps.
... View more
08-12-2019
06:40 AM
|
0
|
1
|
1438
|
|
POST
|
If you have a FeatureQueryResult you are very close! So the FeatureQueryResult will allow you to iterate over a collection of Features. For each feature, you will be able to get at the geometry. Remember that once you've performed your getGeomertry, you will need some logic to downcast to the actual geometry type. Geometry is the base class, and this will downcast to something like a Point, Polyline or Polygon for example. It may help to look at the GeometryType in the FeatureQueryResult to help with identifying the type of geometry. Does that help?
... View more
07-29-2019
08:11 AM
|
2
|
5
|
2224
|
|
POST
|
How are you using the spatial reference? I'm assuming you map is in another spatial reference and you are trying to project a point in your custom spatial reference. Have you looked at the GeometryEnging.project methods? Need a bit more information on what you are doing here to help.
... View more
07-21-2019
10:48 AM
|
0
|
1
|
1217
|
|
POST
|
The workflow that we encourage is where you take your entire map offline. This is where you map (basemap and operational layers) are hosted in ArcGIS Online. This is introduced here: https://developers.arcgis.com/android/latest/guide/work-with-offline-maps.htm More detailed information including use of parameters here: https://developers.arcgis.com/android/latest/guide/take-map-offline-ondemand.htm https://developers.arcgis.com/android/latest/guide/take-map-offline-preplanned.htm There is of course more fine grained API if you are only working with the basemap and not using a webmap. I don't have an Android sample showing this, but here are a couple for JavaFX which you can easily adapt for Android: https://developers.arcgis.com/java/latest/sample-code/export-tiles.htm https://developers.arcgis.com/java/latest/sample-code/export-vector-tiles.htm The parameters are explained in the JavaDoc and pretty simple: https://developers.arcgis.com/android/latest/api-reference/reference/com/esri/arcgisruntime/tasks/tilecache/ExportTileCacheParameters.html https://developers.arcgis.com/android/latest/api-reference/reference/com/esri/arcgisruntime/tasks/vectortilecache/ExportVectorTilesParameters.html The API makes it nice and easy, but if you want to understand what is happening under the covers in the Rest API then you can look at this: https://developers.arcgis.com/rest/ Regarding coordinate systems, the data will be exported in the coordinate system of the basemap. Typically these are Web Mercator. You can of course pass in a parameter for the extent of the export area in another spatial reference (WGS84 lat, long for example), BUT make sure that you create your geometry stating the spatial reference! If you don't it will assume the geometry is the same as the basemap and will give unwanted results! Does this help
... View more
07-15-2019
02:45 AM
|
0
|
4
|
1510
|
|
POST
|
Ashun, Is there any way you can share your data? If I could connect to the service I'd be able to reproduce it. The only other thing I can think of just now is setting the render mode for the feature layer like this: featureLayer.setRenderingMode(FeatureLayer.RenderingMode.DYNAMIC); This would generally improve the rendering experience of your polygons but if you don't have a good graphics card or your polygons contain lots of vertices then you might have issues with hardware resources. https://developers.arcgis.com/java/latest/api-reference/reference/com/esri/arcgisruntime/layers/FeatureLayer.RenderingMode.html Was also wondering what version of the SDK you are using. Are you on the latest 100.5? Mark
... View more
07-11-2019
05:14 AM
|
0
|
0
|
1723
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 05-12-2026 01:35 AM | |
| 2 | 05-07-2026 06:59 AM | |
| 1 | 08-13-2024 05:17 AM | |
| 1 | 07-10-2024 01:50 AM | |
| 1 | 04-22-2024 01:21 AM |
| Online Status |
Offline
|
| Date Last Visited |
05-13-2026
06:46 AM
|