Xamarin.forms 如何使用xamarin表单获取我当前位置到每个找到的附近位置之间的距离

Xamarin.forms 如何使用xamarin表单获取我当前位置到每个找到的附近位置之间的距离,xamarin.forms,visual-studio-2017,Xamarin.forms,Visual Studio 2017,我正在开发一个小应用程序,使用visual studio 2017中的xamarin表单从当前位置搜索附近位置。我在sqlite中有公司地址列表,例如,我在输入框中键入类似“Perungudi”的内容,然后在列表视图中填充匹配的附近查询“Perungudi”列表,这是来自sqlite的记录,我的问题是“如何获得我当前位置到每个找到的附近位置之间的距离”(距离如1 km或2 km以及公司名称),请为我提供解决此问题的建议,以便我能够以正确的方式搜索假设您的SQLite记录包含一个位置,您可以使用X

我正在开发一个小应用程序,使用visual studio 2017中的xamarin表单从当前位置搜索附近位置。我在sqlite中有公司地址列表,例如,我在输入框中键入类似“Perungudi”的内容,然后在列表视图中填充匹配的附近查询“Perungudi”列表,这是来自sqlite的记录,我的问题是“如何获得我当前位置到每个找到的附近位置之间的距离”(距离如1 km或2 km以及公司名称),请为我提供解决此问题的建议,以便我能够以正确的方式搜索

假设您的SQLite记录包含一个位置,您可以使用Xamarin.Essentials中的CalculateInstance来获取值。这是一种扩展方法,您可以在此处阅读更多信息:

以下内容有助于您理解该方法:

//您的数据库模型
类存储位置
{
公共双纬度{get;set;}
公共双经度{get;set;}
公共字符串名称{get;set;}
}
//类在ListView中进行绑定
类位置与距离
{
公共字符串名称{get;set;}
公共双距离{get;set;}
}
类视图模型
{
公共IList FetchNearbyLocations(字符串名称)
{
var currentLocation=新位置(19,-99);//这是您的当前位置
var sqliteData=new List();//从SQLite获取的数据
var itemsForListView=来自sqliteData中的项
选择新位置WithDistance
{
名称=项。名称,
距离=新位置(项目.纬度,项目.经度)。计算距离(当前位置,距离单位.公里)
};
return itemsForListView.ToList();
}
}

你可以在这里找到你的解决方案谢谢你的快速回复,这就是我想要的,我正在努力,如果我有任何疑问,请告诉你Hi Juan。我有一个疑问,关于latlng的计算只是关于距离,同样,我需要驾驶距离,因为你需要使用第三方服务。谷歌的距离矩阵API确实如此您可以指定您想要的旅行模式:驾驶(默认)、步行、骑自行车或公交。有关详细信息,请查看此处: