如何使用 Xamarin.Forms.GoogleMaps 将地图的纬度和经度转换为像素坐标?

How can you translate a map latitude and longitude to a pixel coordinate using Xamarin.Forms.GoogleMaps?

我必须将地图上显示的纬度和经度转换为屏幕坐标。

我在网上搜索了解决方案,似乎曾经有一个叫做 Projection 的东西可以解决这个问题,但它不再可以通过 Xamarin.Forms.GoogleMaps 访问。

如果有某种方法可以将纬度和经度之间的坐标转换为屏幕 x 和 y 坐标,那将是最佳选择。

我刚刚在 Android.project 中 Xamarin.Forms.Maps 的 mapRender 中进行了测试,发现您可以在渲染器中使用 Projection

protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Map> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null)
            {

                var projection = NativeMap.Projection;

                projection.ToScreenLocation();
                projection.FromScreenLocation();
            }

            if (e.NewElement != null)
            {
                var formsMap = (CustomMap)e.NewElement;
                customPins = formsMap.CustomPins;
                Control.GetMapAsync(this);
            }
        }

然后你可以调用projection.ToScreenLocation();projection.FromScreenLocation();来翻译点数。我认为如果你使用 Xamarin.Forms.GoogleMaps.

几乎是一样的

参考:Projection and custom-renderer/map