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#連接db2數(shù)據(jù)庫的實(shí)現(xiàn)方法
本篇文章是對C#連接db2數(shù)據(jù)庫的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#將PDF文檔轉(zhuǎn)換為Markdown文檔的代碼實(shí)現(xiàn)
將PDF文件轉(zhuǎn)換為Markdown格式是一個非常實(shí)用的需求,尤其是在需要將內(nèi)容從固定布局的PDF文件中提取出來,并轉(zhuǎn)換為更易于編輯和處理的文本格式時,本文將介紹如何通過C#代碼將PDF文檔轉(zhuǎn)換Markdown(MD)文檔,需要的朋友可以參考下2024-10-10

