以编程方式移动MapLayer子元素

本文关键字:元素 MapLayer 移动 编程 方式 | 更新日期: 2023-09-27 18:03:41

我有一个带有Microsoft.Maps.MapControl.WPF地图的应用程序,并使用mapView.Children.Add(layer)添加了一些图层。每一层都有不同类型的覆盖层,这些覆盖层是用layer.Children添加的图像。locationRect AddChild(图像)。

我希望能够从代码中移动,调整大小和旋转这些对象(而不是从对它们一无所知的xaml),但我似乎无法做到前两个(旋转很简单)。

经过反复试验并找到一些非微软文档后,我看到MapLayer.GetPositionRectangle(UIElement)返回对象的正确位置,因此MapLayer.SetPositionRectangle()应该设置它似乎是合乎逻辑的,但它没有,我找不到任何在网络上以编程方式将对象移动到新的Lat/long的任何示例。

是否有在地图上移动地理对象的方法,或者我必须删除它并将其添加到正确的位置,或者只是将它移动到画布上的X/Y轴,我已经从晚/长,这两者似乎都是错误的,但这是我的第一个WPF应用程序(通常使用表单),也许这就是它的方式?

以编程方式移动MapLayer子元素

存在于Microsoft github页面上的Windows-universal-samples可以帮助您。这里有一个MapControl的例子,你可以从中得到一些想法。

这个示例演示了如何在UWP应用程序中使用通用地图控件(MapControl)。

  • MapControl基础知识:调整缩放水平,标题,理想的ptich和地图样式
  • 在地图上添加兴趣点:图钉,图像和形状
  • 在地图上添加XAML叠加
  • 在MapControl中显示3D位置
  • 在MapControl中显示街景体验
  • 使用URI方案启动地图

的Url: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/MapControl

看完这个例子,如果有更多的问题,请在这里发帖解决。

我认为,最好的方法是为这个XAML获得一个模型,在那里你可以更新这个属性

你能做的就是通过代码对你的图像应用标准的过渡。你可以使用MapLayer。SetPosition将其链接到地图上的某个位置。您可能希望使用位置原点/偏移量或边距来将图像的特定点与位置对齐。

https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.maplayer.setposition.aspx

https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.maplayer.setpositionorigin.aspx

https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.positionorigin.aspx

https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.maplayer.setpositionoffset.aspx