实时轨迹php,php高德轨迹

标签:可重复   location   nal   names   中文   array   points   res   mes

/**

* Description of Rsa

*

* @author lsf

*/

namespace lib;

class GaoDeTsapi {

//put your code here

//创建服务

static public $service_add = "https://tsapi.amap.com/v1/track/service/add";

//创建轨迹

static public $trace_add = "https://tsapi.amap.com/v1/track/trace/add";

//里程和轨迹查询

static public $terminal = "https://tsapi.amap.com/v1/track/terminal/trsearch";

//创建终端

static public $terminal_add = "https://tsapi.amap.com/v1/track/terminal/add";

//上传点

static public $point_upload = "https://tsapi.amap.com/v1/track/point/upload";

/**

* 构造函数

*/

public function __construct() {

}

//创建服务

/**

* $data["key"]=用户在高德地图官网申请Web服务API类型KEY

* * $data["name"]=Service 的名字,名字在同一个 Key 下不可重复,不可为空。

命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字,不能以"_"开头,最长不得超过128个字符。

* * $data["desc"]=针对此 Service 的文字描述,方便用户对 Service 进行记忆。

命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字, 不能以"_"开头,最长不得超过128个字符。

* return sid 所属服务的唯一ID,name服务名称

*/

public function serviceAdd($data = array()) {

if (empty($data["name"])) {

$data["name"] = "weihom". rand(100000, 900000);

}

$res = httpRequest(self::$service_add, http_build_query($data));

$res = json_decode($res, true);

if ($res["errcode"] == "10000") {

return array("success" => true, "data" => $res["data"]);

} else {

return array("success" => false, "message" => "serviceAdd".$res["errmsg"]);

}

}

/**

* 创建终端

* $data["key"]=用户在高德地图官网申请Web服务API类型KEY

* $data["name"]=Service 的名字,名字在同一个 Key 下不可重复,不可为空。

命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字,不能以"_"开头,最长不得超过128个字符。

* $data["sid"]=针对此 Service 的文字描述,方便用户对 Service 进行记忆。

命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字, 不能以"_"开头,最长不得超过128个字符。

* @param type $data

* return sid 终端所属service的id,tid终端id,name终端的名称

*/

public function terminalAdd($data = array()) {

$res = httpRequest(self::$terminal_add, http_build_query($data));

$res = json_decode($res, true);

if ($res["errcode"] == "10000") {

return array("success" => true, "data" => $res["data"]);

} else {

return array("success" => false, "message" => "terminalAdd".$res["errmsg"]);

}

}

/**

* 批量上传点

* $data["key"]:用户在高德地图官网申请Web服务API类型KEY, $data["sid"]:服务的唯一编号,$data["tid"]:此ID终端唯一编号,$data["trid"]:此ID为轨迹的唯一编号

* $data["points"]:array("location"=>array("x","y"),"locatetime"=>"")

* @param type $data

* @return type

*/

public function uploadTraceAdd($data = array()) {

$points = json_decode($data["points"], 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["points"] = json_encode($v);

$res = httpRequest(self::$point_upload, http_build_query($data));

$res = json_decode($res, true);

// if ($res["errcode"] != "10000") {

// return array("success" => false, "message" => "uploadTraceAdd".$res["errmsg"]);

// }

}

return array("success" => true, "data" =>"");

}

/* * 创建

* $data["key"]:用户在高德地图官网申请Web服务API类型KEY, $data["sid"]:服务的唯一编号,$data["tid"]:此ID终端唯一编号,$data["trid"]:此ID为轨迹的唯一编号

* $data["points"]:array("location"=>array("x","y"),"locatetime"=>"")

* @param type $data

* @return type

*/

public function traceAdd($data = array()) {

$res = httpRequest(self::$trace_add, http_build_query($data));

$res = json_decode($res, true);

if ($res["errcode"] == "10000") {

return array("success" => true, "data" => $res["data"]);

} else {

return array("success" => false, "message" => "traceAdd" . $res["errmsg"]);

}

}

/**

* 查询里程

* $data["key"]:用户在高德地图官网申请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 queryTrsearch($data = array()) {

$string = "";

$n = 0;

$data["recoup"]=1;

$data["gap"]=100;

foreach ($data as $k => $v) {

if ($n == 0) {

$string .= "?" . $k . "=" . $v;

} else {

$string .= "&" . $k . "=" . $v;

}

$n++;

}

$res = httpRequest(self::$terminal . $string);

$res = json_decode($res, true);

if ($res["errcode"] == "10000") {

return array("success" => true, "data" => $res["data"]["tracks"][0]);

} else {

return array("success" => false, "message" => "queryTrsearch" . $res["errmsg"]);

}

}

public function oneQueryTrsearch($data = array()) {

$string = "";

$n = 0;

$data["recoup"]=1;

$data["gap"]=50;

$data["ispoints"]=1;

$data["pagesize"]=980;

$data["mapmatch"]=1;

$data["attribute"]=1;

$data["rthreshold"]=20;

foreach ($data as $k => $v) {

if ($n == 0) {

$string .= "?" . $k . "=" . $v;

} else {

$string .= "&" . $k . "=" . $v;

}

$n++;

}

$res = httpRequest(self::$terminal . $string);

$res = json_decode($res, true);

if ($res["errcode"] == "10000") {

return array("success" => true, "data" => $res["data"]);

} else {

return array("success" => false, "message" => "queryTrsearch" . $res["errmsg"]);

}

}

}

php高德轨迹

标签:可重复   location   nal   names   中文   array   points   res   mes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 PHP 使用高德地图 API 进行轨迹纠偏的示例代码: ```php <?php // 配置项 $key = 'your-key'; // 高德地图 API Key $url = 'https://restapi.amap.com/v5/assistant/trajectory/correct'; // API URL $file = 'path/to/gps-data.json'; // GPS 数据文件路径 // 加载 GPS 数据 $data = json_decode(file_get_contents($file), true); // 构造请求参数 $param = array( 'key' => $key, 'output' => 'json', 'spatial_accuracy' => 'high', // 纠偏精度,可选值:low、medium、high,默认为 high 'correct_tilt' => true, // 是否校正方向角,默认为 true 'points' => array(), ); foreach ($data['locations'] as $location) { $point = explode(',', $location); $param['points'][] = array( 'longitude' => $point[0], // 经度 'latitude' => $point[1], // 纬度 'speed' => isset($point[2]) ? $point[2] : null, // 速度 'accuracy' => isset($point[3]) ? $point[3] : null, // 精度 'timestamp' => isset($point[4]) ? $point[4] : null, // 时间戳 ); } // 发送请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($param)); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); // 处理响应数据 $result = json_decode($response, true); if ($result['status'] == 1) { // 纠偏成功,输出纠偏后的数据 print_r($result['data']['corrected_points']); } else { // 纠偏失败,输出错误信息 echo $result['message']; } ``` 其中,`$key` 为高德地图开发者平台申请的 API Key,`$url` 为 API 的请求地址,`$file` 为包含 GPS 数据的 JSON 文件路径。 在示例代码中,我们首先读取 GPS 数据文件,构造 API 请求参数,并使用 cURL 发送 POST 请求。最后,解析 API 响应数据,如果纠偏成功则输出纠偏后的数据,否则输出错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值