目录
今天我们的要做的事情就是,利用百度地图的开发文档,批量获取某一类兴趣点(Point of interest, POI)
比如银行的ATM机,一个城市有很多ATM,最笨的办法是使用百度坐标拾取系统一个一个来,太麻烦
今天介绍一个比较牛逼的办法,且听我一一道来
1 准备工作
- 以服务器端应用为例,创建服务端应用,勾选地点检索
- IP白名单自己用可以使用默认
2 开发文档
- 点击首页的开发文档2.0
- 找到服务文档:地点检索 -- 服务文档 -- 接口功能介绍
这样我们就得到了一个获取地点的请求链接,下边我们测试一下这个链接:
|
三个必选参数: |
你还可下载如下文件进行更详细的城市经纬度、城市代码和行业分类信息
3 接口测试
3.1 测试代码及结果
我们以内乡县为例,得到搜索结果:
代码:
|
|
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 参考资料
源码请关注如下公众号,回复“百度地图-地点检索API源码”。