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