POST
|
Hi @Anonymous User - you are correct, if you want to work with a self contained offline scene then a .mspk (a MobileScenePackage) is the way to go. That package contains all of the information that you need for your scene: - basemaps - elevation sources - feature data - scene layers A .tpk (a Tile package) is tiled raster data that can be used for basemaps (e.g. an imagery layer) or elevation data as in the service above. A MobileScenePackage may very well contain a Tile Package for the basemap or elevation data so when you load the Scene all of that information is already set up for you. At present, there is no API to take a scene offline in Runtime and create a MobileScenePackage - for that you need ArcGIS Pro. You can take certain individual layers offline to create a local data-set such as an elevation tpk but you would need to use that data to construct the Scene yourself. If you have a tpk for the elevation source in your scene then it should support getting the elevation at the user's clicked point. Luke
... View more
03-16-2021
04:54 AM
|
1
|
3
|
2394
|
POST
|
Hi @FatmaAkdemir, you can do this in Runtime using the 2D ExportTilesTask example but be aware that you won't see a basemap rendered for the elevation surface so you may need a different way to orient yourself so that you can take the area offline. Also be aware that Esri tiled services have a maximum number of tiles which can be requested when taking data offline so you may need to select a small area to get this to work. You also need to be authenticated to export tiles. Once you have the tiles exported as a tpk you can use this to create a TileCache object which you supply to the elevation sources for your scene. Here is some example C++ code that I used to try this part out: auto tpk = new TileCache("~\\tpks\\elevation_source.tpk", this); ArcGISTiledElevationSource* elevationSource = new ArcGISTiledElevationSource(tpk, this); connect(tpk, &TileCache::doneLoading, this, [tpk, this](Error e) { auto cc = new OrbitLocationCameraController(tpk->fullExtent().center(), 500, this); m_sceneView->setCameraController(cc); m_sceneView->arcGISScene()->baseSurface()->setElevationExaggeration(8); }); // add the elevation source to the scene to display elevation m_scene->baseSurface()->elevationSources()->append(elevationSource); I hope that helps. Luke
... View more
03-15-2021
09:26 AM
|
0
|
5
|
2404
|
POST
|
Hi @FatmaAkdemir If you want to download an elevation source from that service you will need to make use of the for export version which supports exporting tiles. In terms of high resolution, that would depend on your particular use case - that data set includes tiles to LOD level 16: Level ID: 16 [ Start Tile, End Tile ] Resolution: 2.388657133974685 Scale: 9027.977411 If you want to export the data, there are a couple of options: Use the ExportTileCacheTask with the Runtime API. This will allow you to create a tpk which you can programmatically add to your Scene as an elevation source. Use ArcGIS Pro with the "Download map" option to create a MobileScenePackage: 1. Make sure you are logged into AGOL 2. Create a new map 3. Add data by path > https://tiledbasemaps.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer 4. Zoom to desired area > Click Map Tab > Click Download Map 5. Select desired scales > click download 6. The layer gets added to the map so go ahead and copy it to a new global scene 7. Drag the layer into the ground elevation surface and remove the service 8. Remove any other services and create the mobile scene package I hope that helps, Luke
... View more
03-12-2021
07:16 AM
|
0
|
7
|
2422
|
POST
|
Hi @rsharma - if your Map is not yet loaded (for example you read it directly from a MobileMapPackage already on your device) you should be able to use void Map::setInitialViewpoint(const Esri::ArcGISRuntime::Viewpoint &viewpoint) before you set it on the MapView. Another approach would be to use https://developers.arcgis.com/qt/latest/cpp/api-reference/esri-arcgisruntime-mapview.html or similar to set the position directly on the view. Hope that helps, Luke
... View more
12-11-2020
01:32 AM
|
0
|
3
|
961
|
POST
|
Hi @FatmaAkdemir we do have support for offline data using our MobileScenePackage format which you can author in ArcGIS Pro. You can also build up an offline scene yourself using offline data-sets such as a tile package (.tpk), scene layer package (.slpk). Here's an example of using a MobileScenePackage: https://github.com/Esri/arcgis-runtime-samples-qt/tree/master/ArcGISRuntimeSDKQt_CppSamples/Scenes/OpenMobileScenePackage I hope that helps, Luke
... View more
12-03-2020
04:53 AM
|
0
|
0
|
1449
|
POST
|
Hi @FatmaAkdemir, we have a few samples that use RasterLayers, for example: - https://github.com/Esri/arcgis-runtime-samples-qt/tree/master/ArcGISRuntimeSDKQt_CppSamples/Layers/RasterLayerFile - https://github.com/Esri/arcgis-runtime-samples-qt/tree/master/ArcGISRuntimeSDKQt_CppSamples/Layers/RasterLayerService I think they depend on the original data set being geo-rectified (e.g. in ArcGIS Pro) so I'm not sure you will be able to use that with a QPixmap. What format is your radar image in? You may be interested in this workflow which uses the ImageOverlay to display data on a scene: https://github.com/Esri/arcgis-runtime-samples-qt/tree/master/ArcGISRuntimeSDKQt_CppSamples/Scenes/AnimateImagesWithImageOverlay. Note that this option is currently only available in 3D (scene) views.
... View more
12-01-2020
04:35 AM
|
0
|
2
|
1459
|
POST
|
Hi @FatmaAkdemir One thing you could try is to use a Renderer with your GraphicsOverlay which will use the same symbol for all Graphics - rather than creating a new symbol for each point. This sample shows an example of that workflow. You could use an attribute on the points to choose a different color if required - see this example for that kind of approach. If rendering individual points is not working well - you could also experiment with creating a raster dataset for your radar points. You can use a number of raster formats with the RasterLayer API.
... View more
11-30-2020
01:13 AM
|
0
|
4
|
1491
|
POST
|
Hi @ArmandoGarcia3 thanks for getting in touch. It sounds as though you are running into the maximum tile limit allowed when exporting esri's image tiled basemaps. You could experiment with setting different values for minScale and maxScale on the GenerateOfflineMapParameters.html. The maxScale property controls how "zoomed-in" the data will be so if you supply a larger number here your map will use fewer tiles. Another approach that may help is supplying a more targeted polygon for your area of interest. For example if your area is an irregular shape, you could take a more precise set of tiles offline by supplying a fitted Polygon rather than an Envelope. You could also investigate using one of Esri's for export vector tile basemaps instead - these may allow you to get thee detail you need. This kind of data would use a vtpk instead of a tpk for your basemap. Here's a group describing those basemaps: https://www.arcgis.com/home/group.html?id=c61ab1493fff4b84b53705184876c9b0#overview Hope that's useful, Luke
... View more
11-17-2020
01:27 AM
|
0
|
0
|
630
|
POST
|
Hi Wada Takumi, If you need to display an Offline Map, one way to do it is to create a MobileMapPackage in ArcGISPro which contains the base map and features that you need. You can then open the Mobile Map Package in Runtime - see this sample for an example of that workflow: arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_CppSamples/Maps/OpenMobileMap_MapPackage at master · Esri/arcgis-runtime-sa… If you don't have access to ArcGIS Pro then you can download an offline map from ArcGIS Online (or your own portal) - see this sample for an example of that approach: arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_CppSamples/Maps/GenerateOfflineMap at master · Esri/arcgis-runtime-samples-… To display positions using Latitude and Longitude you can create a Point supplying an x, y position at a SpatialReference of wgs84 (note the static method that will create this for you). Also take care that you pass Latitude and Longitude in the right order: Latitude corresponds to the "y" axis and Longitude corresponds to the "x" axis. This sample gives an example of adding graphics using lat/long: arcgis-runtime-samples-qt/GOSymbols.cpp at master · Esri/arcgis-runtime-samples-qt · GitHub I hope that helps, Luke
... View more
11-10-2020
01:23 AM
|
0
|
1
|
749
|
POST
|
One other thing which may be worth trying is to make sure that individual graphics are removed when you loop round and call glm->removeOne(graphic); The call to remove a Graphic is asynchronous and you should wait for the graphicRemoved signal before removing the next. I'm not sure if that is affecting the work-flow that you use here but it may be worth investigation.
... View more
11-09-2020
07:32 AM
|
0
|
1
|
1104
|
POST
|
Hi Norbert, I hope you're well. We'll take a look at your repro to try and understand what is going on. In the meantime, one thing which may be of use is to try and avoid creating a new SimpleMarkerSymbol for each Graphic that you allocate: Esri::ArcGISRuntime::SimpleMarkerSymbol *sms = new Esri::ArcGISRuntime::SimpleMarkerSymbol(Esri::ArcGISRuntime::SimpleMarkerSymbolStyle::Circle, QColor("red"), 10, graphic); graphic->setSymbol(sms); If you can create a SimpleRenderer for the GraphicsOverlay instead, then each Graphic in that overlay will get the same symbol without having to allocate additional memory. This should be a more efficient workflow in general - this sample should give you an idea of how to use that API arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_CppSamples/DisplayInformation/Simple_Renderer at master · Esri/arcgis-runti… . I can see that this is a simplified repro project so if you are already doing that in the real example please ignore. Luke
... View more
11-09-2020
07:10 AM
|
0
|
2
|
1104
|
POST
|
Hi Rob - does the map render correctly? e.g. do you see the OpenStreetmap basemap you set above? If it's rendering then the map is loading. One possibility could be that you connect to the signal after loading is complete. The loading cycle will be kicked off as soon as you call m_mapView->setMap(m_map);. Can you make sure you set up the connection as soon as you construct the map? Another observation is that you are setting the initial viewpoint for the map after you set it on the mapView (m_map->setInitialViewpoint(viewpoint);). For this to have an affect you need to do that before passing the map to the mapView as well.
... View more
09-16-2020
01:28 AM
|
0
|
1
|
1450
|
POST
|
Hi Rob - can you confirm the map is loaded before you make the screenToLocation call? You can use the Map's doneLoading or loadStatusChanged signals to wait for that.
... View more
09-15-2020
09:53 AM
|
0
|
0
|
1450
|
POST
|
Hi Rob, To do this you would make use of the MapGraphicsViews screenToLocation function - passing it the coordinates from your view. The upper left corner would be 0,0 in view coordinates and you should be able to get the lower right by taking the width/height of your map view. This sample shows a different use of that functionality (reacting to a user clicking on the screen) but tghe principle is the same.
... View more
09-15-2020
08:30 AM
|
0
|
2
|
1450
|
POST
|
Hi rajni sharma, This Show location history sample is doing the kind of workflow you describe. Note that this code targets our upcoming 100.9 release so some of it may not be available in your current version - but the essential idea is to use a PolylineBuilder which you add a point to every time a new location is received. Then you use the result of that builder (e.g. a Polyline) to create or update the geometry for a Graphic Hope that helps, Luke
... View more
08-17-2020
04:53 AM
|
1
|
3
|
764
|
Title | Kudos | Posted |
---|---|---|
1 | 05-04-2018 04:22 AM | |
1 | 11-02-2022 06:25 AM | |
1 | 07-12-2022 05:35 AM | |
4 | 10-21-2021 01:58 AM | |
1 | 07-12-2021 01:09 AM |
Online Status |
Offline
|
Date Last Visited |
03-25-2024
03:44 PM
|