Fetching base map information

3116
14
Jump to solution
10-26-2015 02:57 PM
RainerFarsch
New Contributor III

I have a bathymetry map that is a map of ocean depths - the deeper the blue the deeper the ocean. The map is provided as a .mxd file. I can open this file in ArcGIS Desktop and I'm able to click on it using the Identify cursor to query for depth at the clicked location.

Next I rendered this map into a '.tpk' file that I open using ArcGISLocalTiledLayer in ArcGIS Runtime. So my question is: can I get depth information in ArcGIS Runtime from the base map like was I able to get in ArcGIS Desktop?

One idea I've heard is to create a feature table in ArcGIS Desktop containing depth information and using that for depth information in ArcGIS Runtime; but I was curious if there is a way to get it directly from the base map - either in this release (10.2.6) or in a future release (Quartz).

Thanks!

0 Kudos
14 Replies
LucasDanzinger
Esri Frequent Contributor

Hey Rainer,

No worries, glad to help. I can't speak to the 2 Quartz options as they are still in design. Once they are fleshed out, I believe the raw raster analysis is going to be the cleanest and most straight forward.

For now, try to create the feature table, either of grids polygons or maybe even point centroids (do this work in ArcMap). Once you have that, I would bring it into your Runtime app, and do the following:

1) Create signal handler for mouse clicked on the map

2) call Buffer on the mapPoint that is returned

3) Set up a query against the feature table. The query will need to have several things set:

  - Where clause to "1=1" to return any record. Change this to some other SQL clause if you want to filter results.

  - Set the geometry to your buffer polygon

  - Set spatial relationship to either intersects or within, depending on what your requirements are

  - Set outstatisitcs to gather the average, standard deviation, sum, etc. Here are the different out statistics you can set - ArcGIS Runtime SDK for Qt QML API: Enums Class Reference

4) Execute the query and create a signal handler for when it completes. The results will be aggregated values to whatever your outstatistics were set to, as opposed to individual values from the raw data

I do something similar in the following example. It creates the buffer, runs a query with the buffer, sets out statistics, and gets the aggregated data points back. The only difference is this runs a QueryTask, but this workflow should work against a feature table with queryFeatures. RuntimeQtSamples/main.qml at master · ldanzinger/RuntimeQtSamples · GitHub

Hope this gets you on the right track.

-Luke

0 Kudos
RainerFarsch
New Contributor III

Hi Luke,

I appreciate the detailed response - I've got my work cut out for me. Can I safely assume that this done using the Spatial Analyst extension for Runtime, and that we would need to purchase a license pack for deployment?

Is there a way of identifying in the API what belongs to Spatial Analyst?

Thanks!

-Rainer

0 Kudos
LucasDanzinger
Esri Frequent Contributor

Hey Rainer-

No, this won't need the spatial analyst extension. The only time you will need that extension is if you are using the Geoprocessor, and running a geoprocessing tool that requires Spatial Analyst extension. If this was the case, you would need to publish a Geoprocessing package (GPK) from ArcMap, and consume that package in Runtime. With this workflow, you would know you need to purchase an extension if you also needed the extension to execute the tool in ArcMap- if the tool in ArcMap required the extension, the tool once packaged as a GPK will require the extension in Runtime.

Cheers,

Luke

0 Kudos
RainerFarsch
New Contributor III

Thanks Luke,

I guess I was getting all turned around on this - still learning. I was looking at Local Server geoprocessing tools support—ArcGIS Runtime SDK for Qt | ArcGIS for Developers and now it makes more sense that you've explained it.

-Rainer

0 Kudos
RainerFarsch
New Contributor III

Offline only.

0 Kudos