php百度轨迹

Posted 打你一下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php百度轨迹相关的知识,希望对你有一定的参考价值。

<?php

/**
* Description of Rsa
*
* @author lsf
*/

namespace lib;

class BaiDuTsapi {

//apk=‘1amCKqfKoSobuxXg3q1Q1rYiUOX7czX9‘
//put your code here
//创建服务
static public $service_add = "http://yingyan.baidu.com/api/v3/entity/add";
//里程和轨迹查询
static public $gettrack= "http://yingyan.baidu.com/api/v3/track/gettrack";
//创建终端
static public $getdistance = "http://yingyan.baidu.com/api/v3/track/getdistance";
//上传点
static public $point_upload = "http://yingyan.baidu.com/api/v3/track/addpoints";
static public $list="http://yingyan.baidu.com/api/v3/entity/list";

/**
* 构造函数
*/
public function __construct() {

}

//创建服务

/**
* $data["ak"]=用户在百度地图官网申请Web服务API类型KEY
* * $data["entity_name"]=Service 的名字,名字在同一个 Key 下不可重复,不可为空。
命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字,不能以"_"开头,最长不得超过128个字符。
* * $data["desc"]=针对此 Service 的文字描述,方便用户对 Service 进行记忆。
命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字, 不能以"_"开头,最长不得超过128个字符。
* return sid 所属服务的唯一ID,name服务名称
*/
public function queryList($data = array()) {
$n=0;
$string="";
foreach ($data as $k => $v) {
if ($n == 0) {
$string .= "?" . $k . "=" . $v;
} else {
$string .= "&" . $k . "=" . $v;
}
$n++;
}
$res = httpRequest(self::$list . $string);
$res = json_decode($res, true);
if ($res["status"] == 0) {
return array("success" => true, "data" => $res["entities"]);
} else {
return array("success" => false, "message" => "serviceAdd" . $res["message"]);
}
}
/**
* $data["ak"]=用户在百度地图官网申请Web服务API类型KEY
* * $data["entity_name"]=Service 的名字,名字在同一个 Key 下不可重复,不可为空。
命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字,不能以"_"开头,最长不得超过128个字符。
* * $data["desc"]=针对此 Service 的文字描述,方便用户对 Service 进行记忆。
命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字, 不能以"_"开头,最长不得超过128个字符。
* return sid 所属服务的唯一ID,name服务名称
*/
public function serviceAdd($data = array()) {
if (empty($data["entity_name"])) {
$data["entity_name"] = "weihom";
}
$res = httpRequest(self::$service_add, http_build_query($data));
$res = json_decode($res, true);
if ($res["status"] == 0) {
return array("success" => true, "data" => "");
} else {
return array("success" => false, "message" => "serviceAdd" . $res["message"]);
}
}
/**
* 批量上传点
* $data["ak"]:用户在百度地图官网申请Web服务API类型KEY, $data["service_id"]:在轨迹管理台创建鹰眼服务时,系统返回的 service_id
* 轨迹点总数不超过100个,json 格式。轨迹点字段描述参见 addpoint 接口,其中 entity_name,latitude,longitude,loc_time,coord_type_input5个字段必填,其他字段可选
* @param type $data
* @return type
*/
public function uploadTraceAdd($data = array()) {
$points = json_decode($data["point_list"], true);
$newPoints = array();
$i = 0;
foreach ($points as $k => $v) {
if ($k % 90 == 0 && $k > 0) {
$i++;
}
$newPoints[$i][] = $v;
}
foreach ($newPoints as $v) {
$data["point_list"] = json_encode($v);
$res = httpRequest(self::$point_upload, http_build_query($data));
$res = json_decode($res, true);
if ($res["status"] != 0) {
return array("success" => false, "message" => "uploadTraceAdd" . $res["message"]);
}
}
return array("success" => true, "data" => "");
}

/**
* 查询轨迹
* $data["ak"]:用户在百度地图官网申请Web服务API类型KEY, $data["sid"]:服务的唯一编号,$data["tid"]:此ID终端唯一编号,$data["trid"]:此ID为轨迹的唯一编号
* $data["points"]:array("location"=>array("x","y"),"locatetime"=>"")
* @param type $data
* @return distance:轨迹长度,单位:米,time:轨迹持续时间,单位:毫秒,counts:返回的轨迹点数量
*/
public function gettrack($data = array()) {
$string = "";
$data["page_size"] = 4000;
$data["is_processed"] = 1;
$data["supplement_mode"] = "driving";
$data["coord_type_output"] = "bd09ll";
$data["need_mapmatch"]=1;
$data["supplement_content"]="distance_and_points";
$n=0;
$string="";
foreach ($data as $k => $v) {
if ($n == 0) {
$string .= "?" . $k . "=" . $v;
} else {
$string .= "&" . $k . "=" . $v;
}
$n++;
}
$res = httpRequest(self::$gettrack . $string);
$res = json_decode($res, true);
if ($res["status"] == 0) {
return array("success" => true, "data" => $res);
} else {
return array("success" => false, "message" => "queryTrsearch" . $res["message"]);
}
}

/**
* 里程查询:start_time=开始时间,end_time=结束时间 entity_name=服务名 service_id=返回的服务id
* @param type $data
* @return type
*/
public function getdistance($data = array()) {
$string = "";
$data["is_processed"] = 1;
$data["supplement_mode"] = "driving";
foreach ($data as $k => $v) {
if ($n == 0) {
$string .= "?" . $k . "=" . $v;
} else {
$string .= "&" . $k . "=" . $v;
}
$n++;
}
$res = httpRequest(self::$getdistance . $string);
$res = json_decode($res, true);
if ($res["status"] == 0) {
return array("success" => true, "data" => $res["distance"]);
} else {
return array("success" => false, "message" => "queryTrsearch" . $res["message"]);
}
}

}

以上是关于php百度轨迹的主要内容,如果未能解决你的问题,请参考以下文章

百度地图上如何实现轨迹回放

怎么查看百度地图足迹记录轨迹

android百度地图如何记录车辆行车轨迹

百度地图绘制运动轨迹技巧

Android百度地图:百度地图运动轨迹纠偏去噪绑路之百度鹰眼

Android百度地图:百度地图画运动轨迹及图层点击事件处理