greatCircleDistance
lon1Deg— خط الطول النقطة الأولى بالدرجات. النطاق:[-180°, 180°].lat1Deg— خط العرض النقطة الأولى بالدرجات. النطاق:[-90°, 90°].lon2Deg— خط الطول النقطة الثانية بالدرجات. النطاق:[-180°, 180°].lat2Deg— خط العرض النقطة الثانية بالدرجات. النطاق:[-90°, 90°].
geoDistance
greatCircleDistance، لكنها تحسب المسافة على إهليلج WGS-84 بدلًا من الكرة. ويوفّر ذلك تقريبًا أدق لجيود الأرض.
الأداء مماثل لأداء greatCircleDistance (من دون أي تراجع في الأداء). ويُوصى باستخدام geoDistance لحساب المسافات على الأرض.
ملاحظة تقنية: بالنسبة للنقاط المتقاربة بما يكفي، نحسب المسافة باستخدام تقريب مستوٍ وفق المترية على المستوى المماس عند منتصف الإحداثيات.
lon1Deg— خط الطول النقطة الأولى بالدرجات. النطاق:[-180°, 180°].lat1Deg— خط العرض النقطة الأولى بالدرجات. النطاق:[-90°, 90°].lon2Deg— خط الطول النقطة الثانية بالدرجات. النطاق:[-180°, 180°].lat2Deg— خط العرض النقطة الثانية بالدرجات. النطاق:[-90°, 90°].
greatCircleAngle
lon1Deg— خط الطول للنقطة الأولى، بالدرجات.lat1Deg— خط العرض للنقطة الأولى، بالدرجات.lon2Deg— خط الطول للنقطة الثانية، بالدرجات.lat2Deg— خط العرض للنقطة الثانية، بالدرجات.
geoToUTM
(longitude, latitude) إلى إحداثيات Universal Transverse Mercator (UTM).
UTM عبارة عن مجموعة من 60 إسقاط ميركاتور مستعرض، يغطي كلٌّ منها نطاقًا من خطوط الطول بعرض 6°، ويحوّل الإحداثيات الجغرافية إلى شبكة مستوية بوحدة المتر. يُحدَّد نطاق UTM تلقائيًا من خط الطول، مع تطبيق الاستثناءات القياسية الخاصة بـ Norway وSvalbard، ما لم تُحدَّد قيمة zone صراحةً. لا يُعرَّف UTM إلا لخطوط العرض ضمن النطاق [-80°, 84°]؛ أما المناطق القطبية فتستخدم نظام UPS المنفصل.
longitude— خط الطول بالدرجات. النطاق:[-180°, 180°].Float32/Float64.latitude— خط العرض بالدرجات. النطاق:[-80°, 84°].Float32/Float64.zone— اختياري. يفرض الإسقاط على نطاق UTM هذا بدلًا من اختيارها تلقائيًا. النطاق:[1, 60].(U)Int*.
(easting, northing, zone, band): تكون قيمتا easting وnorthing بالمتر (Float64)، ورقم zone الخاص بـ UTM (UInt8)، وحرف band لخط العرض في MGRS (FixedString(1)). وتشير قيمة band التي تساوي 'N' أو أي حرف يليه إلى نصف الكرة الشمالي.
يُنتج استثناءً عندما يكون خط العرض خارج [-80°, 84°] أو يكون خط الطول خارج [-180°, 180°].
مثال
UTMToGeo
(خط الطول، خط العرض). وهذه هي الدالة العكسية لـ geoToUTM.
easting— الإحداثي الشرقي بالأمتار (يتضمن الإزاحة الشرقية الكاذبة بمقدار 500000 م).(U)Int*/Float*.northing— الإحداثي الشمالي بالأمتار (يتضمن الإزاحة الشمالية الكاذبة بمقدار 10000000 م في نصف الكرة الجنوبي).(U)Int*/Float*.zone— رقم نطاق UTM. المدى:[1, 60].(U)Int*.is_north— نصف الكرة الأرضية:1للنصف الشمالي و0للنصف الجنوبي.(U)Int*.
(longitude, latitude) بالدرجات. Tuple(Float64, Float64).
مثال
geoToMGRS
(خط الطول، خط العرض) إلى سلسلة Military Grid Reference System (MGRS).
تكون السلسلة بالتنسيق <zone><band><100km square><easting><northing>، على سبيل المثال 31UDQ4825111935. تتحكم الوسيطة precision في عدد الخانات المستخدمة لكلٍّ من easting وnorthing: تكون القيمة 5 (الافتراضية) لدقة 1 م، و4 لدقة 10 م، و3 لدقة 100 م، و2 لدقة 1 كم، و1 لدقة 10 كم، و0 لمربع شبكة 100 كم فقط. لا يُعرَّف MGRS إلا لدوائر العرض ضمن النطاق [-80°, 84°].
longitude— خط الطول بالدرجات. النطاق:[-180°, 180°].Float32/Float64.latitude— خط العرض بالدرجات. النطاق:[-80°, 84°].Float32/Float64.precision— اختياري. عدد الخانات لكل من الإحداثي الشرقي والإحداثي الشمالي. القيمة الافتراضية:5. النطاق:[0, 5].(U)Int*.
String.
مثال
MGRSToGeo
(longitude, latitude). وهذه هي العملية العكسية لـ geoToMGRS.
النقطة المُعادة هي مركز مربع الشبكة المشار إليه، لذلك تتوافق دقة النتيجة مع الدقة المرمّزة في السلسلة. ويُتجاهل الفراغ الأبيض في الإدخال، كما أن الأحرف لا تتأثر بحالة الأحرف.
mgrs— سلسلة مرجعية بتنسيق MGRS المطلوب فك ترميزها.String/FixedString.
(longitude, latitude) بالدرجات. Tuple(Float64, Float64).
مثال
pointInEllipses
x, y— إحداثيات نقطة على المستوى.xᵢ, yᵢ— إحداثيات مركز القطع الناقص رقمi.aᵢ, bᵢ— محورا القطع الناقص رقمiبوحدات إحداثيي x وy.
2+4⋅n، حيث إن n هو عدد الأشكال البيضوية.
القيم المعادة
1 إذا كانت النقطة داخل شكل بيضوي واحد على الأقل؛ 0 إذا لم تكن كذلك.
مثال
pointInPolygon
(x, y)— إحداثيات نقطة على المستوى. نوع البيانات — Tuple — قيمة Tuple مكوّنة من رقمين، أو Point.[(a, b), (c, d) ...]— رؤوس المضلع. نوع البيانات — Array أو Ring. تُمثَّل كل قمة بزوج من الإحداثيات(a, b). يجب تحديد الرؤوس بترتيب مع عقارب الساعة أو عكس اتجاه عقارب الساعة. الحد الأدنى لعدد الرؤوس هو 3.- تدعم الدالة أيضًا المضلع ذي الفتحات (الأجزاء المقتطعة). نوع البيانات — Polygon. مرِّر إما
Polygonبالكامل باعتباره المُدخل الثاني، أو مرِّر الحلقة الخارجية أولًا ثم كل فتحة كمدخل إضافي منفصل. - تدعم الدالة أيضًا MultiPolygon. نوع البيانات — MultiPolygon. مرِّر إما
MultiPolygonبالكامل باعتباره المُدخل الثاني، أو أدرج كل مضلع مكوّن باعتباره مُدخلًا مستقلًا. - يمكن أيضًا أن تكون وسيطة المضلع عمود Geometry يحتوي على قيم ذات شكل مضلع (
RingأوPolygonأوMultiPolygon).
1 إذا كانت النقطة داخل المضلع، و0 إذا لم تكن كذلك.
إذا كانت النقطة على حدود المضلع، فقد تُرجع الدالة 0 أو 1.
مثال
ملاحظة • يمكنك تعيينvalidate_polygons = 0لتجاوز التحقق من صحة الأشكال الهندسية. • تفترض الدالةpointInPolygonأن كل مضلع مُشكَّل بصورة صحيحة. إذا كان الإدخال متقاطعًا مع نفسه، أو كانت حلقاته مرتبة على نحو غير صحيح، أو كانت حوافه متداخلة، تصبح النتائج غير موثوقة—خصوصًا للنقاط الواقعة تمامًا على حافة أو رأس، أو داخل تقاطع ذاتي حيث يكون مفهوم “الداخل” مقابل “الخارج” غير معرّف. • عندما تكون وسيطة المضلع ثابتة وتُعبَّر النقطة باستخدام أعمدة المفتاح المفهرسة (على سبيل المثال،pointInPolygon((x, y), constant_polygon)على جدول تكون فيهx, yجزءًا منPRIMARY KEYأو مشمولة بفهرسminmax)، يمكن لـ ClickHouse استخدام كلٍّ من المفتاح الأساسي وفهارس تخطي البياناتminmaxلاستبعاد الحبيبات غير ذات الصلة.