как получить расстояние между моим текущим местоположением и каждым найденным соседним местоположением, используя формы xamarin - PullRequest
0 голосов
/ 06 декабря 2018

Я разрабатываю небольшое приложение для поиска ближайшего местоположения из текущего местоположения с помощью форм xamarin в visual studio 2017. У меня есть список адресов компании в sqlite. Например, я набираю что-то вроде «Perungudi» в поле вводапросмотр списка, заполненный списком соответствующего соседнего запроса "Perungudi", который является записью, поступающей из sqlite. Мой вопрос - как определить расстояние между моим текущим местоположением и каждым найденным близлежащим местоположением (расстояние, например, 1 км или 2 км и компанияимя), пожалуйста, дайте мне предложение, чтобы решить эту проблему, чтобы я мог искать правильный путь

1 Ответ

0 голосов
/ 07 декабря 2018

Если ваши записи SQLite содержат местоположение, вы можете использовать CalculateDistance из Xamarin.Essentials для получения значения.Это метод расширения, вы можете узнать больше об этом здесь: https://docs.microsoft.com/en-us/dotnet/api/xamarin.essentials.locationextensions.calculatedistance.

Следующее должно помочь вам понять подход:

// Your DB Model
class SavedLocation
{
    public double Latitude { get; set; }
    public double Longitude { get; set; }
    public string Name { get; set; }
}

// Class for binding in the ListView
class LocationWithDistance
{
    public string Name { get; set; }
    public double Distance { get; set; }
}

class SomeViewModel
{
    public IList<LocationWithDistance> FetchNearbyLocations(string name)
    {
        var currentLocation = new Location(19, -99); // This is your current location
        var sqliteData = new List<SavedLocation>(); // Data you get from SQLite

        var itemsForListView = from item in sqliteData
                               select new LocationWithDistance
                               {
                                   Name = item.Name,
                                   Distance = new Location(item.Latitude, item.Longitude).CalculateDistance(currentLocation, DistanceUnits.Kilometers)
                               };

        return itemsForListView.ToList();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...