百度地图API学习02:C#调用地点检索功能Web API案例精讲

目录

1 准备工作

2 开发文档

3 接口测试

3.1 测试代码及结果

3.2 报错:APP不存在,AK有误请检查再重试及处理方法

4 使用C#调用返回结果并界面显示

4.1 界面搭建

4.2 要素类的定义

4.2.1 定义json返回结果类

4.2.3 相关设置

4.2.4 程序源码

4.2.5 界面展示

5 参考资料


 


今天我们的要做的事情就是,利用百度地图的开发文档,批量获取某一类兴趣点(Point of interest, POI)

比如银行的ATM机,一个城市有很多ATM,最笨的办法是使用百度坐标拾取系统一个一个来,太麻烦

今天介绍一个比较牛逼的办法,且听我一一道来

1 准备工作

  • 以服务器端应用为例,创建服务端应用,勾选地点检索

  • IP白名单自己用可以使用默认

2 开发文档

  • 点击首页的开发文档2.0

  • 找到服务文档:地点检索 -- 服务文档 -- 接口功能介绍

这样我们就得到了一个获取地点的请求链接,下边我们测试一下这个链接:

http://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=北京&output=json&ak=您的ak //GET请求

三个必选参数:

你还可下载如下文件进行更详细的城市经纬度、城市代码和行业分类信息

3 接口测试

3.1 测试代码及结果

我们以内乡县为例,得到搜索结果:

代码:

 

 

http://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=内乡县&output=json&ak=你的浏览器端或服务端应用的ak

 

结果:
{
    "status":0,
    "message":"ok",
    "results":[
        {
            "name":"中国建设银行24小时自助银行(内乡支行)",
            "location":{
                "lat":33.05112,
                "lng":111.846055
            },
            "address":"县衙西路83",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"15a93810e3c27dc014c8f621"
        },
        {
            "name":"河南省农村信用社24小时自助银行",
            "location":{
                "lat":33.053033,
                "lng":111.854251
            },
            "address":"南阳市内乡县菊潭大街129号附近",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"75702dd6505a15ec28d7abf0"
        },
        {
            "name":"中国工商银行24小时自助银行(县衙路店)",
            "location":{
                "lat":33.054578,
                "lng":111.859093
            },
            "address":"菊潭大街与县衙路交汇处向东",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"7b7c972995b6036df8f0cb5f"
        },
        {
            "name":"中国工商银行24小时自助银行服务(郦都大道店)",
            "location":{
                "lat":33.058378,
                "lng":111.843859
            },
            "address":"河南省南阳市内乡县郦都大道",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"36b5812d5209af1f8936eee1"
        },
        {
            "name":"中国邮政储蓄银行24小时自助银行(内乡县丽都大道支行)",
            "location":{
                "lat":33.060039,
                "lng":111.849445
            },
            "address":"范蠡大街与郦都大道交汇处",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"c8b378b48dff20fbb426553e"
        },
        {
            "name":"内乡县农村信用合作联社24小时自助银行(县衙路店)",
            "location":{
                "lat":33.051266,
                "lng":111.847748
            },
            "address":"县衙西路73号",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"294d1ebc12a67ab67ec8764d"
        },
        {
            "name":"河南省农村信用社24小时自助银行(西关分社)",
            "location":{
                "lat":33.050191,
                "lng":111.85332
            },
            "address":"大成路与范蠡大街交叉口东50米",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"7c2418bfbd8e18aaeb1e970e"
        },
        {
            "name":"中国银行24小时自助银行服务",
            "location":{
                "lat":33.060826,
                "lng":111.850447
            },
            "address":"菊潭大街与郦都大道交汇处",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"772b45a24e9eb9857dc87686"
        },
        {
            "name":"中国农业银行24小时自助银行服务(郦都大道店)",
            "location":{
                "lat":33.061291,
                "lng":111.85539
            },
            "address":"河南省南阳市内乡县郦都大道",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"6bc497cda51a75c7eedfca5a"
        },
        {
            "name":"中国工商银行24小时自助银行(内乡支行)",
            "location":{
                "lat":33.04935,
                "lng":111.847295
            },
            "address":"渚阳大街中段56号",
            "province":"河南省",
            "city":"南阳市",
            "area":"内乡县",
            "detail":1,
            "uid":"3810c879d0ba6ef69c09f721"
        }
    ]
}

3.2 报错:APP不存在,AK有误请检查再重试及处理方法

你的ak错误是会报错误:{"status":200,"message":"APP不存在,AK有误请检查再重试"}

你改一下可能还不对,就多使用几次CV大法[复制粘贴]就好了

