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