当用户点击 Xamarin.Forms 中的地图时,如何获取坐标?

How can I get the coordinates when user tap on a Map in Xamarin.Forms?

在我的 Xamarin.Forms(PCL 项目)中,我想在用户点击地图时获取坐标(纬度和经度),但我在 Mapclass。我认为在这种情况下使用 TapGestureRecognizer class 的对象无济于事。

那么我们可以在原生平台上执行什么技术来识别点击并获取点击的坐标area/point?

任何博客 post 或技巧都会有所帮助。

谢谢。

在这一点上,我不相信任何用于处理地图的 Xamarin 抽象的 nugets 会处理这种非常具体的事情。您可能必须执行本机实现并使用依赖项注入模式来进行适当的调用。

接口在PCL

interface IMaps
{
   public GetLatLong();
}

本机Android实现

How to get the Latitude and Longitude on Map in Android?

本机iOS实现

Ios Map: Getting latitude and longitude

在 PCL

中调用您的实现
public point HandleMapOnClick()
{
    return DependencyService.Get<IMaps>().GetLatLong();
}

我实现了简单的扩展地图控件来为所有三个平台提供点击位置。你可以看看here。这是纯示例代码,不用于生产,对我来说工作正常,但如果您有任何问题,请告诉我。