使用Bing Maps Rest Service查找地址的经度/纬度。我得到的响应还不错,但是我在使用正确的语法来引用long / lat字段时遇到了麻烦(请参见调试器的屏幕截图)。我已经尝试过
latitude = x.ResourceSets[0].Resources[0].GeocodePoints[0].Coordinates[0];
longitude = x.ResourceSets[0].Resources[0].GeocodePoints[0].Coordinates[1];
但是它们不编译。
这里是休息服务电话...(不在屏幕截图中)。
private void GetResponse(Uri uri, Action<Response> callback)
{
System.Net.WebClient wc = new WebClient();
wc.OpenReadCompleted += (o, a) =>
{
if (callback != null)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Response));
callback(ser.ReadObject(a.Result) as Response);
}
};
wc.OpenReadAsync(uri);
}
答案 0 :(得分:1)
根据您的屏幕快照,看来x.ResourceSets[0].Resources[0]
的类型为Location
,而该数组的基类为Resource
。在访问值之前,尝试投射它:
var location = (Location)x.ResourceSets[0].Resources[0];
latitude = location.GeocodePoints[0].Coordinates[0];
longitude = location.GeocodePoints[0].Coordinates[1];