我的应用程序正在使用以下代码在指定路线上移动车辆。但所用车辆的图像就像它的正面朝左。如何在汽车行驶的过程中旋转汽车的表面?我引用这个链接是为了移动汽车。
我的代码:
private void MovePinOnPath(bool isGeodesic)
{
Image forImage = new Image
{
Width = 40,
Source = CarIconSource,
};
BasicGeoposition geoposition = new BasicGeoposition();
geoposition.Latitude = CarDetailsList.CodeArray[Startpt_index].CarLat;
geoposition.Longitude = CarDetailsList.CodeArray[Startpt_index].CarLng;
Geopoint mypoint2 = new Geopoint(geoposition);
List<BasicGeoposition> GeoList = new List<BasicGeoposition>();
for (int i = Startpt_index + 1; i <= Endpt_index; i++)
{
GeoList.Add(new BasicGeoposition()
{
Latitude = CarDetailsList.CodeArray[i].CarLat;
Longitude = CarDetailsList.CodeArray[i].CarLng;
});
}
Geopath path3 = new Geopath(GeoList);
MapControl.SetLocation(forImage, mypoint2);
MapControl.SetNormalizedAnchorPoint(forImage, new Point(0.5, 1.0));
currentAnimation = new PathAnimation(path3, (coord, pathIdx, frameIdx) =>
{
MapControl.SetLocation(forImage, new Geopoint(coord));
}, isGeodesic, 10000);
currentAnimation.Play();
}
如果只在MapControl上放置一个通用的Image控件,则旋转变换将不起作用。Justin XL在这个帖子中解释了:如何旋转放置在地图控件上的图像。
解决方案就像Justin XL所说的:
创建一个名为ImageControl的UserControl,该UserControl封装此Image及其转换,并具有UriPath和Angle等依赖属性,负责将信息传递到内部Image及其CompositeTransform属性。