百度APi 鹰眼轨迹 快速入门

一、鹰眼实体的基本使用

1.1在web轨迹管理台中创建服务

百度鹰眼 (baidu.com)

1.2 鹰眼Web Api服务

鹰眼轨迹服务 | 百度地图API SDK (baidu.com)

1.2.1 add 添加实体操作

注意:add是post请求

请记得加上ak和service_id

public class TestBaiduWebApi {
    private String ak ="您的密钥";

    private int service_id = 您的鹰眼服务ID;
    @Test
    public void test(){

        String url = "https://yingyan.baidu.com/api/v3/entity/add";

        String body =  HttpRequest.post(url)
                .form("ak",ak)
                .form("service_id",service_id)
                .form("entity_name","route_1_1001")
                .form("entity_desc","用户1创建的1001的路线")
                .form("routeName","北京站到天安门广场")
                .execute().body();

        System.out.println(body);

    }
}

在web轨迹管理台中进入服务可以查看轨迹监控和终端管理

1.2.2 Entity自定义字段

在web轨迹管理台中进入设置可以进行 Entity自定义字段

1.2.3 update 更新Entity

注意:update 是post请求


    @Test
    public void test(){

        String url = "https://yingyan.baidu.com/api/v3/entity/update";

        String body =  HttpRequest.post(url)
                .form("ak",ak)
                .form("service_id",service_id)
                .form("entity_name","route_1_1001")
                .form("entity_desc","用户1创建的1001的路线")
                .form("routeName","上海到北京")
                .execute().body();

        System.out.println(body);

    }

1.2.4 delete实体对象

注意:delete是post请求


    @Test
    public void test(){

        String url = "https://yingyan.baidu.com/api/v3/entity/delete";

        String body =  HttpRequest.post(url)
                .form("ak",ak)
                .form("service_id",service_id)
                .form("entity_name","route_1_1001")
                .execute().body();

        System.out.println(body);

    }

1.2.5 list 查询实体对象

注意:list是get请求


    @Test
    public void test(){

        String url = "https://yingyan.baidu.com/api/v3/entity/list";

        String body =  HttpRequest.get(url)
                .form("ak",ak)
                .form("service_id",service_id)
                .form("filter","entity_names:route_1_1001")
                .form("coord_type_output","gcj02")
                .execute().body();

        System.out.println(body);

    }

二、轨迹上传

鹰眼轨迹服务 | 百度地图API SDK (baidu.com)

添加2个位置就可以看到两点之间的路径

2.1 单点轨迹上传


    @Test
    public void test(){

        String url = "https://yingyan.baidu.com/api/v3/track/addpoint";

        String body =  HttpRequest.post(url)
                .form("ak",ak)
                .form("service_id",service_id)
                .form("entity_name","route_1_1001")
                .form("latitude",39.921797)
                .form("longitude",116.412605)
                .form("loc_time",System.currentTimeMillis()/1000)
                .form("coord_type_input","gcj02")
                .form("speed",10.3)
                .form("direction",15)
                .execute().body();

        System.out.println(body);

    }

 

2.2 addpoints——批量添加轨迹点


    @Test
    public void test(){

        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",39.921797)
                .put("longitude",116.412605)
                .put("loc_time",System.currentTimeMillis()/1000)
                .put("coord_type_input","gcj02")
                .put("speed",10.3)
                .put("direction",15)
                .build());
        pointList.add(MapUtil.builder()
                .put("entity_name","route_1_1001")
                .put("latitude",39.924896)
                .put("longitude",116.410737)
                .put("loc_time",System.currentTimeMillis()/1000)
                .put("coord_type_input","gcj02")
                .put("speed",10.3)
                .put("direction",15)
                .build());

        String body =  HttpRequest.post(url)
                .form("ak",ak)
                .form("service_id",service_id)
                .form("point_list", JSONUtil.toJsonStr(pointList))
                .execute().body();

        System.out.println(body);

    }

 2.3 模拟骑行过程,每隔一段时间上传一次轨迹点


    @Test
    public void test(){

        String url = "https://yingyan.baidu.com/api/v3/track/addpoint";

        String point = "116.425972,39.927441|116.424103,39.919251|116.429853,39.922682";
        StrUtil.splitTrim(point,"|").forEach(pointStr->{
            String[] splitStr = StrUtil.splitToArray(pointStr,',');

            String body =  HttpRequest.post(url)
                    .form("ak",ak)
                    .form("service_id",service_id)
                    .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","gcj02")
                    .form("speed",10.3)
                    .form("direction",15)
                    .execute().body();
            System.out.println(body);

        });

        try {

            Thread.sleep(RandomUtil.randomInt(5,30)*1000);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

三、 轨迹查询和轨迹纠缠

gettrack——轨迹查询与纠偏

简介:查询一个时间段内一个entity的连续轨迹信息,并进行纠偏。
支持功能:支持对一段轨迹进行纠偏、绑路、补偿中断区间道路、分析起终点、计算总里程和收费里程。其中每一个轨迹点的信息包括:坐标、速度、方向、高度、定位精度、定位模式、交通方式等。
适用场景:适用于查询一段时间的轨迹并进行纠偏,解决轨迹缺失与漂移问题,这也是开发者最常使用、最依赖鹰眼的一个场景。

3.1 轨迹查询

    @Test
    public void test(){

        String url = "https://yingyan.baidu.com/api/v3/track/gettrack";
        Long start_time = DateUtil.parse("2024-05-10 00:00:00").getTime() / 1000;
        Long end_time = DateUtil.parse("2024-05-10 23:59:59").getTime() / 1000;

        String body =  HttpRequest.get(url)
                .form("ak",ak)
                .form("service_id",service_id)
                .form("entity_name","route_1_1003")
                .form("start_time",start_time)
                .form("end_time",end_time)
                .form("is_processed","1")
                .execute().body();
        System.out.println(body);
    }

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值