C#调用百度地图API根据地名获取经纬度geocoding

 更新时间:2022年04月12日 10:25:58   作者:GreAmbWang  
本文主要介绍了C#调用百度地图API根据地名获取经纬度geocoding,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

公司的一个内部网站维护,需要根据地名填写经纬度,最终同echarts生成地图。

之前数据比较少,直接经纬度查询查的,https://jingweidu.bmcx.com/

现在数据越来越多,手动查询太麻烦,于是想到通过地图api批量查询,最后选择了百度地图API。

步骤 一、到百度地图开放平台注册认证,并创建应用,获取ak

百度地图开放平台:https://lbsyun.baidu.com/apiconsole/key#/home

二、查看api文档

根据地名获取经纬度的接口,可以使用逆地理编码 

https://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation //GET请求

接口功能介绍如下https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

查看请求参数

可以看到几个主要的参数address,ak,output

、查看返回结果参数

status为返回结果状态值,成功返回0,其它值都是失败

 

三、创建GeocodingMap类,根据地名获取经纬度

根据api返回结果参数,创建结果模型

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; }
}

创建几个类,存储ak,请求url,获取经纬度,为了演示方便,这里将几个类写在一起

public class Config
{
    public static string Ak { get; set; } = "xxxxxxxxxxxxxx";//这里根据实际填写,填写刚才申请的应用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;
    }
}
 

调用

var geocoding = await GeocodingMap.GetGeocoding(address);
if (geocoding.status == 0)
{
    //经纬度
    var axisX = geocoding.result.location.lng;
    var axisY = geocoding.result.location.lat
}

参考

百度地图API根据地名获取经纬度 - 慕尼黑哲哉 - 博客园

到此这篇关于C#调用百度地图API根据地名获取经纬度geocoding的文章就介绍到这了,更多相关C#百度地图获取经纬度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#连接db2数据库的实现方法

    C#连接db2数据库的实现方法

    本篇文章是对C#连接db2数据库的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C# 8.0新特性介绍

    C# 8.0新特性介绍

    C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新。下面通过本文给大家分享下C# 8.0的三个令人兴奋的新特性,需要的朋友参考下吧
    2017-10-10
  • C#将PDF文档转换为Markdown文档的代码实现

    C#将PDF文档转换为Markdown文档的代码实现

    将PDF文件转换为Markdown格式是一个非常实用的需求,尤其是在需要将内容从固定布局的PDF文件中提取出来,并转换为更易于编辑和处理的文本格式时,本文将介绍如何通过C#代码将PDF文档转换Markdown(MD)文档,需要的朋友可以参考下
    2024-10-10
  • C# 各种导出的方法总结

    C# 各种导出的方法总结

    本篇文章主要介绍了C# 各种导出方法的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • WPF弹出自定义窗口的方法

    WPF弹出自定义窗口的方法

    这篇文章主要介绍了WPF弹出自定义窗口的方法,结合实例形式分析了WPF自定义窗口的创建与调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • C#中使用 record 的好处和最佳场景

    C#中使用 record 的好处和最佳场景

    这篇文章主要介绍了C#中使用 record 的好处,使用 record 类型的主要好处包括简洁的语法、自动生成的成员、基于值的相等性、非破坏性复制、解构支持、继承支持和与模式匹配的良好集成,需要的朋友可以参考下
    2024-07-07
  • C#中Equality和Identity浅析

    C#中Equality和Identity浅析

    这篇文章主要介绍了C#中Equality和Identity浅析,本文先是讲解了Equality和Identity的定义,同时讲解了判断两个对象等价性的4种方法,需要的朋友可以参考下
    2014-12-12
  • C#6 null 条件运算符

    C#6 null 条件运算符

    本文主要对比C# 6 null运算符与老版本的不同,并且用代码实例测试,发现新语法性能提高,语法简化了。希望看到的同学对你有所帮助
    2016-07-07
  • 深入分析c# 封装和访问修饰符

    深入分析c# 封装和访问修饰符

    这篇文章主要介绍了c# 封装和访问修饰符的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 深入委托与多播委托的详解

    深入委托与多播委托的详解

    本篇文章是对委托与多播委托进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论