如何在MapControl上获取图像的坐标

时间:2015-05-26 14:55:33

标签: c# xaml windows-phone-8 bing-maps

我有xaml:

<maps:MapControl>
...
  <maps:MapItemsControl>
    <Image
      ...
      maps:MapControl.Location="{Binding MYLocation}"
      maps:MapControl.NormalizedAnchorPoint="0.5,0.5"
       />
   </maps:MapItemsControl>
 </maps:MapControl>

当我尝试在代码中获取地理位置时,我遇到了问题。 C#:

var child = ((MapItemsControl)(this.map.Children[0])).Items[0];
var coordinate = MapControl.GetLocation(child);

但是coordinate = null,我如何获得图像的坐标?

1 个答案:

答案 0 :(得分:1)

也遇到这个。在赋值后进行测试,它仍为null。看起来GetLocation只是没有正确返回。

MapControl.SetLocation(iconStart, pushpinToAdd.pinPoint);
MapControl.SetNormalizedAnchorPoint(iconStart, new Point(0.5, 1));
Geopoint geopoint = MapControl.GetLocation(iconStart);
Debug.WriteLine(geopoint.Position.Latitude + "," + geopoint.Position.Longitude);

使其与NullReferenceException崩溃。在手机和模拟器上测试过。真的很糟糕。

作为一种解决方案,要使用带有id的Tag,然后引用我的数据并从那里拉回coords。

祝你好运

编辑:

在我的pin上设置了一个tapped事件监听器,可以这样做

 private async void Pin_Tapped(object sender, TappedRoutedEventArgs e)
 {
     Geopoint geopoint = null;
     MainMap.GetLocationFromOffset(e.GetPosition(MainMap), out geopoint);
     Debug.WriteLine(geopoint.Position.Latitude + "," + geopoint.Position.Longitude);
 }