Как получить местоположение (широту, долготу) в центре карты Xamarin Forms - PullRequest
0 голосов
/ 09 июля 2020

Я участвую в проекте с Xamarin Forms и OpenStreetMap. Я пытаюсь получить координаты в центре карты.

Это мой код, который создает карту

public static Map CreateMap(double latitud, double longitud)
{
   map = new Map();
   var location = new Point(longitud, latitud);
   var sphericalMercatorCoordinate = SphericalMercator.FromLonLat(location.X, location.Y);
   map.Layers.Add(OpenStreetMap.CreateTileLayer());
   map.Home = n => n.NavigateTo(sphericalMercatorCoordinate, map.Resolutions[15]);
   return map;
}

Это мой код в файле xaml.

<maps:MapView x:Name="MapView"
              TouchMove="MapView_TouchMove"
              MyLocationFollow="True"
              IsMyLocationButtonVisible="False" 
              VerticalOptions="FillAndExpand"
              HorizontalOptions="FillAndExpand" />

Попробуйте добавить метод "TouchMove". Но получить только границы карты, а не координаты.

private void MapView_TouchMove(object sender, Mapsui.UI.TouchedEventArgs e)
{
    var center = MapView.Bounds.Center;
}

Итак, попробуйте добавить метод MapClicked для вызова этого метода из «MapView_TouchMove», но я не знаю, как вызвать.

private void MapView_MapClicked(object sender, MapClickedEventArgs e)
{
    var lat = e.Point.Latitude;
}

Есть идеи .. ??? Спасибо.

1 Ответ

0 голосов
/ 09 июля 2020

глядя на документы API, Envelope кажется, возвращает то, что вы хотите

Получает экстенты карты на основе экстентов всех слоев в коллекции слоев

Элемент управления MapView имеет свойство Map, из которого вы можете получить Envelope

...