Wpf Bing地图API:返回信息为;地址、城市、国家、邮政编码”;

Wpf Bing地图API:返回信息为;地址、城市、国家、邮政编码”;,wpf,devexpress,bing-maps,Wpf,Devexpress,Bing Maps,我在WPF DevExpress地图上使用Bing Maps API来返回特定地理位置(经度、纬度)的信息 我需要的是地址、邮政编码、城市和国家作为查询之外的单独项目 问题是Bing Maps(通过DevExpress.Xpf.Map.GeocodeRequestResult)以非唯一格式返回地址字符串,具体取决于位置(我怀疑是国家/地区)。例如,地址字符串可能返回为: 地址、城市、国家、邮政编码(例如在俄罗斯) 地址,邮政城市(德国) 地址,城市,邮编(美国) ……名单还在继续 如何从Bing

我在WPF DevExpress地图上使用Bing Maps API来返回特定地理位置(经度、纬度)的信息

我需要的是地址、邮政编码、城市和国家作为查询之外的单独项目

问题是Bing Maps(通过DevExpress.Xpf.Map.GeocodeRequestResult)以非唯一格式返回地址
字符串
,具体取决于位置(我怀疑是国家/地区)。例如,地址
字符串
可能返回为:

  • 地址、城市、国家、邮政编码(例如在俄罗斯)
  • 地址,邮政城市(德国)
  • 地址,城市,邮编(美国)
  • ……名单还在继续


    如何从Bing地图查询中正确地获取地址、邮政编码、城市和国家,而不依赖于返回的表单?

    我对DevExpress中的地图不太熟悉,但我知道您可以从Bing地图中获取结构化地址对象。如果您使用Bing地图REST服务,您可以对坐标进行反向地理编码,并使其返回结构化地址。由于您使用的是WPF,您可以在此处找到有关如何使用.NET中Bing Maps REST服务的文档:

    以下是GetResponse方法的更新版本:

    private async Task<Response> GetResponse(Uri uri)
    {
        System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
        var response = await client.GetAsync(uri);
    
        using (var stream = await response.Content.ReadAsStreamAsync())
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Response));
            return ser.ReadObject(stream) as Response;
        }
    }
    
    Response r = await GetResponse(new Uri("YOUR REST service request"));
    
    if (r != null &&
        r.ResourceSets != null &&
        r.ResourceSets.Length > 0 &&
        r.ResourceSets[0].Resources != null &&
        r.ResourceSets[0].Resources.Length > 0)
    {
        var location = r.ResourceSets[0].Resources[0] as BingMapsRESTService.Common.JSON.Location;
    
        var address = location.Address;
    }