有没有办法动画Xamarin.Forms.Maps针移动

时间:2018-04-08 22:48:16

标签: c# android ios xamarin.forms maps

我只是想知道在xamarin中是否有一种方法可以转换更改地图引脚位置并可能旋转自定义地图引脚以匹配移动方向。我想避免自定义渲染器 IF ,但我对这个想法持开放态度。

非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

我建议您使用Xamarin.Forms.GoogleMaps

关于Postion

您可以先清除并在地图上再次添加它们以刷新位置

请参阅here

关于方向

您可以使用 BEARING 来达到效果。

请参阅here

答案 1 :(得分:1)

@Andy Sinclair的答案是一个很好的起点(the docs也是如此),但是,如果要对地图图钉进行动画处理(具有经度,纬度和可能的方位),则需要为每个标量进行动画处理分别设置价值,例如:

var position = yourTargetPinPosition;
new Animation {
    // Animate the change in latitude
    { 0, 1, new Animation(lat => pin.Position = new Position(lat, pin.Position.Longitude), pin.Position.Latitude, position.Latitude) },
    // Animate the change in longitude
    { 0, 1, new Animation(lng => pin.Position = new Position(pin.Position.Latitude, lng), pin.Position.Longitude, position.Longitude) }
// Play the animation over 2000ms with a new frame every 16ms
}.Commit(map, "PinAnimation", 16, 2000, Easing.SinInOut, (v, c) => {
    // If the animation is cancelled for any reason, update the pin position to the target value
    if (c) {
        pin.Position = position;
    }

    // Optionally, pan the map to the new position after the animation is complete
    var mapSpan = new MapSpan(position, 0.01, 0.01);
    map.MoveToRegion(mapSpan);
}, () => false);