0

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

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

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

4

1 回答 1

0

我刚刚在 Android.project 的 mapRender 中做了一个测试,Xamarin.Forms.Maps发现可以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.

参考:投影自定义渲染器/地图

于 2019-08-21T07:10:46.677 回答