无法从地址获取地理位置
本文关键字:获取 地理位置 地址 | 更新日期: 2023-09-27 17:58:11
我正在尝试获取列表中几个地址的地理坐标:
private void setRestaurant()
{
foreach (Restaurant restaurant in allRestaurant)
{
GeoCoordinate help;
GeocodeQuery query = new GeocodeQuery()
{
GeoCoordinate = new GeoCoordinate(0, 0),
SearchTerm = restaurant.address
};
query.QueryCompleted += (s, e) =>
{
foreach (var item in e.Result)
{
help = item.GeoCoordinate;
restaurants.Add(restaurant);
}
};
query.QueryAsync();
}
}
由于某些原因,它无法获得其中任何一个的地理编码(有时它会找到一个)。地址是正确的,我确信这一点,我一个接一个地尝试过,没有迭代,所以错误就在这段代码中。知道吗?
谢谢!
这就是为什么:
foreach (Restaurant restaurant in allRestaurant)
{
GeoCoordinate help;
GeocodeQuery query = new GeocodeQuery()
{
GeoCoordinate = new GeoCoordinate(),
SearchTerm = restaurant.address
};
TaskCompletionSource<Restaurant> task = new TaskCompletionSource<Restaurant>();
query.QueryCompleted += (s, ev) =>
{
foreach (var item in ev.Result)
{
help = item.GeoCoordinate;
task.TrySetResult(restaurant);
}
task.TrySetResult(null);
};
query.QueryAsync();
var rest = (await task.Task);
if (rest != null)
restaurants.Add(rest);
}
您似乎无法运行多个查询,因此在检查另一个地址之前必须等待。