我必须将地图上显示的纬度和经度转换为屏幕坐标。
我在网上搜索了解决方案,似乎曾经有一个叫做 Projection 的东西有一个解决方案,但它不再可以通过 Xamarin.Forms.GoogleMaps 访问。
如果有某种方法可以将 lat 和 long 之间的坐标转换为屏幕 x 和 y,那将是最佳选择。
我必须将地图上显示的纬度和经度转换为屏幕坐标。
我在网上搜索了解决方案,似乎曾经有一个叫做 Projection 的东西有一个解决方案,但它不再可以通过 Xamarin.Forms.GoogleMaps 访问。
如果有某种方法可以将 lat 和 long 之间的坐标转换为屏幕 x 和 y,那将是最佳选择。
我刚刚在 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
.