حساب نقطة منتصف الخط اللوكسودرومي ذي الاتجاه الثابت
يقطع الخط اللوكسودرومي كل خط زوال بزاوية بوصلة ثابتة. تحسب هذه الأداة الإحداثية الواقعة في منتصف ذلك المسار ثابت الاتجاه بين نقطتين محددتين بخط العرض وخط الطول.
شغّل الأداة مجانًا
وهي تستخدم هندسة لوكسودرومية كروية بدل أخذ المتوسط البسيط للإحداثيات، لذلك يبقى الناتج ذا معنى في المسارات الطويلة وعند عبور خط التاريخ الدولي. أدخلوا الإحداثيات بالدرجات العشرية وحددوا دقة الناتج لتحصلوا على نقطة وسط مطبّعة تصلح للملاحة ورسم الخرائط ووضع تسميات المسارات والتحقق المستقل.
ما الذي تمثله نقطة منتصف الخط اللوكسودرومي
الناتج هو الموضع الواقع في منتصف المسافة على خط لوكسودرومي كروي، وليس منتصف قوس دائرة عظمى ولا المتوسط الحسابي لزوجين من خطوط العرض والطول. يحافظ الخط اللوكسودرومي على اتجاه بوصلة ثابت أثناء قطعه خطوط الزوال المتتابعة. جعلت هذه الخاصية هذا النوع من المسارات مهمًا في الملاحة البحرية التقليدية، وما زالت مفيدة عندما يوصف المسار عمدًا باتجاه ثابت. يتغير خط العرض بانتظام في الصياغة الكروية، أما خط الطول فيحسب باستعمال خط العرض متساوي القياس، وهو تحويل لوغاريتمي مستخدم في هندسة إسقاط مركاتور. يهم هذا الفرق لأن الفاصل نفسه في خط الطول يمثل مسافات سطحية مختلفة باختلاف خط العرض. قد تبدو طرق حساب المنتصف متقاربة في مقطع محلي قصير، لكن الفرق يظهر في الامتدادات الكبيرة من الشمال إلى الجنوب أو قرب العروض العليا. استخدموا هذه النتيجة عندما يكون المسار ثابت الاتجاه فعلًا. أما إذا كان المطلوب أقصر قوس على السطح، فحاسبة منتصف الدائرة العظمى تصف شكلًا هندسيًا مختلفًا.
كيفية إدخال الإحداثيات وقراءة النتيجة
أدخلوا خط العرض وخط الطول لنقطة البداية في lat1 وlon1، ثم قيم النهاية في lat2 وlon2. تكتب الإحداثيات بالدرجات العشرية: يكون خط العرض سالبًا جنوب خط الاستواء وموجبًا شماله، ويكون خط الطول سالبًا غرب غرينتش وموجبًا شرقه. يمكن أن يتضمن خط الطول طرفي المجال المعتاد من −180 إلى 180 درجة. ترفض قيمتا القطبين تمامًا لأن صيغة خط العرض متساوي القياس تصبح مفردة هناك، بينما تبقى القيم القريبة من القطب صالحة. تتضمن الإجابة lat وlon للنقطة الواقعة في منتصف الخط اللوكسودرومي. يطبّع خط الطول إلى المجال القياسي، وهذا مهم عندما يعبر أقصر مسار ثابت الاتجاه خط التاريخ الدولي. فالمسار من 170 درجة شرقًا إلى 170 درجة غربًا يجب أن يمر قرب 180 درجة لا عبر غرينتش. يحدد حقل الدقة الاختياري عدد المنازل العشرية من صفر إلى اثنتي عشرة. يؤثر ذلك في العرض والتقريب فقط، ولا يغير النموذج الهندسي أو يمنح دقة مساحية واقعية.
الطريقة والافتراضات والحدود العملية
يعامل الحساب الأرض على أنها كرة ويطبق العلاقة القياسية لمنتصف المسار اللوكسودرومي. يحول خطي العرض أولًا إلى راديان ويأخذ خط العرض المتوسط، ثم يحدد خط الطول الموافق بمقارنة لوغاريتمات عوامل إسقاط مركاتور. عندما يكون خطا عرض الطرفين متساويين عمليًا، يقترب المقام اللوغاريتمي من الصفر، فتستخدم الخوارزمية منتصف خطي الطول بعد فكهما. وقبل الحساب، يفك عبور خط التاريخ الدولي على مجال الطول الأقصر، ثم يطبّع خط الطول النهائي مرة أخرى. هذه طريقة حتمية لا تستخدم شبكة أو بيانات مسار مخزنة أو قيمًا عشوائية أو الوقت الحالي. تصلح الإجابة الكروية لتقديرات الملاحة وتعليقات الخرائط والتعليم واختبارات الاتساق. لكنها ليست بديلًا عن المسح العقاري أو الجيوديسي، لأن المجسم الإهليلجي يمثل الأرض بصورة أفضل عند تحديد المواضع بدقة عالية. تذكروا أيضًا أن المسار اللوكسودرومي أطول عادة من مسار الدائرة العظمى، باستثناء مسارات خاصة مثل خط الاستواء أو أحد خطوط الزوال. سعر كل طلب عبر API هو $0.002.
حالات الاستخدام
وضع تسمية على مسار ثابت الاتجاه
ضعوا تسمية أو ملاحظة عند الإحداثية الوسطى الفعلية لمقطع لوكسودرومي.
التحقق من حسابات الملاحة البحرية
قارنوا نقطة منتصف نظام خرائط أو ملاحة بنتيجة كروية حتمية ومستقلة.
تقسيم مقطع لوكسودرومي
استخدموا الإحداثية الناتجة كنقطة فصل قبل معالجة مقطعين ثابتَي الاتجاه.
الأسئلة الشائعة
هل يساوي ذلك أخذ متوسط الإحداثيات؟
لا. يقع خط العرض في الوسط وفق الصياغة الكروية، لكن خط الطول يستخرج من خط العرض متساوي القياس لوضع النقطة في منتصف المسار.
هل هو نفسه منتصف الدائرة العظمى؟
ليس عادة. يحافظ الخط اللوكسودرومي على اتجاه بوصلة ثابت، بينما تتبع الدائرة العظمى أقصر قوس على السطح الكروي.
ماذا يحدث عند عبور خط التاريخ الدولي؟
يفك الحساب مجال خط الطول الأقصر قبل إيجاد المنتصف، ثم يطبّع الناتج إلى المجال من −180 إلى 180 درجة.
هل يمكن إدخال أحد القطبين؟
لا. ترفض قيمتا −90 و90 درجة تمامًا لأن خط العرض اللوكسودرومي متساوي القياس يكون مفردًا عند القطبين.
ما تكلفة الطلب عبر API؟
يكلف كل طلب $0.002. ويستخدم الحساب في المتصفح المنطق الحتمي الأساسي نفسه.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/geo/rhumb-midpoint \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat1":51.5074,"lon1":-0.1278,"lat2":40.7128,"lon2":-74.006}'const res = await fetch("https://api.kit.forhosting.com/geo/rhumb-midpoint", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat1": 51.5074,
"lon1": -0.1278,
"lat2": 40.7128,
"lon2": -74.006
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/rhumb-midpoint",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat1": 51.5074,
"lon1": -0.1278,
"lat2": 40.7128,
"lon2": -74.006
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/rhumb-midpoint", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat1":51.5074,"lon1":-0.1278,"lat2":40.7128,"lon2":-74.006}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat1":51.5074,"lon1":-0.1278,"lat2":40.7128,"lon2":-74.006}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/rhumb-midpoint", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"lat1": 51.5074,
"lon1": -0.1278,
"lat2": 40.7128,
"lon2": -74.006
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.rhumb_midpoint",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |