Chuyển tới nội dung chính
Phiên bản: v1.1

Geofencing API

Geofencing API GTEL MAPS được thiết kế nhằm hỗ trợ xác định vị trí của các điểm (tọa độ GPS) so với một vùng địa lý xác định, giúp đánh giá liệu các điểm đó có nằm bên trong hay bên ngoài khu vực quan tâm. Vùng geofence có thể được khai báo linh hoạt theo nhiều hình thức:


Truy xuất Geofencing API

Loading...

Xác định theo bán kính

Tham số yêu cầu:

Tham sốKiểu dữ liệuMô tả
typestringKiểm tra theo bán kính (mặc định). Giá trị: radius.
pointsarrayDanh sách các điểm geofence (ít nhất 1), mỗi điểm gồm id, lon, lat.
points[].idstringMã định danh cho điểm geofence.
points[].lonfloatKinh độ của điểm, giá trị từ -180 đến 180.
points[].latfloatVĩ độ của điểm, giá trị từ -90 đến 90.
lonfloatKinh độ của tâm vùng bán kính.
latfloatVĩ độ của tâm vùng bán kính.
radiusintegerBán kính tính từ tâm đến ranh giới vùng (đơn vị: mét).

Mẫu yêu cầu:

{
"type": "radius",
"points": [
{
"id": "1",
"lat": 10.776559514960368,
"lon": 106.70418188049558
},
{
"id": "2",
"lat": 10.715430447196468,
"lon": 106.84253546053299
},
{
"id": "3",
"lat": 10.533942572233116,
"lon": 106.81957924622054
}
],
"radius": 10000,
"lat": 10.76763409297699,
"lon": 106.72748123557483
}

Mẫu phản hồi:

{
"status": "OK",
"message": "Geofencing check passed",
"data": [
{
"id": "1",
"is_inside": true
},
{
"id": "2",
"is_inside": false
},
{
"id": "3",
"is_inside": false
}
],
"licence": "© GTEL Maps"
}

Xác định theo vùng đa giác

Tham số yêu cầu:

Tham sốKiểu dữ liệuMô tả
typestringKiểm tra theo vùng đa giác. Giá trị: polygon.
pointsarrayDanh sách các điểm geofence (ít nhất 1), mỗi điểm gồm id, lon, lat.
points[].idstringMã định danh cho điểm geofence.
points[].lonfloatKinh độ của điểm, giá trị từ -180 đến 180.
points[].latfloatVĩ độ của điểm, giá trị từ -90 đến 90.
geometryobjectHình học vùng geofence, định dạng theo GeoJSON:
- Polygon: đa giác
- MultiPolygon: tập hợp nhiều đa giác

Mẫu yêu cầu:

{
"type": "polygon",
"points": [
{
"id": "1",
"lat": 10.776559514960368,
"lon": 106.70418188049558
},
{
"id": "2",
"lat": 10.715430447196468,
"lon": 106.84253546053299
},
{
"id": "3",
"lat": 10.533942572233116,
"lon": 106.81957924622054
}
],
"geometry": {
"type": "Polygon",
"coordinates": [
[
[106.46685214236334, 10.74397525752805],
[106.525585009223, 10.711087934746033],
[106.54947851849204, 10.671956728720346],
[106.60323891434945, 10.658259615738643],
[106.63907917825475, 10.62694961599388],
[106.67292831638736, 10.640648136476273],
[106.70677745452002, 10.66021638391301],
[106.73266208956176, 10.630863541730463],
[106.71673308338245, 10.587807602378774],
[106.74261771842413, 10.572149396216034],
[106.75655559883205, 10.456645533277822],
[106.82226274932452, 10.374396224091157],
[106.88597472075236, 10.356777312813549],
[106.96164138628427, 10.372437890231154],
[106.99947294307617, 10.42335676131087],
[107.0094285719398, 10.497762028750827],
[107.03132871222522, 10.533001927403745],
[107.01739028014549, 10.554534771321599],
[107.02734331510305, 10.585853243588915],
[107.00345150746665, 10.62303730995555],
[106.98284633232339, 10.588354944537187],
[106.9063923586757, 10.60469044020202],
[106.88312208308992, 10.653699497726478],
[106.82993330380094, 10.634096782700325],
[106.77674439606244, 10.670034019266538],
[106.75007736486486, 10.714996136590429],
[106.7734126938999, 10.750428950890381],
[106.8306903197132, 10.758765479603468],
[106.87541257107586, 10.767776323652257],
[106.88540096065367, 10.807312336991885],
[106.83757151789541, 10.897446038454731],
[106.7936150280375, 10.868526679677885],
[106.69119550563528, 10.911624419694164],
[106.64242500000307, 10.940353789158962],
[106.65217776487214, 10.983439326035352],
[106.59853070978329, 11.050451529684167],
[106.53025410289081, 11.064811569432322],
[106.54000776535742, 11.12701767534972],
[106.4571009868227, 11.155730048232584],
[106.39857447116583, 11.02653691921006],
[106.33517077215686, 10.99303451044159],
[106.37418747444025, 10.945154679817279],
[106.41320475147643, 10.973880086674797],
[106.53025423044897, 10.902049719737562],
[106.50586884464673, 10.811050085848322],
[106.46685214236334, 10.74397525752805]
]
]
}
}

