我正在使用适用于 .Net 的 ArcGIS Runtime SDK 的第一个版本 - Xamarin.Forms(此处为 nuget 包)。
我的要求之一是在地图上显示一条基本比例线。目前我还没有找到任何内置功能。这似乎很棘手,因为每个设备都有不同的尺寸,不同的分辨率......关于如何实现这个的任何想法?
我正在使用适用于 .Net 的 ArcGIS Runtime SDK 的第一个版本 - Xamarin.Forms(此处为 nuget 包)。
我的要求之一是在地图上显示一条基本比例线。目前我还没有找到任何内置功能。这似乎很棘手,因为每个设备都有不同的尺寸,不同的分辨率......关于如何实现这个的任何想法?
好几个小时后,我发现该MapView
组件有一个UnitsPerPixel
完全符合我需要的属性:
我添加了一个固定宽度的小网格(代表比例):
<Grid HeightRequest="10" WidthRequest="114" x:Name="Legend">
...
</Grid>
然后当视点改变时,我计算这个网格表示的距离:
MapView.ViewpointChanged += (sender, args) =>
{
ScaleVal.Text = $"{Math.Round(Legend.Width * MapView.UnitsPerPixel, 0)}m";
};
完整的解决方案在这里。