[BD2.0] Amap猎鹰使用测试

661 阅读3分钟

目录

    1. 前言
    1. 首先,创建服务
  • 2.1 创建圆形围栏
  • 2.2 查询围栏
    1. 创建终端
  • 4.1 创建轨迹(belong 终端)
  • 4.2 上传位置到轨迹(belong 轨迹)
  • 4.3 查询轨迹
  • 5.1 关联终端(tid)和围栏(gfid)
  • 6.1 (重点) 查询指定坐标是否在围栏中
  • 6.2 查询检测对象与围栏关系

前言

猎鹰的性质, 应该是多对多, 不能直接查询某个坐标是否在围栏中; 而是要先创建终端, 再把终端的坐标传到终端上 , 然后通过API来判断终端是否在围栏中

官方文档: 任何的移动设备、车辆都可以被视为一个终端

1.首先. 创建服务 POST

# 文档地址
https://developer.amap.com/api/track/lieying-kaifa/api/service

# CURL
curl --location --request POST 'https://tsapi.amap.com/v1/track/service/add' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'key=YOUR_KEY' \
--data-urlencode 'name=server01'

# 结果
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "name": "server01",
        "sid": 1008611 //serverId 后面有用
    }
}

2.1 创建圆形围栏 POST

curl --location --request POST 'https://tsapi.amap.com/v1/track/geofence/add/circle' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'key=YOUR_KEY' \
--data-urlencode 'sid=1009348' \
--data-urlencode 'name=geofence01' \
--data-urlencode 'center=116.478935,39.997761' \
--data-urlencode 'radius=1000'

# 结果
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "gfid": 1153882 # 围栏ID
    }
}

2.2 查询围栏 gfid

curl --location --request GET 'https://tsapi.amap.com/v1/track/geofence/list?key=YOUR_KEY&sid=1009348&gfids=1153882&outputshape=1'

# 返回结果
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "count": 1,
        "results": [
            {
                "gfid": 1153882,
                "name": "geofence01",
                "shape": {
                    "center": "116.478935,39.997761",
                    "radius": 1000
                },
                "createtime": 1700106715060,
                "modifytime": 1700106715060
            }
        ]
    }
}

3. 创建终端 tid

curl --location --request POST 'https://tsapi.amap.com/v1/track/terminal/add' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'key=YOUR_KEY' \
--data-urlencode 'sid=1009348' \
--data-urlencode 'name=machine01'

# 响应结果
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "name": "machine01",
        "tid": mk788485651,
        "sid": 1009348
    }
}

4.1 创建轨迹(belong to 终端)

curl --location --request POST 'https://tsapi.amap.com/v1/track/trace/add' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'key=YOUR_KEY' \
--data-urlencode 'sid=1009348' \
--data-urlencode 'tid=788485651'

# 结果
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "trid": 20
    }
}

4.2 上传位置到轨迹(belong 轨迹)

  • 报unknow error(points要设为数组 [{data1}{data2}] )
文档
https://developer.amap.com/api/track/lieying-kaifa/api/track-sdk

接口
curl --location --request POST 'https://tsapi.amap.com/v1/track/point/upload' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'key=you_key' \
--data-urlencode 'sid=1009348' \
--data-urlencode 'tid=788485651' \
--data-urlencode 'trid=20' \
--data-urlencode 'points=[{"location" : "116.478935,39.997761","locatetime" :"1700128190000"}]'

结果:
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "errorpoints": []
    }
}

4.3 查询轨迹

# CURL请求: 
curl --location --request GET 'https://tsapi.amap.com/v1/track/terminal/trsearch?key=you_key&sid=1009348&tid=788485651&trid=20' \
--header 'Content-Type: application/x-www-form-urlencoded'

# 结果
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "tracks": [
            {
                "startPoint": {
                    "location": "116.478935,39.997761",
                    "locatetime": 1700128188000
                },
                "endPoint": {
                    "location": "116.478935,39.997761",
                    "locatetime": 1700128190000
                },
                "trid": 20,
                "distance": 0,
                "time": 2000,
                "counts": 2,
                "points": [
                    {
                        "location": "116.478935,39.997761",
                        "locatetime": 1700128188000,
                        "speed": 255.0,
                        "direction": 511.0,
                        "accuracy": 550.0
                    },
                    {
                        "location": "116.478935,39.997761",
                        "locatetime": 1700128190000,
                        "speed": 255.0,
                        "direction": 511.0,
                        "accuracy": 550.0
                    }
                ]
            }
        ],
        "counts": 1
    }
}

5.1 关联终端(tid)和围栏(gfid)

curl --location --request POST 'https://tsapi.amap.com/v1/track/geofence/terminal/bind' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'key=you_key' \
--data-urlencode 'sid=1009348' \
--data-urlencode 'tids=788485651' \
--data-urlencode 'gfid=1153882'

6.1 重点查询指定坐标是否在围栏中

# CURL请求
curl --location --request GET 'https://tsapi.amap.com/v1/track/geofence/status/location?key=YOUR_KEY&sid=1009348&gfid=1153882&location=116.411935,39.997761' \
--header 'Content-Type: application/x-www-form-urlencoded'

# 结果 (in=0不在围栏中, in=1: 在围栏中)
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "count": 1,
        "results": [
            {
                "gfid": 1153882,
                "gfname": "geofence01",
                "in": 0 
            }
        ]
    }
}

6.2 查询检测对象与围栏关系(用于判断终端是否在围栏中)

# CURL 请求
curl --location --request GET 'https://tsapi.amap.com/v1/track/geofence/status/terminal?key=YOUR_KEY&sid=1009348&tid=788485651&gfid=1153882' \
--header 'Content-Type: application/x-www-form-urlencoded'

# 结果1. 还在围栏中
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "count": 1,
        "results": [
            {
                "gfid": 1153882,
                "gfname": "geofence01",
                "in": 1,
                "time": 1700128190000,
                "location": "116.478935,39.997761"
            }
        ]
    }
}

# 结果2. 不在围栏中(在points数据点接口, 上传一个新的不在围栏中的数据点)
{
    "errcode": 10000,
    "errmsg": "OK",
    "data": {
        "count": 1,
        "results": [
            {
                "gfid": 1153882,
                "gfname": "geofence01",
                "in": 0,
                "time": 1700128288000,
                "location": "116.498935,39.997761"
            }
        ]
    }
}