JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发电商视觉设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

百度 LBS 云使用介绍

来源:黑马程序员

浏览7248人

2020.03.12

百度地图上收录的是常见的位置信息,而如果有一些特殊的未被百度地图收录的地点,百度提供的 LBS 云服务可以让我们很方便的自己去收录地点信息(如景点的卫生间等)

1. LBS 云简介

LBS 是百度地图针对 LBS 开发者推出的平台级服务,结合已有的地图 API 和 SDK 服务,通过开放服务端存储和计算能力,提供海量位置数据的实时存储、检索、展示一体化解决方案

基于 LBS 实现 1:云端存储 2、云端检索 3、云地理编码4、云地理逆编码

1584003982106662.jpg

2.LBS 注册和密钥申请

百度地图开放平台网址

http://lbsyun.baidu.com/

使用 LBS 云服务必须拥有百度账号,登陆账号后申请开启 LBS 云服务功能,要使用 LBS 云服务必须申请密钥

1584004009114292.jpg

2.1 密钥应用类型

1584004042220107.jpg

选择需要的应用类型,对于后端申请服务端; 通过 js 代码就申请浏览器端


2.2 勾选需要的服务

1584004070176860.jpg

2.3 设置检验方式和白名单

1584004089274413.jpg

此处 ip 地址格式输错会有提示(以上是服务端配置)

浏览器端稍有不同

1584004110994593.jpg

3.LBS 配额管理

百度针对 LBS 云服务提供了一定的配额,超过免费额度就要花钱去买

 1584004140103220.jpg

这个功能提供流量图和余额明细,管理起来还是很方便。一般测试开发和小规模试用是足够了,这点百度还做的不错。


4.LBS 资料下载

百度提供了详细的开发说明,可下载文档和代码例子

1584004160537036.jpg

注意 LBS 云分为云存储和云检索

云存储是负责新建,删除和修改表的类似数据库的 DML 语句,云检索才是真正查询数据的。

5.LBS 建表和插入数据

LBS 可以直接页面上根据百度地图插入数据

点击左侧

1584004192119331.jpg

进入

1584004215469046.jpg

可以点右侧创建按钮新建表

1.创建表名

 1584004246135816.jpg

2.设置字段

1584004275440258.jpg

LBS 的表中设置有默认字段,除默认字段也可手动添加

 1584004309103147.jpg

3.发布

1584004366138803.jpg

如果要启用,就勾选

2.添加信息

点击表数据管理

 1584004395127520.jpg

点击新增

1584004422779908.jpg

根据十字星在地图上选点,然后填写信息(一般经度,纬度不用变)

1584004444105341.jpg

保存后就进数据存入

1584004468477781.jpg

3.后台代码调用

参考文档

@Test

//建立表 geotable

public void demo1() throws ClientProtocolException, IOException { // 1、 创建 httpClient 对象

HttpClient client = HttpClients.createDefault();

//2、 请求对象

HttpPost httpPost = new HttpPost( "http://api.map.baidu.com/geodata/v3/geotable/create");

//3、 绑定参数

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("name", "javaee41")); nameValuePairs.add(new BasicNameValuePair("geotype", "1")); nameValuePairs.add(new BasicNameValuePair("is_published", "1")); nameValuePairs.add(new BasicNameValuePair("ak",

"a9F3QkTyeoyKAt2iR5irH2xRzWSBaqzk"));

// name=mytable4&geotype=1

httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, Charsets.UTF_8));

//4、 发送请求

HttpResponse httpResponse = client.execute(httpPost);

//5、 打印结果数据

HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity));

}

@Test

//查询表

public void demo2() throws ClientProtocolException, IOException { // 1、 创建 httpClient 对象

HttpClient client = HttpClients.createDefault();

//2、 请求对象

HttpGet httpGet = new HttpGet(

"http://api.map.baidu.com/geodata/v3/geotable/list?ak=a9F3QkTyeoyKAt2iR5i rH2xRzWSBaqzk");

//3、发送请求

HttpResponse httpResponse = client.execute(httpGet);

//4、 打印结果数据

HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity));

}

@Test

//查询表

public void demo4() throws ClientProtocolException, IOException { // 1、 创建 httpClient 对象

HttpClient client = HttpClients.createDefault();

//2、 请求对象

HttpGet httpGet = new HttpGet(

"http://api.map.baidu.com/geodata/v3/column/list?ak=a9F3QkTyeoyKAt2iR5irH 2xRzWSBaqzk&geotable_id=191874");

//3、发送请求

HttpResponse httpResponse = client.execute(httpGet);

//4、 打印结果数据

HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity));

}

@Test

//查询表

public void demo5() throws ClientProtocolException, IOException { // 1、 创建 httpClient 对象

HttpClient client = HttpClients.createDefault();

//2、 请求对象

HttpGet httpGet = new HttpGet(

"http://api.map.baidu.com/geodata/v3/poi/list?ak=a9F3QkTyeoyKAt2iR5irH2xR zWSBaqzk&geotable_id=191874");

//3、发送请求

HttpResponse httpResponse = client.execute(httpGet);

//4、 打印结果数据

HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); }