RestTemplate请求百度鹰眼服务接口

5 篇文章 0 订阅
2 篇文章 0 订阅

描述:通过百度鹰眼服务获得车辆轨迹、历程

没有考虑并发问题,只是做简单的接口调试,如果有时间可以尝试自己封装一些实体,和工具类
用到的接口

public class URLConstant {
/**
	 *添加点坐标 POST请求
	 */
	public static final String BAIDUMAP_ADDPOINT = "http://yingyan.baidu.com/api/v3/track/addpoint";

	/**
	 *查询里程GET请求
	 */
	public static final String BAIDUMAP_GETDISTANCE = "http://yingyan.baidu.com/api/v3/track/getdistance?ak={ak}&service_id={service_id}&entity_name={entity_name}&start_time={start_time}&end_time={end_time}";

	/**
	 * 查询轨迹 GET请求
	 */
	public static final String BAIDUMAP_GETTRACK = "http://yingyan.baidu.com/api/v3/track/gettrack?ak={ak}&service_id={service_id}&entity_name={entity_name}&start_time={start_time}&end_time={end_time}";
}

get请求需要拼接路径,所以直接写死了!!!

spirng boot 中RestTemplate注入


@Configuration
public class RestTemplateConfig {

	@Autowired
	private RestTemplateBuilder builder;

	@Bean
	public RestTemplate restTemplate() {
		return builder.build();
	}
}

轨迹点封装

public class AddPointRequest implements  java.io.Serializable{
	/**
	 * 服务ak
	 */
	private String ak;
	/**
	 * service的ID,service 的唯一标识
	 */
	private int service_id;
	/**
	 * entity唯一标识
	 */
	private String entity_name;
	/**
	 * 纬度
	 * double(-90.0 , +90.0)
	 */
	private double latitude;
	/**
	 * 经度
	 * double(-90.0 , +90.0)
	 */
	private double longitude;
	/**
	 * 定位时设备的时间
	 * Unix时间戳
	 */
	private long loc_time;
	/**
	 * 坐标类型
	 */
	private String coord_type_input;
	//get set 

实现

@Component
public class mileage_baidu {

	@Autowired
	private RestTemplate restTemplate;
	/**
	 * 添加坐标 参数列表 
	 */
	public  String addpoint(MultiValueMap<String, Object> map ) {
		String body = restTemplate.postForObject(URLConstant.BAIDUMAP_ADDPOINT, map, String.class);
		return body;
	}

	/**
	 * 里程查询 
	 */
	public  String getdistance(Map<String, Object> templateValues) {
		ResponseEntity<String> forEntity = restTemplate.getForEntity(URLConstant.BAIDUMAP_GETDISTANCE, String.class,templateValues);
		return forEntity.getBody().toString();
	}

	/**
	 * 轨迹查询 参数列表 
	 */
	public  String gettrack(Map<String, Object> templateValues) {
		ResponseEntity<String> forEntity = restTemplate.getForEntity(URLConstant.BAIDUMAP_GETTRACK, String.class,templateValues);
		return forEntity.getBody().toString();
	}
}

addpoint()中map

	MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();
		map.add("ak", URLConstant.BAIDUMAP_AK);
		map.add("service_id", 213605);
		map.add("entity_name", "测试车");
		map.add("latitude",40.089753 );
		map.add("longitude", 116.420726);
		map.add("loc_time", 1561008251);
		map.add("coord_type_input", "bd09ll");

gettrack和getdistance中参数map相同

Map<String, Object> map = new HashMap<>();
		map.put("ak", URLConstant.BAIDUMAP_AK);
		map.put("service_id", 213605);
		map.put("entity_name", "测试车");
		map.put("start_time", "1559716508");
		map.put("end_time", "1559720408");

注意:接口接受时间类型为uninx系统的时间戳,不能转换成yyyy等格式
末尾:百度的文档特别详细,基本上过几遍就可以调试成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值