تقدير تقريبي للوقت الذي يقابله توقيت جرينتش من خط الطول

StackOverflow https://stackoverflow.com/questions/1058342

  •  21-08-2019
  •  | 
  •  

سؤال

هل هناك طريقة لتقدير الإزاحة من توقيت جرينتش (أو المنطقة الزمنية) من خط العرض/خط الطول؟لقد رأيت أسماء جغرافية، ولكن هذا سيحتاج إلى العمل على المدى الطويل ولا نريد حقًا الاعتماد على خدمة الويب.سيتم استخدامه فقط لتحديد ما إذا كان سيتم عرض "اليوم" أو "الليلة" عند تقديم المعلومات لمستخدمين مختلفين، لذلك لن يلزم أن تكون دقيقة للغاية (لن يكون التوقف لمدة ساعة أو ساعتين أمرًا سيئًا).

هل كانت مفيدة؟

المحلول

offset = direction * longitude * 24 / 360

وحيث الاتجاه هو 1 للشرق، -1 للغرب، والعرض هو في (-180180)

نصائح أخرى

إن تحديد المنطقة الزمنية على خط الطول وحده أمر غير دقيق إلى حد كبير خارج المياه الدولية.انظر الخريطة على هذه الصفحة:

http://askgeo.com/database/TimeZone

الخطوط الملونة الرأسية في أعماق المحيطات هي ما يسمى بالمناطق الزمنية الطبيعية المستمدة من خطوط الطول وحدها، وألوان الأرض هي المناطق الزمنية الفعلية وفقًا للقوانين الحاكمة.يمكنك أن ترى أنهم لا يصطفون بشكل جيد على الإطلاق.

لقد واجهت هذه المشكلة بالفعل أثناء العمل في مشروع مختلف وقمت بإجراء بحث وتطوير كبير عليه.أولا بحثي:

  • أولاً، لا يتم ترميز المناطق الزمنية عادةً بمجرد الإزاحة عن توقيت جرينتش (المعروف أيضًا باسم UTC).وهذا لا يأخذ في الاعتبار التوقيت الصيفي، والتغيرات في المناطق الزمنية على مر السنين.بدلاً من ذلك، يتم استخدام معرفات المنطقة الزمنية لتعيين منطقة جغرافية يكون فيها وقت الساعة الرسمي هو نفسه في جميع أنحاء المنطقة لفترة زمنية معينة (على سبيل المثال، منذ عام 1970).النظام الأكثر أهمية لهذه المعرفات هو "معرف المنطقة الزمنية لـ Olson" (تُعرف هذه المعرفات وقواعد الإزاحة الخاصة بها باسم "قاعدة بيانات tz")، والذي يستخدمه Linux وأنظمة تشغيل Unix الأخرى.تتمتع معظم لغات البرمجة وأنظمة التشغيل بدعم أصلي أو دعم خارجي لمعرفات المنطقة الزمنية لـ Olson.

