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
相关产品推荐
相关产品推荐

