You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAUI Map技术问询:点击地图时如何获取精准位置并添加Pin?

MAUI Map点击获取精准位置并添加Pin的解决方案

你当前代码里用map.VisibleRegion.Center获取的是地图可视区域的中心点,并非用户点击的精准位置。要获取点击/触摸的精确坐标,直接使用MapClickedEventArgs参数e的Location属性即可,这就是点击点对应的经纬度位置。

修改后的代码如下:

private async void Map_MapClicked(object sender, MapClickedEventArgs e) {
    // 获取点击的精准位置
    Location dest_Location = e.Location; 

    var pin2 = new Pin
    {
        Label = "Location",
        Address = "You clicked",
        Location = dest_Location,
        Type = PinType.Place
    };

    pin2.MarkerClicked += Pin2_MarkerClicked;
    map.Pins.Add(pin2);

    // 显示当前点击位置的经纬度
    tDestinationLocation.Text = $"{pin2.Location.Latitude},{pin2.Location.Longitude}";

    double distance = FindDistance(starting_Location, pin2.Location, DistanceUnits.Kilometers);
    txtDistance.Text = $"{distance * 1000:0.##} meter";
}

关键改动说明:

  • 把map.VisibleRegion.Center替换为e.Location,直接获取点击事件传递的精准坐标
  • 优化了经纬度显示的字符串拼接,使用字符串插值更简洁

这样修改后,添加的Pin会精准落在用户点击的位置,后续计算两点距离也能得到准确结果。

内容的提问来源于stack exchange,提问作者Abhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:16:01