Files
car_info/app/service/ShipService.php
T

82 lines
2.3 KiB
PHP
Raw Normal View History

2025-06-09 11:37:32 +08:00
<?php
namespace app\service;
use app\util\HttpClient;
class ShipService
{
private const API_BASE_URL = 'https://api.shipxy.com/apicall/v3';
private const API_KEY = 'ab107a0254494d61a25749028c0f09c2';
/**
* 获取单个船舶信息
* @param string $mmsi 船舶MMSI号
* @return array 返回船舶信息
*/
public static function getShipInfo(string $mmsi): array
{
$url = self::API_BASE_URL . '/GetSingleShip';
$query = [
'key' => self::API_KEY,
'mmsi' => $mmsi
];
$response = HttpClient::get($url, $query);
// 检查API响应状态
if (!$response['status']) {
return [
'success' => false,
'message' => '请求失败: ' . $response['message'],
'data' => null
];
}
// 检查API业务状态
if (isset($response['data']['status']) && $response['data']['status'] !== 0) {
return [
'success' => false,
'message' => '获取船舶信息失败: ' . ($response['data']['msg'] ?? '未知错误'),
'data' => null
];
}
return [
'success' => true,
'message' => '获取成功',
'data' => $response['data']
];
2025-06-09 13:48:04 +08:00
/*$response['data'] = {
"status": 0,
"msg": "",
"data": {
"mmsi": 636023678,
"imo": 9962574,
"call_sign": "5LOW6",
"ship_name": "MSC MARIE",
"ship_cnname": "",
"data_source": 0,
"ship_type": 73,
"length": 366,
"width": 51,
"left": 35,
"trail": 250,
"draught": 15,
"dest": "SHEKOU,CN",
"destcode": "CNSHK",
"eta": "2025-06-09 09:00:00",
"eta_utc": 1749430800,
"navistat": 0,
"lat": 21.823563,
"lng": 113.788643,
"sog": 0.1,
"cog": 287.6,
"hdg": 273,
"rot": 0,
"last_time": "2025-06-09 11:57:04",
"last_time_utc": 1749441424
}
};*/
2025-06-09 11:37:32 +08:00
}
}