Hi,
I am trying to get the elevation at a point using code very similar to Get elevation at a point | ArcGIS Runtime API for .NET | ArcGIS Developer.
However the following throws an exception "Elevation must be loaded before you can get the elevation".
I am behind a proxy, could that be getting in the way of this working?
Code:
public class ArcGisAdapter
{
Surface Surface = new Surface();
Uri _elevationUri = new Uri("https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer");
public async System.Threading.Tasks.Task<bool> InitializeAsync()
{
ArcGISRuntimeEnvironment.ApiKey = "<mykey>";
ArcGISRuntimeEnvironment.Initialize();
Surface.ElevationSources.Add(new ArcGISTiledElevationSource(_elevationUri));
await Surface.LoadAsync();
if (( Surface.LoadStatus == LoadStatus.FailedToLoad ) ||
Surface.LoadStatus == LoadStatus.NotLoaded)
{
Console.WriteLine($"Failed to load {Surface.LoadError.Message}");
return false;
}
else
{
Console.WriteLine($"Loaded elevation {Surface.LoadStatus.ToString()}");
return true;
}
}
public async System.Threading.Tasks.Task<double> GetElevation()
{
try
{
// Get the elevation value.
var point = new MapPoint(83.9, 28.42);
var elevation = await Surface.GetElevationAsync(point);
// Set the text displaying the elevation.
Console.WriteLine($"{Math.Round(elevation)} m");
return elevation;
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
return -1;
}
}
}
}Stack trace:
