|
POST
|
Chopping into smaller tiles and building pyramids on the raster data will help too. If you are however just using the raster data as a basemap, then do consider making a tile package. To make things easy, make sure you use the ONLINE tiling scheme. https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/create-map-tile-package.htm
... View more
03-18-2021
02:20 AM
|
1
|
0
|
4378
|
|
POST
|
I've tried out your code with the sample data and it's displaying for me: I did however want to make sure I'd read your message correctly. Is your file 100Gb (Gigabytes) in size? If it really is that big, we might need to come up with a strategy for chopping it up.
... View more
03-17-2021
10:55 AM
|
1
|
0
|
4387
|
|
POST
|
The architecture work we are doing for Game Engine support will certainly make this easier for us in the future. I will certainly feed back your interesting in having animated symbols as this helps us to prioritise our development efforts. In the meantime you could try a workaround which would be to have multiple model symbols set up in a unique value renderer. This way you would make a crude animation by changing a feature or graphic attribute to display a different phase of a basic animation.
... View more
03-16-2021
02:08 AM
|
0
|
0
|
2336
|
|
POST
|
Tile packages (.tpk) are highly optimised file formats for showing basemap data. They are split up into many small tiles of data and for each level of detail there is a set of tiles which are designed to work at a given scale range. If you've got a huge amount of data then these are the best way to go. Remember using ArcGIS Pro you can create your own. We do however have support for adding most raster formats of data onto a map too. The data does need to be geo-referenced raster data which means the file has information about the geographic location of the corners of the raster data. This tells us where to display it. If your data is not geo-referenced then I can help you with this if you have access to ArcMap or ArcGIS Pro. So assuming you have geo-referenced raster data data you can add your own raster layers. Will support a load of formats such as ASRP, CRF, DTED, GeoTIFF/TIFF, HFA, HRE, IMG, JPEG, JPEG2000, NITF, PNG, RPF, SRTM (HGT), USGS DEM. There is a simple sample which shows you how to add a raster layer from a single file: https://github.com/Esri/arcgis-runtime-samples-java/tree/master/raster/raster-layer-file Does this help?
... View more
03-13-2021
04:03 AM
|
1
|
0
|
4415
|
|
POST
|
Hi Norbert, As well as dae files we also support 3D Max too (.3ds) At the moment I don't believe we have any support for animated symbols, but I will check if there is anything in the pipeline. As you say the Bristol aircraft in the samples is a static model which I created using Blender. We'd be interested in hearing more about your use-case for animated symbols. I wonder if our Game Engine API developments would be of interest to you.
... View more
03-13-2021
03:40 AM
|
1
|
1
|
2358
|
|
POST
|
You are correct Android doesn't have the GPXLocationDataSource class yet, but there is an easy way of achieving the same. The GPX file is just an XML file, so if you can open it to get your coordinates you can pass these into a SimulatedDataSource which will show the positions on your LocationDisplay. There isn't a specific Android sample for using the SimulatedLocationSource class, but you can take a look at the JavaFX (ArcGIS Runtime for Java) sample and you will see how to use it. Under the covers the Android and Java APIs share quite a lot of the same codebase. https://github.com/Esri/arcgis-runtime-samples-java/tree/9b611cf5ed977b5c7b33a275d6c06a19838e7b38/map_view/show-location-history Does this help?
... View more
03-13-2021
03:15 AM
|
0
|
0
|
2414
|
|
POST
|
The sample code uses a dataset which I believe only covers the San Diego area. It's a demo service and not designed for production use. If you want to perform routing operations in other areas you will need to use a different service. You have a couple of options here, you can either make your own data, or you can use one of the services we host. There is lots of information about it here: https://developers.arcgis.com/android/route-and-directions/ Does this help?
... View more
03-01-2021
02:01 PM
|
0
|
0
|
1303
|
|
POST
|
There are 2 rendering modes for graphics overlays. The default is "Dynamic" which gives you a nice user experience when zooming in and out where the symbol size is animated as you change scale. This is however expensive on GPU resources so if you've got almost 2 million graphics you will run out of resources. The other mode is "Static" which I recommend if you have very large numbers of graphics. It doesn't look as nice when you zoom in or out, but it makes better use of our hardware resources. I've tried this out in a little app I've written just now. In dynamic mode it failed to render all points correctly, but switching to static makes it draw correctly. private void addLotsOfGraphics() {
// static rendering is best for very large number of graphics
graphicsOverlay = new GraphicsOverlay(GraphicsOverlay.RenderingMode.STATIC);
mapView.getGraphicsOverlays().add(graphicsOverlay);
Collection pointsList = new ArrayList<>();
Random random = new Random();
// using a simple marker symbol and applying this to a renderer for graphics overlay
SimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.CIRCLE, 0xFF00FF00, 10);
SimpleRenderer simpleRenderer = new SimpleRenderer(simpleMarkerSymbol);
graphicsOverlay.setRenderer(simpleRenderer);
// add lots of graphics in random places
for (int i=1; i<2000000; i++) {
// random point
Point point = new Point(random.nextDouble() * 10000000, random.nextDouble() * 10000000);
Graphic graphic = new Graphic(point);
pointsList.add(graphic);
}
// add the graphics to the graphics overlay
graphicsOverlay.getGraphics().addAll(pointsList);
} Does this help?
... View more
02-24-2021
02:31 AM
|
0
|
1
|
1861
|
|
POST
|
Take a look at PictureMarkerSymbol https://developers.arcgis.com/android/api-reference/reference/com/esri/arcgisruntime/symbology/PictureMarkerSymbol.html This sample shows how they work. https://github.com/Esri/arcgis-runtime-samples-android/tree/master/java/picture-marker-symbols
... View more
02-19-2021
05:39 AM
|
0
|
0
|
2216
|
|
POST
|
You can create a new geometry with represents the intersection of your polygons. Take a look at https://developers.arcgis.com/java/api-reference/reference/com/esri/arcgisruntime/geometry/GeometryEngine.html#intersection(com.esri.arcgisruntime.geometry.Geometry,com.esri.arcgisruntime.geometry.Geometry) Or maybe this may help: https://developers.arcgis.com/java/api-reference/reference/com/esri/arcgisruntime/geometry/GeometryEngine.html#intersections(com.esri.arcgisruntime.geometry.Geometry,com.esri.arcgisruntime.geometry.Geometry)
... View more
02-17-2021
09:15 AM
|
1
|
0
|
3928
|
|
POST
|
You will find it much easier if you convert your point which you want as the centre of your square into a projected coordinate system. Once you've done that you can offset in metres from the location and things are much easier to understand. SimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, 0xFF00FF00, 3);
// a point in a field near London, UK
wgs84Point = new Point(0,51, SpatialReferences.getWgs84());
// convert wgs84 (lat / long) into projected coordinate system
Point wmPoint = (Point) GeometryEngine.project(wgs84Point, SpatialReferences.getWebMercator());
// size of your square in metres
double size = 100;
// easier logic for point of square with offsets in metres
Point p1 = new Point(wmPoint.getX() + (size / 2), wmPoint.getY() + (size /2), SpatialReferences.getWebMercator());
Point p2 = new Point(wmPoint.getX() + (size / 2), wmPoint.getY() - (size /2), SpatialReferences.getWebMercator());
Point p3 = new Point(wmPoint.getX() - (size / 2), wmPoint.getY() - (size /2), SpatialReferences.getWebMercator());
Point p4 = new Point(wmPoint.getX() - (size / 2), wmPoint.getY() + (size /2), SpatialReferences.getWebMercator());
// make polygon from points
PointCollection pointCollection = new PointCollection(SpatialReferences.getWebMercator());
pointCollection.add(p1);
pointCollection.add(p2);
pointCollection.add(p3);
pointCollection.add(p4);
Polygon square = new Polygon(pointCollection);
// Graphic and add to graphics overlay to display it
Graphic squareGraphic = new Graphic(square, simpleLineSymbol);
graphicsOverlay.getGraphics().add(squareGraphic); Not a pretty bit of code, but it should point you in the right direction. Does this help
... View more
02-16-2021
09:40 AM
|
0
|
1
|
1224
|
|
POST
|
I'm not sure if this relevant to your app, but did you know you can draw domes / spheres in your 3D app like this: You can draw one of these with the following code: // dome symbol
SimpleMarkerSceneSymbol dome = new SimpleMarkerSceneSymbol(SimpleMarkerSceneSymbol.Style.SPHERE,0x400000FF, 1000, 1000,1000, SceneSymbol.AnchorPosition.CENTER);
// graphic for the dome
Graphic domeGraphic = new Graphic(wgs84Point, dome);
graphicsOverlay.getGraphics().add(domeGraphic);
... View more
02-16-2021
02:58 AM
|
1
|
2
|
3965
|
|
POST
|
The Buffer operation will help you here: https://developers.arcgis.com/java/api-reference/reference/com/esri/arcgisruntime/geometry/GeometryEngine.html#buffer(com.esri.arcgisruntime.geometry.Geometry,double) However you need to be careful when using this in 3D if your location is in WGS84 (latitude / longitude) as the buffer used the unit of measure associated with the spatial reference of your point. This will be in degrees is its WGS84 and you may wonder why your buffers are quite large! The trick is to work in a Projected Coordinate system for this so you can use metres as your unit of measure. So imagine you've got a point collected from a click even on your scene, you would convert this before using a buffer: // get the point as a web mercator point
Point mapPoint = (Point) GeometryEngine.project( wgs84Point, SpatialReferences.getWebMercator());
System.out.println("SR : " + mapPoint.getSpatialReference().getWKText());
// 500 metre buffer
Polygon polygon =GeometryEngine.buffer(mapPoint, 500);
// some styles
SimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, 0xFF00FF00, 3);
SimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, 0xFFFF0000, simpleLineSymbol);
// make a graphic and draw it!
Graphic graphic = new Graphic(polygon, simpleFillSymbol);
graphicsOverlay.getGraphics().add(graphic); Does this help?
... View more
02-16-2021
01:52 AM
|
1
|
0
|
3970
|
|
POST
|
Zooming and exploring the scene is achieved my moving the device around look at the data from different point of view. Is this working for you? We have a sample application which demonstrates this working here. You can also experiment with the originCamera and the TranslationFactor for setting the initial position of the camera. If you need more information, can you share some code?
... View more
02-09-2021
01:29 AM
|
0
|
0
|
1130
|
|
POST
|
You can fix this easily. What has happened is that you've created your own interaction listener and taken over the onMousePressed event with your own logic. What you need to do is pass the event back to the base class onMousePressed event if you are not pressing the middle mouse button. See the "super" addition I've made to your code below: if(e.getButton() == MouseButton.MIDDLE)
{
javafx.geometry.Point2D screenPoint = new javafx.geometry.Point2D(Math.round(e.getX()), Math.round(e.getY()));
com.esri.arcgisruntime.geometry.Point surfacePoint = sceneView.screenToBaseSurface(screenPoint);
//JOptionPane.showMessageDialog(null, "Elevation: "+surfacePoint.getZ()+" Longitude: "+surfacePoint.getX()+" Latitude: "+surfacePoint.getY());
System.out.println("Elevation: "+surfacePoint.getZ()+" Longitude: "+surfacePoint.getX()+" Latitude: "+surfacePoint.getY());
// consume the event as you don't want any more to happen.
e.consume();
} else {
// let the default listener you've overridden deal with other events
super.onMousePressed(e);
}
... View more
02-03-2021
09:07 AM
|
1
|
0
|
1776
|
| 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
|