bingmapsresttoolkit 有时会为我返回错误的纬度和经度,例如邮政编码:CV34 6DD。正确的地理位置是
52,275406 & -1,579631
但是api返回
56.2158352 & -2.9440218
我的代码:
var request = new GeocodeRequest();
request.BingMapsKey = bingKey;
request.Query = postCode;
var result = await request.Execute();
if (result.StatusCode == 200)
{
var toolkitLocation = (result?.ResourceSets?.FirstOrDefault())
?.Resources?.FirstOrDefault()
as Location;
if (toolkitLocation != null)
{
latitude = toolkitLocation.Point.Coordinates[0];
longitude = toolkitLocation.Point.Coordinates[1];
}
}
知道我做错了什么吗?
Bing Maps REST Toolkit 只是传递来自 Bing Maps REST 服务的响应。因此,本例中的问题在于 Bing 地图 REST 服务的结果。仔细查看,地理编码器似乎无法识别“CV34 6DD”。
你所说的是正确的坐标点,指向田野的中间(根据卫星图像),距离皇家邮政所说的邮政编码所在的位置约1公里(同样在田野中)。做了一些研究,看起来这是一个较新的邮政编码。请注意,英国每月大约有 2 万次邮政编码更改。因此,在本例中,问题似乎在于这个新邮政编码尚未进入 Bing 地图,因此它与街道地址“34 Keilburn, Lundin links, Leven, KY8 6DD, Scotland”相匹配、英国”这与预期结果相差甚远。如果您使用结构化地址查询,因为您知道输入是邮政编码,则不会返回任何结果,因为系统中尚不存在该邮政编码。通常,地理编码器会将层次结构向上移动到邮政编码区域,例如“CV34”,但是由于某种原因,这似乎没有发生在这里。
由于这是数据问题,您可以直接向 Bing 地图报告,网址为 https://bing.com/maps 搜索邮政编码,可能不会返回任何结果。单击“报告问题”按钮。 (我也刚刚通过那里报告了这一点)。