C#調(diào)用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding
前言
公司的一個(gè)內(nèi)部網(wǎng)站維護(hù),需要根據(jù)地名填寫經(jīng)緯度,最終同echarts生成地圖。
之前數(shù)據(jù)比較少,直接經(jīng)緯度查詢查的,https://jingweidu.bmcx.com/
現(xiàn)在數(shù)據(jù)越來越多,手動(dòng)查詢太麻煩,于是想到通過地圖api批量查詢,最后選擇了百度地圖API。
步驟 一、到百度地圖開放平臺(tái)注冊(cè)認(rèn)證,并創(chuàng)建應(yīng)用,獲取ak
百度地圖開放平臺(tái):https://lbsyun.baidu.com/apiconsole/key#/home
二、查看api文檔
根據(jù)地名獲取經(jīng)緯度的接口,可以使用逆地理編碼
https://api.map.baidu.com/geocoding/v3/?address=北京市海淀區(qū)上地十街10號(hào)&output=json&ak=您的ak&callback=showLocation //GET請(qǐng)求
接口功能介紹如下https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
查看請(qǐng)求參數(shù)
可以看到幾個(gè)主要的參數(shù)address,ak,output
、查看返回結(jié)果參數(shù)
status為返回結(jié)果狀態(tài)值,成功返回0,其它值都是失敗
三、創(chuàng)建GeocodingMap類,根據(jù)地名獲取經(jīng)緯度
根據(jù)api返回結(jié)果參數(shù),創(chuàng)建結(jié)果模型
public class GeocodingResult { public int status { get; set; } = -1; public string msg { get; set; } public Result result { get; set; } } public class Result { public Location location { get; set; } public int precise { get; set; } public int confidence { get; set; } public int comprehension { get; set; } public string level { get; set; } } public class Location { public float lng { get; set; } public float lat { get; set; } }
創(chuàng)建幾個(gè)類,存儲(chǔ)ak,請(qǐng)求url,獲取經(jīng)緯度,為了演示方便,這里將幾個(gè)類寫在一起
public class Config { public static string Ak { get; set; } = "xxxxxxxxxxxxxx";//這里根據(jù)實(shí)際填寫,填寫剛才申請(qǐng)的應(yīng)用ak } public class HttpRequestHelper { public static async Task<string> RequestUrl(string url) { string content = string.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader sr = new StreamReader(response.GetResponseStream())) { content = await sr.ReadToEndAsync(); } } return content; } } public class GeocodingMap { public static async Task<GeocodingResult> GetGeocoding(string address) { //API 文檔:https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding string url = @$"https://api.map.baidu.com/geocoding/v3/?address={address}&output=json&ak={Config.Ak}"; string strJson = await HttpRequestHelper.RequestUrl(url); var requestResult = JsonSerializer.Deserialize<GeocodingResult>(strJson); return requestResult; } }
調(diào)用
var geocoding = await GeocodingMap.GetGeocoding(address); if (geocoding.status == 0) { //經(jīng)緯度 var axisX = geocoding.result.location.lng; var axisY = geocoding.result.location.lat }
參考
百度地圖API根據(jù)地名獲取經(jīng)緯度 - 慕尼黑哲哉 - 博客園
到此這篇關(guān)于C#調(diào)用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding的文章就介紹到這了,更多相關(guān)C#百度地圖獲取經(jīng)緯度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)調(diào)用迅雷下載的方法
這篇文章主要介紹了C#實(shí)現(xiàn)調(diào)用迅雷下載的方法,非常實(shí)用的一個(gè)技巧,對(duì)于進(jìn)行C#程序設(shè)計(jì)有很好的借鑒價(jià)值,需要的朋友可以參考下2014-08-08c#基于WinForm的Socket實(shí)現(xiàn)簡單的聊天室 IM
這篇文章主要介紹了c#基于WinForm的Socket實(shí)現(xiàn)簡單的聊天室 IM的步驟,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-05-05C#中BitmapImage與BitmapSource接口的區(qū)別對(duì)比小結(jié)
BitmapImage和BitmapSource都可以用于表示和顯示圖像,本文就來介紹一下C#中BitmapImage與BitmapSource接口的區(qū)別對(duì)比,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03c# EPPlus秘籍之Excel實(shí)現(xiàn)圖表導(dǎo)出
這篇文章主要為大家介紹了c# EPPlus秘籍之Excel實(shí)現(xiàn)圖表導(dǎo)出示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12C#之WinForm WebBrowser實(shí)用技巧匯總
這篇文章主要介紹了C#之WinForm WebBrowser實(shí)用技巧匯總,包括常見的各種設(shè)置及信息獲取等,需要的朋友可以參考下2014-08-08利用C#代碼實(shí)現(xiàn)圖片旋轉(zhuǎn)360度
本文介紹利用C#代碼實(shí)現(xiàn)圖片旋轉(zhuǎn)360度,具體實(shí)例代碼已附上,僅供大家參考,希望對(duì)大家有所幫助2016-11-11