2016-12-19 4 views
0

J'utilise la 1ère version du SDK ArcGIS Runtime pour .Net - Xamarin.Forms (paquet nuget here).Ligne d'échelle d'affichage - SDK ArcGIS Runtime - Xamarin.Forms

Une de mes exigences est d'afficher une ligne d'échelle de base sur la carte. Je n'ai trouvé aucune fonctionnalité intégrée pour le moment. Il semble être difficile parce que chaque appareil a une taille différente, une résolution différente ... Toute idée sur la façon de mettre en œuvre cela?

Répondre

1

OK après quelques heures, je trouve que le composant MapView possède une propriété UnitsPerPixel qui font exactement ce que je avais besoin:

J'ai ajouté une petite grille (pour représenter l'échelle) avec une largeur fixe:

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

Ensuite, lorsque les changements de point de vue, je calcule la distance qui représente par cette grille:

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

ArcGIS .Net SDK - Xamarin.Forms - Scale Line

Solution complète here.