Display scale line - ArcGIS Runtime SDK - Xamarin.Forms

343 views Asked by At

I am using the 1st release of the ArcGIS Runtime SDK for .Net - Xamarin.Forms (nuget package here).

One of my requirements is to display a basic scale line on the map. I haven't found any build-in feature for the moment. It seems to be tricky because each device has different size, different resolution... Any idea on how to implement this ?

1

There are 1 answers

0
Thomas On BEST ANSWER

OK after few hours, I found that the MapView component has a property UnitsPerPixel that do exactly what I needed:

I've added a small grid (to represent the scale) with a fix width:

<Grid  HeightRequest="10" WidthRequest="114" x:Name="Legend">
...
</Grid>

Then when the view point changes, I compute the distance representing by this grid:

MapView.ViewpointChanged += (sender, args) =>
{
    ScaleVal.Text = $"{Math.Round(Legend.Width * MapView.UnitsPerPixel, 0)}m";
};

ArcGIS .Net SDK - Xamarin.Forms - Scale Line

Complete solution here.