Mẫu phản hồi:

{
"status": "OK",
"message": "Geofencing check passed",
"data": [
{
"id": "1",
"is_inside": true
},
{
"id": "2",
"is_inside": false
},
{
"id": "3",
"is_inside": true
}
],
"licence": "© GTEL Maps"
}

Xác định theo đơn vị hành chính

Tham số yêu cầu:

Tham sốKiểu dữ liệuMô tả
typestringKiểm tra theo đơn vị hành chính. Giá trị: admin.
pointsarrayDanh sách các điểm geofence (ít nhất 1), mỗi điểm gồm id, lon, lat.
points[].idstringMã định danh cho điểm geofence.
points[].lonfloatKinh độ của điểm, giá trị từ -180 đến 180.
points[].latfloatVĩ độ của điểm, giá trị từ -90 đến 90.
admin_codestringMã xác định đơn vị hành chính:
- 2 ký tự: cấp quốc gia (VN)
- 2 ký tự: cấp tỉnh/thành (01, 79)
- 5 ký tự: cấp phường/xã (26485, 27673)

Mẫu yêu cầu:

{
"type": "admin",
"points": [
{
"id": "1",
"lat": 10.776559514960368,
"lon": 106.70418188049558
},
{
"id": "2",
"lat": 10.715430447196468,
"lon": 106.84253546053299
},
{
"id": "3",
"lat": 10.533942572233116,
"lon": 106.81957924622054
}
],
"admin_code": "79"
}

Mẫu phản hồi:

{
"status": "OK",
"message": "Geofencing check passed",
"data": [
{
"id": "1",
"is_inside": true
},
{
"id": "2",
"is_inside": false
},
{
"id": "3",
"is_inside": true
}
],
"licence": "© GTEL Maps"
}

Tham số tùy chọn

Tham sốKiểu dữ liệuMô tả
toleranceintegerDung sai mở rộng vùng (đơn vị: mét).
Áp dụng cho type=polygontype=admin.
optionsobjectTùy chọn bổ sung cho xử lý geofence.
options.sort_bystringCách sắp xếp kết quả (chỉ dùng khi type=radius):
- distance: theo khoảng cách
- route: theo tuyến đường di chuyển
- time: theo thời gian di chuyển thực tế

Mẫu yêu cầu:

{
"type": "radius",
"points": [
{
"id": "1",
"lat": 10.776559514960368,
"lon": 106.70418188049558
},
{
"id": "2",
"lat": 10.715430447196468,
"lon": 106.84253546053299
},
{
"id": "3",
"lat": 10.533942572233116,
"lon": 106.81957924622054
}
],
"radius": 10000,
"lat": 10.76763409297699,
"lon": 106.72748123557483,
"options": {
"sort_by": "distance"
}
}

Mẫu phản hồi:

{
"status": "OK",
"message": "Geofencing check passed",
"data": [
{
"id": "1",
"is_inside": true,
"distance": 24.95,
"route": 4.569,
"time": 678
},
{
"id": "2",
"is_inside": false,
"distance": 126.344,
"route": 23.941,
"time": 1424
},
{
"id": "3",
"is_inside": false,
"distance": 251.185,
"route": 40.8,
"time": 5145
}
],
"licence": "© GTEL Maps"
}