如何获取当前位置或移动到Xamarin.Forms.Map中的当前位置

Mat*_*att 15 c# maps xamarin xamarin.forms

由于Map已经显示了用户位置(使用IsShowingUser),我只想缩放到此位置.这很容易实现,还是我需要在每个平台上获取位置,因为我找不到任何GeoLocation对象.只有GeoCoder ......这不是缩放到用户位置的常用用例吗?

Gio*_*rgi 22

您需要MoveToRegion使用您感兴趣的职位调用方法.

您可以使用Geolocator Plugin for Xamarin获取PCL项目中的位置:

var locator = CrossGeolocator.Current;
var position = await locator.GetPositionAsync(10000);
map.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(position.Latitude, position. Longitude), 
                                             Distance.FromMiles(1))
Run Code Online (Sandbox Code Playgroud)

  • 什么是`定位器'?这篇文章从未解释过 (2认同)
  • @Bassie它的var locator = CrossGeolocator.Current; (2认同)

Sus*_*ver 6

将地图放在您的位置中心:

var position = await locator.GetPositionAsync(5000);
map.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(position.Latitude, position.Longitude), Distance.FromMiles(1))
Run Code Online (Sandbox Code Playgroud)

在当前位置缩放地图:

var zoomLevel = 9; // between 1 and 18
var latlongdegrees = 360 / (Math.Pow(2, zoomLevel));
map.MoveToRegion(new MapSpan (map.VisibleRegion.Center, latlongdegrees, latlongdegrees));
Run Code Online (Sandbox Code Playgroud)

参考:https : //developer.xamarin.com/guides/xamarin-forms/working-with/maps/