C#調(diào)用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding
前言
公司的一個內(nèi)部網(wǎng)站維護(hù),需要根據(jù)地名填寫經(jīng)緯度,最終同echarts生成地圖。
之前數(shù)據(jù)比較少,直接經(jīng)緯度查詢查的,https://jingweidu.bmcx.com/
現(xiàn)在數(shù)據(jù)越來越多,手動查詢太麻煩,于是想到通過地圖api批量查詢,最后選擇了百度地圖API。
步驟 一、到百度地圖開放平臺注冊認(rèn)證,并創(chuàng)建應(yīng)用,獲取ak
百度地圖開放平臺:https://lbsyun.baidu.com/apiconsole/key#/home

二、查看api文檔
根據(jù)地名獲取經(jīng)緯度的接口,可以使用逆地理編碼
https://api.map.baidu.com/geocoding/v3/?address=北京市海淀區(qū)上地十街10號&output=json&ak=您的ak&callback=showLocation //GET請求
接口功能介紹如下https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
查看請求參數(shù)
可以看到幾個主要的參數(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)建幾個類,存儲ak,請求url,獲取經(jīng)緯度,為了演示方便,這里將幾個類寫在一起
public class Config
{
public static string Ak { get; set; } = "xxxxxxxxxxxxxx";//這里根據(jù)實(shí)際填寫,填寫剛才申請的應(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)調(diào)用迅雷下載的方法
這篇文章主要介紹了C#實(shí)現(xiàn)調(diào)用迅雷下載的方法,非常實(shí)用的一個技巧,對于進(jìn)行C#程序設(shè)計有很好的借鑒價值,需要的朋友可以參考下2014-08-08
c#基于WinForm的Socket實(shí)現(xiàn)簡單的聊天室 IM
這篇文章主要介紹了c#基于WinForm的Socket實(shí)現(xiàn)簡單的聊天室 IM的步驟,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-05-05
C#中BitmapImage與BitmapSource接口的區(qū)別對比小結(jié)
BitmapImage和BitmapSource都可以用于表示和顯示圖像,本文就來介紹一下C#中BitmapImage與BitmapSource接口的區(qū)別對比,具有一定的參考價值,感興趣的可以了解一下2024-03-03
c# EPPlus秘籍之Excel實(shí)現(xiàn)圖表導(dǎo)出
這篇文章主要為大家介紹了c# EPPlus秘籍之Excel實(shí)現(xiàn)圖表導(dǎo)出示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
C#之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í)例代碼已附上,僅供大家參考,希望對大家有所幫助2016-11-11

