我正在使用 windows phone 8 应用程序,但我找不到如何获取坐标表单地址。问题是,我有我的坐标,我需要计算我和某个地址之间的距离。
windows phone 8 没有太多的文档记录,所以请帮助我。
我正在使用 windows phone 8 应用程序,但我找不到如何获取坐标表单地址。问题是,我有我的坐标,我需要计算我和某个地址之间的距离。
windows phone 8 没有太多的文档记录,所以请帮助我。
您正在寻找的内容称为“地理编码”:将地址转换为地理坐标。
如前所述,您可以在 WP7 上使用 Google 和 Bing 来实现这一目标。在 windows phone 8 上,框架支持地理编码和反向地理编码。您可以在这篇诺基亚介绍文章(在“地理编码”下)中阅读对地理编码的概述,并在另一篇诺基亚文章中阅读更全面的概述。
这是从地址转换为坐标的地理编码示例:
private void Maps_GeoCoding(object sender, RoutedEventArgs e)
{
GeocodeQuery query = new GeocodeQuery()
{
GeoCoordinate = new GeoCoordinate(0, 0),
SearchTerm = "Ferry Building, San-Francisco"
};
query.QueryCompleted += query_QueryCompleted;
query.QueryAsync();
}
void query_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Ferry Building Geocoding results...");
foreach (var item in e.Result)
{
sb.AppendLine(item.GeoCoordinate.ToString());
sb.AppendLine(item.Information.Name);
sb.AppendLine(item.Information.Description);
sb.AppendLine(item.Information.Address.BuildingFloor);
sb.AppendLine(item.Information.Address.BuildingName);
sb.AppendLine(item.Information.Address.BuildingRoom);
sb.AppendLine(item.Information.Address.BuildingZone);
sb.AppendLine(item.Information.Address.City);
sb.AppendLine(item.Information.Address.Continent);
sb.AppendLine(item.Information.Address.Country);
sb.AppendLine(item.Information.Address.CountryCode);
sb.AppendLine(item.Information.Address.County);
sb.AppendLine(item.Information.Address.District);
sb.AppendLine(item.Information.Address.HouseNumber);
sb.AppendLine(item.Information.Address.Neighborhood);
sb.AppendLine(item.Information.Address.PostalCode);
sb.AppendLine(item.Information.Address.Province);
sb.AppendLine(item.Information.Address.State);
sb.AppendLine(item.Information.Address.StateCode);
sb.AppendLine(item.Information.Address.Street);
sb.AppendLine(item.Information.Address.Township);
}
MessageBox.Show(sb.ToString());
}
当我在 WP8 上运行此代码段时,我收到以下消息框:
您有多种选择,我用来完成此任务的方法是使用网络服务、GOOGLE、BING、YAHOO 等。
在 Bing 上(Cus 适用于 windows phone),您需要一个密钥才能访问地图 api 您可以在 http://www.microsoft.com/maps/developers/mobile.aspx获取密钥
获得密钥后,您可以访问 WP7.1 SDK for BING,或者如果这对您不起作用,请使用 Rest Service http://msdn.microsoft.com/en-us/library/ff701715.aspx上的位置 api
Bing Maps REST 服务还提供从给定地址获取 Lat/Long 的功能,更多信息可在此处的 MSDN上找到
您将需要在此处获取 Bind Maps 密钥...