首页 > 解决方案 > 在 MapControl 上移动图像 - uwp c#

问题描述

我正在使用 MapControl 在地图上绘制路线(使用 GMapsUWPSDK)。它使用一组位置绘制路线。现在我想在这条路线上移动一辆车。为此,我已经完成了如下操作。

Image vehicleImg = new Image
{
Width = 40,
Source = VehicleIconSource    
}; 
MyMap.Children.Add(vehicleImg);

AddLocationsOfVehicle() //location of vehicle change when calling this function
{
BasicGeoposition geoposition = new BasicGeoposition();
geoposition.Latitude = AppGlobals._VehicleDetailsList[0].VLat;
geoposition.Longitude = AppGlobals._VehicleDetailsList[0].VLng;
Geopoint mypoint = new Geopoint(geoposition);
MapControl.SetLocation(vehicleImg , mypoint);
}

现在车辆从一个位置跳到另一个位置。而不是它,我怎样才能将车辆从一个点移动到另一个点?这是在路线上添加车辆的正确方法吗?是否有任何有用的链接来完成这项任务?此外,现在车辆没有像谷歌地图那样正确放置在路线上。图像被视为就在路线之外。当达到转弯时,我如何旋转/转动车辆?

标签: c#google-mapsuwpuwp-maps

解决方案


您可以为此添加图钉(标记),并在 Image属性中提供您的自定义汽车图像 See this

这是示例代码

public void AddSpaceNeedleIcon()
{
    var MyLandmarks = new List<MapElement>();

    BasicGeoposition snPosition = new BasicGeoposition { Latitude = 47.620, Longitude = -122.349 };
    Geopoint snPoint = new Geopoint(snPosition);

    var spaceNeedleIcon = new MapIcon
    {
        Location = snPoint,
        NormalizedAnchorPoint = new Point(0.5, 1.0),
        ZIndex = 0,
        Title = "Space Needle"
    };

    MyLandmarks.Add(spaceNeedleIcon);

    var LandmarksLayer = new MapElementsLayer
    {
        ZIndex = 1,
        MapElements = MyLandmarks
    };

    myMap.Layers.Add(LandmarksLayer);

    myMap.Center = snPoint;
    myMap.ZoomLevel = 14;

}

推荐阅读