فيما يتعلق بالحلول الموجودة لتحويل خطوط الطول والعرض إلى المنطقة الزمنية:

  • لدى GeoNames.org قاعدة بيانات واسعة لمواقع النقاط (مراكز المدن، المطارات، المباني العامة، وما إلى ذلك)، كل منها مشروح بمجموعة من البيانات الوصفية المفيدة، بما في ذلك معرف المنطقة الزمنية لـ Olson.ولديهم واجهة برمجة تطبيقات لطيفة تتيح لك الوصول إليها عبر الويب.تكمن المشكلة في أنه إذا لم تكن النقطة التي تستعلم عنها أعلى سجل في قاعدة البيانات الخاصة بهم، فقد تحصل على نتيجة على الجانب الآخر من حدود المنطقة الزمنية، أو قد لا تحصل على أي استجابة على الإطلاق إذا كان استعلامك بعيد عن أقرب نقطة لهم.كما أن خدمة الويب بطيئة للغاية، كما أنها تحد من عدد الاستعلامات التي يمكنك إجراؤها في اليوم إلى عدد صغير نسبيًا.

  • لدى Earth Tools (http://www.earthtools.org/webservices.htm) أيضًا خدمة لهذا الغرض، وهي أسرع بكثير من GeoNames، ولكنها تُرجع فقط إزاحة من GMT، وليس معرف المنطقة الزمنية، ولا لا تتعامل مع التوقيت الصيفي بشكل صحيح في معظم أنحاء العالم.ويبدو أيضًا أنه لم تتم صيانته، لذلك لست متأكدًا مما إذا كانت البيانات دقيقة بعد الآن (تتغير المناطق الزمنية بمرور الوقت).

بعد مراجعة تلك الخيارات والبحث عن احتمالات أخرى دون جدوى، قررت بناء الحل الخاص بي، وقمت بإصداره على:

http://askgeo.com

يعتمد AskGeo على خريطة المنطقة الزمنية للعالم، لذا فهو يُرجع منطقة زمنية صالحة لكل خط عرض وخط طول صالح.تقوم بإرجاع معرف المنطقة الزمنية القياسي لـ Olson (على سبيل المثال، "America/Los_Angeles") المستخدم في Linux ومعظم أنظمة التشغيل وأطر البرمجة الأخرى.كما تقوم أيضًا بإرجاع الإزاحة الحالية، مع الأخذ في الاعتبار الكامل للتوقيت الصيفي.

إنه سهل الاستخدام للغاية ويتم توثيق الاستخدام على الصفحة الرئيسية للموقع.تدعم واجهة برمجة التطبيقات (API) الاستعلامات المجمعة، لذا إذا كنت بحاجة إلى إجراء الكثير من عمليات البحث، فيرجى استخدام الواجهة المجمعة بدلاً من إرباك خوادمنا بالطلبات التسلسلية.كما أن الاستعلامات المجمعة تكون أسرع بكثير، لذا يفوز الجميع.

عندما أطلقنا هذا لأول مرة، قمنا ببنائه على Google App Engine (GAE) وجعلناه مجانيًا لجميع المستخدمين.كان هذا ممكنًا لأن أسعار GAE كانت منخفضة جدًا في ذلك الوقت.منذ ذلك الحين، زاد حمل الخادم لدينا بشكل كبير وارتفعت أسعار GAE بشكل كبير.أدى كلا العاملين معًا إلى التحول إلى Amazon Web Services للاستضافة والبدء في فرض رسوم مقابل الاستخدام التجاري، مع الحفاظ على الخدمة مجانية للمشاريع مفتوحة المصدر غير الربحية وغير التجارية والباحثين.بالنسبة للمستخدمين التجاريين، نقدم 1000 استعلام مجاني للسماح للعملاء المحتملين بتقييم واجهة برمجة التطبيقات للتأكد من أنها تلبي احتياجاتهم.راجع موقع الويب لمعرفة الأسعار والشروط.

تمت كتابة المكتبة الأساسية بلغة Java ونظرًا للطلب الشائع، قمنا أيضًا بإصدار المكتبة بموجب ترخيص تجاري.التوثيق الكامل للمكتبة وتفاصيل الأسعار موجود على موقع الويب.

آمل أن يكون هذا أمر مفيد.لقد كان بالتأكيد مفيدًا للمشروع الذي كنت أعمل عليه.

إذا كنت تعرف خط الطول للمستخدمين، فأنت تعرف تمامًا كل جانب من جوانب الوقت بالنسبة لهم (مع إهمال بعض الأخطاء الصغيرة مثل النسبية الخاصة وما إلى ذلك).متوسط ​​الوقت الشمسي هو ببساطة الفرق بين توقيت جرينتش وخط الطول (تحويل جزء من الدرجات إلى دقائق، 1 درجة = 60 دقيقة).يمكنك إضافة أو طرح بناءً على الشرق أو الغرب.متوسط ​​التوقيت الشمسي هو في الأساس وقت أكثر دقة من المناطق الزمنية.تختلف أوقات النهار والليل وتعتمد على خط العرض، لذا يمكنك استخدام بعض التقديرات التقريبية لأوقات شروق الشمس وغروبها مع مراعاة خط العرض والتاريخ والسنة.وهذا وحده من شأنه أن يوفر فكرة دقيقة إلى حد ما عن النهار والليل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top