使用Bing Geolocation讲述城市或州之间的差异

时间:2014-10-31 16:47:20

标签: c# geolocation bing

我有一个有趣的挑战。我有一个全球谷歌地图搜索表单,用户被告知他们可以进入城市,州或邮编。输入拉链:太棒了。进入城市:太棒了。进入城市和州:美丽。进入一个状态:没有快乐。

我需要判断一个用户是仅输入了一个城市还是仅输入州/省。我发现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

我遇到问题的地方是: 我首先检查一下它是否是一个数字拉链,如果是的话就把它放在拉链上。 我用逗号分开,看看我是否有一个城市和州/省。 (问题的开始)   如果有多个元素,我会放置一个城市和州。   如果拆分中只有一个元素,它会进入城市。

如何判断用户是否已进入某个城市或州/省?我知道一个解决方案是建立一个州,地区和省份的详尽清单。我知道另一种可能的解决方案可能我第三方服务(除非bing geolocation可以为我做,我不知道)。还是有另一种解决方案吗?

1 个答案:

答案 0 :(得分:0)

使用Bing Maps 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/