4 使用C#调用返回结果并界面显示

4.1 界面搭建

只使用前面说到的三个参数:

参数描述标识
query检索关键字txt_LSsearchKeyWords
region检索区域txt_LSsearchRegion
tag检索分类偏好txt_LSsearchType

搭建的界面如下:

4.2 要素类的定义

4.2.1 定义json返回结果类

不用自己写,直接拷贝json文件即可在线生成

在线快捷生成C#的类,网站为:http://www.bejson.com/convert/json2csharp/

public class Location
    {
        /// <summary>
        /// 
        /// </summary>
        public double lat { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public double lng { get; set; }
    }

    public class ResultsItem
    {
        /// <summary>
        /// 中国建设银行24小时自助银行(内乡支行)
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Location location { get; set; }
        /// <summary>
        /// 县衙西路83
        /// </summary>
        public string address { get; set; }
        /// <summary>
        /// 河南省
        /// </summary>
        public string province { get; set; }
        /// <summary>
        /// 南阳市
        /// </summary>
        public string city { get; set; }
        /// <summary>
        /// 内乡县
        /// </summary>
        public string area { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int detail { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string uid { get; set; }
    }

    public class BaiduLocationSearchResult
    {
        /// <summary>
        /// 
        /// </summary>
        public int status { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string message { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ResultsItem> results { get; set; }
    }

4.2.3 相关设置

1) dataGridView控件的设置

禁止用户操作,仅作显示用

添加列信息:

行列宽度的设定

        private void LocationSearchV20_Load(object sender, EventArgs e)
        {
            dgv_LocationSearchRe.Columns[0].Width = dgv_LocationSearchRe.Width / 3;
            dgv_LocationSearchRe.Columns[1].Width = dgv_LocationSearchRe.Width / 6;
            dgv_LocationSearchRe.Columns[2].Width = dgv_LocationSearchRe.Width / 6;
            dgv_LocationSearchRe.Columns[3].Width = dgv_LocationSearchRe.Width / 3;
        }

4.2.4 程序源码

请关注文末公众号,回复“百度地图-地点检索API源码”,即可查看本文完整源代码

4.2.5 界面展示

5 参考资料

  1. C#如何解析JSON数据(反序列化对象)

  2. C#编程学习41:C#成长之路【干货入门,绝对开卷有益】

  3. C# DataGridView添加新行的2个方法

  4. C#通过WebService获取JSON数据并快速解析(百度地图坐标转换API为例)

  5. winform中dataGridView高度和宽度自适应填充完数据的高度和宽度,即dataGridView根据数据自适应大小


源码请关注如下公众号,回复“百度地图-地点检索API源码”。

### 丰富蜡笔小新主题网页设计的详细方案 以下是一个基于现有要求和更丰富内容的设计方案,增加了标题、段落、图片、列表、表格等元素,并保持HTML和CSS分离,代码清晰且带注释。 --- #### 文件结构 ``` project/ │ ├── index.html # 首页 ├── about.html # 关于蜡笔小新的页面 ├── characters.html # 角色介绍页面 ├── gallery.html # 图片画廊页面 ├── contact.html # 联系我们页面 ├── css/ │ └── styles.css # 样式文件 └── images/ # 图片资源目录 ``` --- ### 1. `index.html` (首页) ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>蜡笔小新 - 首页</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <!-- 导航栏 --> <nav class="navbar"> <ul> <li><a href="index.html">首页</a></li> <li><a href="about.html">关于蜡笔小新</a></li> <li><a href="characters.html">角色介绍</a></li> <li><a href="gallery.html">图片画廊</a></li> <li><a href="contact.html">联系我们</a></li> </ul> </nav> <!-- 主内容区 --> <div class="main-content"> <h1>欢迎来到蜡笔小新世界!</h1> <p>这是一个关于蜡笔小新的多页面网站。</p> <img src="images/home.jpg" alt="首页图片" class="image"> <table border="1" cellpadding="5"> <caption>主要角色列表</caption> <tr> <th>角色名</th> <th>年龄</th> <th>特点</th> </tr> <tr> <td>野原新之助</td> <td>5岁</td> <td>调皮可爱</td> </tr> <tr> <td>野原美伢</td> <td>28岁</td> <td>温柔贤惠</td> </tr> </table> </div> <!-- 脚注 --> <footer> <p>© 2023 蜡笔小新官方网站</p> </footer> </body> </html> ``` --- ### 2. `about.html` (关于蜡笔小新的页面) ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>蜡笔小新 - 关于蜡笔小新</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <nav class="navbar"> <ul> <li><a href="index.html">首页</a></li> <li><a href="about.html">关于蜡笔小新</a></li> <li><a href="characters.html">角色介绍</a></li> <li><a href="gallery.html">图片画廊</a></li> <li><a href="contact.html">联系我们</a></li> </ul> </nav> <div class="main-content"> <h1>关于蜡笔小新</h1> <p>蜡笔小新是由臼井仪人创作的漫画作品,讲述了五岁男孩野原新之助的生活故事。</p> <img src="images/about.jpg" alt="关于蜡笔小新" class="image"> <ul> <li>作者:臼井仪人</li> <li>首次出版年份:1990年</li> <li>类型:喜剧</li> </ul> </div> <footer> <p>© 2023 蜡笔小新官方网站</p> </footer> </body> </html> ``` --- ### 3. `characters.html` (角色介绍页面) ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>蜡笔小新 - 角色介绍</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <nav class="navbar"> <ul> <li><a href="index.html">首页</a></li> <li><a href="about.html">关于蜡笔小新</a></li> <li><a href="characters.html">角色介绍</a></li> <li><a href="gallery.html">图片画廊</a></li> <li><a href="contact.html">联系我们</a></li> </ul> </nav> <div class="main-content"> <h1>角色介绍</h1> <ol> <li><strong>野原新之助:</strong>五岁的调皮男孩,喜欢恶作剧。</li> <li><strong>野原美伢:</strong>新之助的母亲,温柔但有时严厉。</li> <li><strong>野原广志:</strong>新之助的父亲,工作努力但有点懒散。</li> <li><strong>小白:</strong>家里的宠物狗,聪明伶俐。</li> </ol> <img src="images/characters.jpg" alt="角色介绍" class="image"> </div> <footer> <p>© 2023 蜡笔小新官方网站</p> </footer> </body> </html> ``` --- ### 4. `gallery.html` (图片画廊页面) ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>蜡笔小新 - 图片画廊</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <nav class="navbar"> <ul> <li><a href="index.html">首页</a></li> <li><a href="about.html">关于蜡笔小新</a></li> <li><a href="characters.html">角色介绍</a></li> <li><a href="gallery.html">图片画廊</a></li> <li><a href="contact.html">联系我们</a></li> </ul> </nav> <div class="main-content"> <h1>图片画廊</h1> <div class="gallery"> <img src="images/gallery1.jpg" alt="图片1" class="image"> <img src="images/gallery2.jpg" alt="图片2" class="image"> <img src="images/gallery3.jpg" alt="图片3" class="image"> </div> </div> <footer> <p>© 2023 蜡笔小新官方网站</p> </footer> </body> </html> ``` --- ### 5. `contact.html` (联系我们页面) ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>蜡笔小新 - 联系我们</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <nav class="navbar"> <ul> <li><a href="index.html">首页</a></li> <li><a href="about.html">关于蜡笔小新</a></li> <li><a href="characters.html">角色介绍</a></li> <li><a href="gallery.html">图片画廊</a></li> <li><a href="contact.html">联系我们</a></li> </ul> </nav> <div class="main-content"> <h1>联系我们</h1> <form action="#" method="post"> <label for="name">姓名:</label> <input type="text" id="name" name="name" required> <br><br> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required> <br><br> <label for="message">留言:</label> <textarea id="message" name="message" rows="5" cols="30" required></textarea> <br><br> <input type="submit" value="提交"> </form> </div> <footer> <p>© 2023 蜡笔小新官方网站</p> </footer> </body> </html> ``` --- ### 6. `styles.css` (样式文件) ```css /* 全局样式 */ body { font-family: Arial, sans-serif; margin: 0; padding: 0; line-height: 1.6; } /* 导航栏样式 */ .navbar ul { list-style-type: none; background-color: #f4f4f4; padding: 0; overflow: hidden; } .navbar li { float: left; } .navbar li a { display: block; color: #333; text-align: center; padding: 14px 16px; text-decoration: none; } .navbar li a:hover { background-color: #ddd; } /* 主内容区样式 */ .main-content { padding: 20px; min-height: 100vh; /* 页面高度大于一屏 */ } .main-content h1 { text-align: center; } .main-content .image { max-width: 100%; height: auto; display: block; margin: auto; } /* 表格样式 */ table { width: 100%; border-collapse: collapse; margin-top: 20px; } table caption { font-size: 1.2em; margin-bottom: 10px; } /* 脚注样式 */ footer { text-align: center; padding: 10px; background-color: #f4f4f4; position: relative; bottom: 0; width: 100%; } ``` 你给的这些html代码还是内容不够丰富,能不能多一点
最新发布
06-02
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛桂琴

喜欢的读者,可以打赏鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值