我正在使用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;
}
我意识到这是非常具体的,如果有人会启发我,我很乐意扩展这个问题以获得更广泛的应用
答案 0 :(得分:1)
GeocodingResponse.Results
是IEnumerable<Result>
。因此,您只需要.First()
从中获取第一个Result
。
var geoResult = geoResponse.Results.First();
请注意,如果没有第一个结果,这将抛出异常。您需要在代码中处理这种情况。