我正试图使用geocoding.getlocationasync()
按钮点击来获取位置
这是代码
private async void Srch_button_Click(object sender, EventArgs e)
{
Location loc = (Location) await Geocoding.GetLocationsAsync(srch_text.Text);
LatLng latlng_src = new LatLng(loc.Latitude, loc.Longitude);
MarkerOptions mo = new MarkerOptions();
mo.SetPosition(latlng_src);
mo.Draggable(true);
googleMap.AddMarker(mo);
CameraUpdate camup = CameraUpdateFactory.NewLatLngZoom(latlng_src, 17);
googleMap.MoveCamera(camup);
}
但它显示了无效的强制转换异常——那么我如何从IEnumerable<location>
转换为location
呢?请帮助
GetLocationsAsync
很可能返回多个位置(如方法名称所示(-作为IEnumerable
"转换";到location
只意味着从您要返回的值列表中选择一个位置,例如,如果您想要第一个条目,请使用
Location loc = await Geocoding.GetLocationsAsync().First()
或者,您可能想使用(并可视化(返回的所有位置,因此迭代返回的值列表:
foreach (Location loc in await Geocoding.GetLocationsAsync())
{
// do whatever you want to do with each "location" returned .....
}