我有一個有趣的挑戰。我有一個全球谷歌地圖搜索表單,用戶被告知可以輸入城市,州或郵編。輸入zip:很好。進入城市:真棒。進入城市和州:美麗。進入一個狀態:沒有快樂。使用Bing Geolocation來區分城市或州的區別
我需要告訴用戶是否進入了一個城市或只是一個州/省。我發現Bing地理定位服務可以做到這一點。位置信息來自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。 我第一次檢查,看看它是否是一個數字壓縮,並將其放置在拉鍊,如果它是。 2.我用逗號分開,看看我是否有一個城市和州/省。 (問題開始) 如果有多個元素,我放置一個城市和州。 如果拆分中只有一個元素,它會進入城市。
如何判斷用戶是否進入城市或州/省?我知道一個解決方案是建立一個詳盡的州,地區和省份名單。我知道另一個可能的解決方案可能我的第三方服務(除非bing地理位置可以爲我做,我不知道它)。還是有另一種解決方案?
看來你的代碼有問題。但是,除非我們有[可以重現問題的代碼或信息](http://stackoverflow.com/help/mcve),否則我們無法提供幫助。否則,我們只是盲目猜測。 – gunr2171 2014-10-31 16:49:00
但是建立一個州和省份的清單真的很無效嗎?即使有10萬以上,它也將是一個非常快速的查找與Hashset – cost 2014-10-31 16:50:19
問題已編輯,包括代碼和撥打服務 – MetalPhoenix 2014-10-31 17:07:54