如何获取Touch MapPing的纬度?
How to get Touch MapPin lattitude?
我们需要允许触摸 MapPin 的功能。并在触摸时,在当前位置和触摸针之间绘制路线。触摸图钉来自 xml 文件并绑定到地图控件。
以下是我的代码。
我遇到错误
Error: BindingExpression path error: 'Latitude' property not found on 'MapPin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. BindingExpression: Path='Latitude' DataItem='MapPin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'; target element is 'Windows.UI.Xaml.Controls.TextBlock' (Name='txtLatitude'); target property is 'Text' (type 'String')
XAML:
<map:MapControl x:Name="map1"
LandmarksVisible="True"
Loaded="map1_Loaded">
<map:MapItemsControl x:Name="MapItems" >
<map:MapItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="stckPin" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Tapped="stckPin_Tapped">
<Image x:Name="imgPin" Source="ms-appx:///Assets/icon.png"
map:MapControl.Location="{Binding Location}" Opacity="0.8"
map:MapControl.NormalizedAnchorPoint="{Binding NAP}"
Height="50" Width="50" />
<TextBlock x:Name="txtLatitude" TextWrapping="Wrap" Text="{Binding Latitude, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource DoubleConverter1}}" />
</StackPanel>
</DataTemplate>
</map:MapItemsControl.ItemTemplate>
</map:MapItemsControl>
</map:MapControl>
C#:
namespace MapLocatorNamespace
{
public sealed partial class MapLocator : Page
{
private void stckPin_Tapped(object sender, TappedRoutedEventArgs e)
{
StackPanel stkPin = (StackPanel)sender;
double loLatitude = Convert.ToDouble(((TextBlock)stkPin.Children[1]).Text);
}
}
public class DoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var doubleNumber = (double)value;
return doubleNumber.ToString("0.00#################");
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}
如何将 Latitude 绑定到文本块并在代码隐藏中获取它?
我自己解决了,
我所做的是,
我已将 int 列索引添加到 may mapitem class,并将其添加到图像的 'Tag' 属性中。
在 Tap 事件中,我得到了这个标签,从这个索引中,我可以在我的列表中搜索并获得点击的 pin。
现在我有了 Pin 的全部细节,我可以从当前位置和这个 Pin 位置绘制路线。
谢谢。
我们需要允许触摸 MapPin 的功能。并在触摸时,在当前位置和触摸针之间绘制路线。触摸图钉来自 xml 文件并绑定到地图控件。
以下是我的代码。
我遇到错误
Error: BindingExpression path error: 'Latitude' property not found on 'MapPin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. BindingExpression: Path='Latitude' DataItem='MapPin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'; target element is 'Windows.UI.Xaml.Controls.TextBlock' (Name='txtLatitude'); target property is 'Text' (type 'String')
XAML:
<map:MapControl x:Name="map1"
LandmarksVisible="True"
Loaded="map1_Loaded">
<map:MapItemsControl x:Name="MapItems" >
<map:MapItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="stckPin" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Tapped="stckPin_Tapped">
<Image x:Name="imgPin" Source="ms-appx:///Assets/icon.png"
map:MapControl.Location="{Binding Location}" Opacity="0.8"
map:MapControl.NormalizedAnchorPoint="{Binding NAP}"
Height="50" Width="50" />
<TextBlock x:Name="txtLatitude" TextWrapping="Wrap" Text="{Binding Latitude, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource DoubleConverter1}}" />
</StackPanel>
</DataTemplate>
</map:MapItemsControl.ItemTemplate>
</map:MapItemsControl>
</map:MapControl>
C#:
namespace MapLocatorNamespace
{
public sealed partial class MapLocator : Page
{
private void stckPin_Tapped(object sender, TappedRoutedEventArgs e)
{
StackPanel stkPin = (StackPanel)sender;
double loLatitude = Convert.ToDouble(((TextBlock)stkPin.Children[1]).Text);
}
}
public class DoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var doubleNumber = (double)value;
return doubleNumber.ToString("0.00#################");
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}
如何将 Latitude 绑定到文本块并在代码隐藏中获取它?
我自己解决了,
我所做的是, 我已将 int 列索引添加到 may mapitem class,并将其添加到图像的 'Tag' 属性中。 在 Tap 事件中,我得到了这个标签,从这个索引中,我可以在我的列表中搜索并获得点击的 pin。
现在我有了 Pin 的全部细节,我可以从当前位置和这个 Pin 位置绘制路线。
谢谢。