وقت الوصول إلى نقطة المسار التالية
تحوّل حاسبة وقت الوصول إلى نقطة المسار التالية قراءة ملاحة واحدة إلى تقدير عملي للتقدم.
شغّل الأداة مجانًا
أدخل خط العرض وخط الطول الحاليين، وإحداثيات النقطة التالية، والاتجاه المتبع على مقطع المسار النشط، والسرعة الحالية. تقيس الأداة مسافة الدائرة العظمى، وتحدد الاتجاه الابتدائي نحو الوجهة، ثم تستخدم فقط مركبة السرعة التي تقلل الفاصل فعليًا. تتضمن النتيجة المسافة المتبقية، وخطأ الاتجاه، وسرعة الاقتراب، ووقت الوصول بالثواني والدقائق، ومدة سهلة القراءة. لا تعتمد العملية على خرائط حية أو حركة المرور أو الطقس أو الشبكة أو ساعة النظام.
طريقة الاستخدام
أدخل القيم في النموذج أعلاه. تتحقق الأداة منها قبل الحساب ثم تعرض النتيجة في الصفحة نفسها.
راجع بياناتك
اتبع التسميات والوحدات الموضحة بجانب كل حقل. إذا كانت قيمة مفقودة أو خارج النطاق، توضح الصفحة الحقل الذي يحتاج إلى تصحيح.
أعد الحساب أو نفّذه آليًا
استخدم أداة الويب للفحوص الفردية، واستخدم الواجهة البرمجية عند دمج الإمكانية نفسها في سير عمل آلي.
حالات الاستخدام
احصل على النتيجة الآن
أدخل مجموعة من القيم وشاهد النتيجة من دون إعداد جدول بيانات أو برنامج نصي.
قارن السيناريوهات
غيّر قيمة واحدة في كل مرة وأعد الحساب لمعرفة ما الذي يؤثر في النتيجة.
أتمت العمل المتكرر
استخدم الواجهة البرمجية عندما تحتاج إلى تشغيل الحساب نفسه داخل منتجك أو سير عملك.
الأسئلة الشائعة
كيف يُحسب وقت الوصول إلى نقطة المسار التالية؟
تقيس الأداة مسافة الدائرة العظمى، وتحدد الاتجاه الابتدائي، وتسقط السرعة في ذلك الاتجاه، ثم تقسم المسافة على سرعة الاقتراب الموجبة.
لماذا يؤثر الاتجاه في وقت الوصول؟
الحركة نحو النقطة وحدها تقلل المسافة. ويوفر المسار المائل سرعة اقتراب أقل من السرعة نفسها عند التوجه مباشرة إلى الهدف.
ماذا يحدث إذا كان الاتجاه يبتعد عن النقطة؟
يعيد الطلب invalid_input لأن الحركة العمودية أو المبتعدة لا توفر سرعة اقتراب موجبة ولا وقت وصول لحظيًا محدودًا.
هل تحسب الأداة ساعة وصول محددة؟
لا. فهي تعيد المدة المتبقية من دون قراءة الساعة. أضف eta_seconds إلى طابع زمني موثوق داخل تطبيقك عند الحاجة.
هل تستخدم خرائط أو مرورًا أو رياحًا أو تيارات؟
لا. إنها هندسة كروية حتمية تعتمد فقط على الإحداثيات والاتجاه والسرعة والوحدات والدقة التي تدخلها.
ما تكلفة الحساب عبر API؟
يكلف كل طلب ناجح $0.002. ويتاح الحساب الحتمي نفسه مجانًا داخل المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/geo/next-waypoint-eta \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_lat":37.7749,"current_lon":-122.4194,"waypoint_lat":37.8044,"waypoint_lon":-122.2712,"bearing_deg":76,"speed":25}'const res = await fetch("https://api.kit.forhosting.com/geo/next-waypoint-eta", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_lat": 37.7749,
"current_lon": -122.4194,
"waypoint_lat": 37.8044,
"waypoint_lon": -122.2712,
"bearing_deg": 76,
"speed": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/next-waypoint-eta",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_lat": 37.7749,
"current_lon": -122.4194,
"waypoint_lat": 37.8044,
"waypoint_lon": -122.2712,
"bearing_deg": 76,
"speed": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/next-waypoint-eta", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_lat":37.7749,"current_lon":-122.4194,"waypoint_lat":37.8044,"waypoint_lon":-122.2712,"bearing_deg":76,"speed":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_lat":37.7749,"current_lon":-122.4194,"waypoint_lat":37.8044,"waypoint_lon":-122.2712,"bearing_deg":76,"speed":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/next-waypoint-eta", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"current_lat": 37.7749,
"current_lon": -122.4194,
"waypoint_lat": 37.8044,
"waypoint_lon": -122.2712,
"bearing_deg": 76,
"speed": 25
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.next_waypoint_eta",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
latitude_min | -90 |
latitude_max | 90 |
longitude_min | -180 |
longitude_max | 180 |
speed_max_mps | 10000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |