我正在使用NuGet提供的Google Maps .NET API,并且卡在查询进入的地理编码部分。
在下面的代码中,我尝试将地址传递给 API 并返回具有匹配纬度和经度的Location
public Location GeoCode(string address)
{
GoogleMapsApi.Entities.Geocoding.Request.GeocodingRequest geoRequest = new GeocodingRequest();
geoRequest.Address = address;
GoogleMapsApi.Entities.Geocoding.Response.GeocodingResponse geoResponse = GoogleMapsApi.GoogleMaps.Geocode.Query(geoRequest);
GoogleMapsApi.Entities.Geocoding.Response.Result geoResult = geoResponse.Results.OfType<?> (?)
return geoResult.Geometry.Location;
}
我意识到这是非常具体的,如果有人能启发我,我很乐意为更一般的应用程序扩展这个问题
GeocodingResponse.Results
是一个IEnumerable<Result>
。 因此,您只需要执行.First()
即可从中获得第一个Result
。
var geoResult = geoResponse.Results.First();
请注意,如果没有第一个结果,这将引发异常。 您需要在代码中处理这种情况。