經緯度轉換為詳細地址信息 參考文檔:http://lbs.qq.com/webservice_v1/guide-gcoder.html 首先申請key,如果使用的是服務端請求webservice API ,申請密鑰的時候要選擇“服務端”,創建成功之後設置ip白名單,否則預設全部ip都可以使用的你的k ...
經緯度轉換為詳細地址信息
參考文檔:http://lbs.qq.com/webservice_v1/guide-gcoder.html
首先申請key,如果使用的是服務端請求webservice API ,申請密鑰的時候要選擇“服務端”,創建成功之後設置ip白名單,否則預設全部ip都可以使用的你的key。
下麵是我封裝的工具類
/// <summary> /// 騰訊地圖經緯度轉換幫助類 /// 參考文檔:http://lbs.qq.com/webservice_v1/guide-gcoder.html /// </summary> public class TencentMapHelper { /// <summary> /// 根據經緯度返回對應的城市信息 /// </summary> /// <param name="location">緯度+,+經度:36.15849,120.42385</param> /// <returns>轉化之後的地址</returns> public static TencentAddressModel GetAddress(string location) { var key = ConfigurationManager.AppSettings["mapkey"]; var convertAddress = $"http://apis.map.qq.com/ws/geocoder/v1/?location={location}&key={key}"; var res = HttpClientHelper.SendMessage(convertAddress); var ipModel = JObject.Parse(res).ToObject<TencentAddressModel>(); return ipModel; } } /// <summary> /// 經緯度轉換後得到的結果實體 /// </summary> public class TencentAddressModel { /// <summary> /// 狀態碼,0為正常, /// 310請求參數信息有誤, /// 311Key格式錯誤, /// 306請求有護持信息請檢查字元串, /// 110請求來源未被授權 /// </summary> public string status { set; get; } /// <summary> /// 狀態說明 /// </summary> public string message { set; get; } /// <summary> /// 逆地址解析結果 /// </summary> public AddressModel result { set; get; } /// <summary> /// 轉換之後的坐標。若有多個坐標,則用 “;”進行區分和間隔 /// </summary> public string locations { set; get; } } /// <summary> /// result /// </summary> public class AddressModel { /// <summary> /// 地址描述 /// </summary> public string address { set; get; } /// <summary> /// 位置描述 /// </summary> public RegeModel formatted_addresses { set; get; } /// <summary> /// 地址部件,address不滿足需求時可自行拼接 /// </summary> public Component address_component { set; get; } } /// <summary> /// 位置描述 /// </summary> public class RegeModel { /// <summary> /// 經過騰訊地圖優化過的描述方式,更具人性化特點 /// </summary> public string recommend { set; get; } /// <summary> /// 大致位置,可用於對位置的粗略描述 /// </summary> public string rough { set; get; } } /// <summary> /// 地圖組件 /// </summary> public class Component { /// <summary> /// 國家 /// </summary> public string nation { set; get; } /// <summary> /// 省 /// </summary> public string province { set; get; } /// <summary> /// 市 /// </summary> public string city { set; get; } /// <summary> /// 區,可能為空字串 /// </summary> public string district { set; get; } /// <summary> /// 街道,可能為空字串 /// </summary> public string street { set; get; } /// <summary> /// 門牌,可能為空字串 /// </summary> public string street_number { set; get; } }
反射的實體只是寫了我自己需要的欄位,大家可以加上自己需要的欄位,就可以直接使用了。
上面的代碼只是把經緯轉化為詳細地址信息,大家如果有別的需求可以自己修改。重在分享。