使用 Bing Geolocation 区分城市或州

Posted

技术标签:

【中文标题】使用 Bing Geolocation 区分城市或州【英文标题】:Telling the difference between city or state using Bing Geolocation 【发布时间】:2014-10-31 16:47:19 【问题描述】:

我有一个有趣的挑战。我有一个全球谷歌地图搜索表单,用户被告知他们可以输入城市、州或邮政编码。输入 zip:太好了。进城:厉害。进入城市和州:美丽。进入只是一种状态:没有快乐。

我需要判断用户是只输入了一个城市还是一个州/省。我发现 Bing Geolocation 服务可以做到这一点。位置信息在model.Location 中提供,可以是城市、州、城市和州或邮编。

目前我正在使用的代码:

int n = 0;
bool isZipCode = int.TryParse(model.Location, out n); 
string[] nonZipLocation = model.Location.Split(',');

//get lat and long
XmlDocument xmlResponse = App.Geocoder.UserDefinedFunctions.Geocode(
    "",
    isZipCode ? "" : nonZipLocation.Length > 1 ? nonZipLocation[1] : "", //state
    isZipCode ? "" : nonZipLocation[0], //city
    isZipCode ? n.ToString() : "", //zip
    ""); //street address
XmlNodeList locations = xmlResponse.GetElementsByTagName("Location");

if (locations != null && locations.Count > 0) 
    model.Longitude = locations[0]["Point"]["Longitude"].InnerText;
    model.Latitude = locations[0]["Point"]["Latitude"].InnerText;
//end if

我遇到问题的地方是: 1.我首先检查它是否是数字zip,如果是则将其放入zip中。 2. 我用逗号分开,看看我是否有一个城市和州/省。 (问题的开始) 如果有多个元素,我会放置一个城市和州。 如果拆分中只有一个元素,则进入城市。

如何判断用户进入的是城市还是州/省?我知道一种解决方案是建立一份详尽的州、领地和省列表。我知道另一种可能的解决方案可能我第三方服务(除非 bing 地理定位可以为我做这件事而且我不知道)。还是有其他解决方案?

【问题讨论】:

您的代码似乎有问题。但是,除非我们有code or information that can reproduce the problem,否则我们无能为力。否则,我们只是在盲目猜测。 但是建立一个州和省的列表真的那么低效吗?即使有 100,000 多个,使用 Hashset 查找也是非常快速的 已编辑问题以包含代码和对 bing 服务的调用 我投票决定重新打开,因为它现在是一个特定问题,但您还没有告诉我们代码的哪一部分给您带来了问题。 谢谢。我在上次编辑中提出了一个具体问题。 【参考方案1】:

使用 Bing 地图 REST 位置 API 对您的地址进行地理编码。文档可以在这里找到:http://msdn.microsoft.com/en-us/library/ff701715.aspx

有关如何在 c# 中使用此服务的信息可以在这里找到:

http://msdn.microsoft.com/en-us/library/jj819168.aspx

http://msdn.microsoft.com/en-us/library/jj870778.aspx

我还建议您查看有关此服务的这些提示:http://blogs.bing.com/maps/2013/02/14/bing-maps-rest-service-tips-tricks/

【讨论】:

以上是关于使用 Bing Geolocation 区分城市或州的主要内容,如果未能解决你的问题,请参考以下文章

用于跟踪用户位置的 Google Geolocation Api - 国家、城市、州、时区

需要使用 Bing API 将查询转换为 lat 和 lon,适用于某些,但不是全部

geolocation/ 百度地图api Geolocation 定位当前城市信息

使用 HERE Geolocation API 从文本中获取城市建议列表

如何使用纬度和经度获取位置名称或城市?

使用 bing 地图 API,我可以进行服务器端调用并获取给定城市的纬度/经度吗?