欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#調(diào)用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding

 更新時(shí)間:2022年04月12日 10:25:58   作者:GreAmbWang  
本文主要介紹了C#調(diào)用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

公司的一個(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)文章

最新評(píng)論