1、服务概述:
官网地址:鹰眼轨迹服务 | 百度地图API SDK (里面有相关功能的介绍)
2、鹰眼轨迹服务基本概念:
3、权限与配额:
4、创建鹰眼服务:
5、终端管理:
添加Entity:
//地图应用-服务端-AK
private String ak = "你的密钥";
// 新增实体
@Test
public void testEntityAdd(){
String url = "https://yingyan.baidu.com/api/v3/entity/add";
// 创建实体
String body = HttpRequest.post(url)
.form("ak",ak)
//鹰眼服务service_id
.form("service_id",******)
.form("entity_name","route_1_1001")
.form("entity_desc","用户一创建的1001路线")
.execute().body();
System.out.println(body);
}
添加自定义字段:
更新Entity:
删除Entity:
查询Entity:
6、轨迹上传:
// 上传轨迹 为一个entity上传一个轨迹点
@Test
public void testEntityaddpoint(){
String url = "https://yingyan.baidu.com/api/v3/track/addpoint";
// 创建实体
String body = HttpRequest.post(url)
.form("ak",ak)
.form("service_id",2340**)
.form("entity_name","route_1_1002")
.form("latitude",21.276161)//纬度
.form("longitude",110.359064)//经度
.form("loc_time",System.currentTimeMillis()/1000)//定位时间戳,精确到秒
.form("coord_type_input","bd09ll")//返回坐标体系
.form("speed",10.23)//速度
.form("direction",15)//方向
.execute().body();
System.out.println(body);
}
7、批量添加轨迹点:
// 批量上传轨迹点
@Test
public void testEntityaddpoints(){
String url = "https://yingyan.baidu.com/api/v3/track/addpoints";
List<Object> pointList = new ArrayList<>();
pointList.add(MapUtil.builder().put("entity_name","route_1_1002")
.put("latitude",21.281264)//纬度
.put("longitude",110.363017)//经度
.put("loc_time",System.currentTimeMillis()/1000)//定位时间戳,精确到秒
.put("coord_type_input","bd09ll")//返回坐标体系
.put("speed",10.23)//速度
.put("direction",15).build());//速度
pointList.add(MapUtil.builder().put("entity_name","route_1_1001")
.put("latitude",21.284649)//纬度
.put("longitude",110.377749)//经度
.put("loc_time",System.currentTimeMillis()/1000)//定位时间戳,精确到秒
.put("coord_type_input","bd09ll")//返回坐标体系
.put("speed",10.23)//速度
.put("direction",15).build());//速度
// 创建实体
String body = HttpRequest.post(url)
.form("ak",ak)
.form("service_id",234098)
.form("point_list", JSONUtil.toJsonStr(pointList))
.execute().body();
System.out.println(body);
}
8、轨迹上传:
// 上传轨迹 为一个entity上传一个轨迹点 (模拟用户骑行操作)
@Test
public void testEntityaddpoint2(){
String url = "https://yingyan.baidu.com/api/v3/track/addpoint";
String point="110.352982,21.269002|110.349961,21.27452|110.353396,21.275264|110.354387,21.275329|110.358572,21.280737";
//循环操作: 以|进行分割
StrUtil.split(point,'|').forEach(pointStr ->{
// 以,进行分割
String[] splitStr = StrUtil.splitToArray(pointStr,',');
// 创建实体
String body = HttpRequest.post(url)
.form("ak",ak)
.form("service_id",2340**)
.form("entity_name","route_1_1003")
.form("latitude", Convert.toDouble(splitStr[1]))//纬度
.form("longitude",Convert.toDouble(splitStr[0]))//经度
.form("loc_time",System.currentTimeMillis()/1000)//定位时间戳,精确到秒
.form("coord_type_input","bd09ll")//返回坐标体系
.form("speed",10.23)//速度
.form("direction",15)//速度
.execute().body();
System.out.println(body);
try {
Thread.sleep(RandomUtil.randomInt(5,30) * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
});
}
9、查询轨迹:
// 查询轨迹里程
@Test
public void testEntitygettrack(){
String url = "https://yingyan.baidu.com/api/v3/track/gettrack";
//查询在哪个时间段
Long startTime = DateUtil.parse("2022-08-19 00:00:00").getTime()/1000;
Long endTime = DateUtil.parse("2022-08-19 23:59:59").getTime()/1000;
// 创建实体
String body = HttpRequest.get(url)
.form("ak",ak)
.form("service_id",2340**)
.form("entity_name","route_1_1003")
.form("start_time",startTime)//开始时间
.form("end_time",endTime)//结束时间
.form("is_processed",1)//是否纠偏
.execute().body();
System.out.println(body);
}