我正在尝试使用 System.Device.Location 名称空间基于GeoCoordinate获取国家/地区名称。 以下是我尝试过的代码
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
watcher.MovementThreshold = 1.0; // set to one meter
CivicAddressResolver resolver = new CivicAddressResolver();
for (int k = 0; k < 100; k++)
{
watcher.TryStart(false, TimeSpan.FromMilliseconds(2000));
GeoCoordinate coord = watcher.Position.Location;
Console.WriteLine("Temp " + k + ", status: " + watcher.Status.ToString());
if (coord.IsUnknown != true)
{
CivicAddress address = resolver.ResolveAddress(watcher.Position.Location);
Console.WriteLine("Lat: {0}, Long: {1}",
coord.Latitude,
coord.Longitude);
Console.WriteLine("Country ",address.CountryRegion);
}
else
{
Console.WriteLine("Unknown latitude and longitude.");
}
}
使用此代码,我可以成功获取经度和纬度,但是地址始终未知。即使我尝试了一些经度和纬度。我正在使用.NET Framework 4.7.2。
请帮助我解决此问题。在此先感谢
答案 0 :(得分:0)
我有同样的问题。得出一个结论,即使在.net 4.8上,CivicAddressResolver尚未实现。 使用观察者的坐标,我可以使用Google Maps API返回坐标的紧密匹配地址