فهرس H3
يُعد H3 نظام فهرسة جغرافية تُقسَّم فيه سطح الأرض إلى شبكة من الخلايا السداسية المتساوية. وهذا النظام هرمي، أي إن كل سداسي في المستوى الأعلى (“الأصل”) يمكن تقسيمه إلى سبعة سداسيات متساوية أصغر حجمًا (“الفروع”)، وهكذا. يُسمّى مستوى هذا التسلسل الهرميresolution، ويمكن أن يأخذ قيمة من 0 إلى 15، حيث إن 0 هو مستوى base الذي يضم أكبر الخلايا وأقلها دقة.
يمكن تحويل زوج من خط العرض وخط الطول إلى فهرس H3 بطول 64 بت، يحدِّد خلية في الشبكة.
يُستخدم فهرس H3 أساسًا لتجميع المواقع الجغرافية وإجراء المعالجات المكانية الأخرى.
يتوفر الوصف الكامل لنظام H3 على موقع Uber Engineering.
h3IsValid
يتحقق مما إذا كان الرقم يمثّل فهرس H3 صالحًا. البنيةh3index— رقم فهرس الخلية السداسية. UInt64.
Query
Response
h3GetResolution
يحدّد مستوى الدقة لفهرس H3 المُعطى. البنيةh3index— رقم فهرس الخلية السداسية. UInt64.
- دقة الفهرس. النطاق:
[0, 15]. UInt8. - إذا كان الفهرس غير صالح، فستُرجع الدالة قيمة عشوائية. استخدم h3IsValid للتحقق من صحة الفهرس. UInt8.
Query
Response
h3EdgeAngle
يحسب متوسط طول ضلع السداسي في H3 بوحدة الغراد. الصيغةresolution— دقة الفهرس. UInt8. النطاق:[0, 15].
Query
Response
h3EdgeLengthM
يحسب متوسط طول حافة السداسي H3 بالأمتار. البنيةresolution— دقة الفهرس. UInt8. النطاق:[0, 15].
Query
Response
h3EdgeLengthKm
يحسب متوسط طول ضلع الخلية السداسية H3 بالكيلومترات. الصيغةresolution— دقة الفهرس. UInt8. النطاق:[0, 15].
Query
Response
geoToH3
يعيد فهرس نقطة H3 للإحداثيات(lat, lon) عند مستوى الدقة المحدد.
الصياغة
geoToH3() القيم بالترتيب (lon, lat). واعتبارًا من ClickHouse v25.5، تصبح قيم الإدخال بالترتيب (lat, lon). ويمكن استعادة السلوك السابق باستخدام الإعداد geotoh3_argument_order = 'lon_lat'.
مثال
Query
Response
h3ToGeo
يعيد خطَّي العرض والطول للمركز الهندسي المقابلَين لفهرس H3 المُقدَّم. الصيغةh3Index— فهرس H3. UInt64.
h3ToGeo() القيم بالترتيب (lon, lat). واعتبارًا من ClickHouse v25.1، تصبح القيم المُعادة بالترتيب (lat, lon). ويمكن استعادة السلوك السابق باستخدام الإعداد h3togeo_lon_lat_result_order = true.
مثال
Query
Response
h3ToGeoBoundary
يعيد مصفوفة من الأزواج(lat, lon) تمثل حدود فهرس H3 المُدخل.
البنية
h3Index— H3 Index. UInt64.
Query
Response
h3kRing
يسرد جميع سداسيات H3 الواقعة ضمن نطاق نصف القطرk انطلاقًا من السداسي المحدد، بترتيب عشوائي.
الصيغة
Query
Response
h3PolygonToCells
يُرجع السداسيات (عند مستوى الدقة المحدد) الواقعة ضمن الشكل الهندسي المُقدَّم، سواء كان حلقة أو مضلعًا (أو متعدد المضلعات). يُعد السداسي واقعًا ضمن الشكل عندما يحتوي الشكل الهندسي على مركزه، وهو وضع الاحتواء0 في h3PolygonToCellsWithContainment.
يجب أن تقع كل قمة من قمم الشكل الهندسي على الكرة: ضمن نطاق خط الطول [-180, 180] وخط العرض [-90, 90] بالدرجات. لا يُضمن ترتيب الخلايا المُعادة، لذا رتّب المصفوفة عندما يكون الترتيب مهمًا.
الصيغة
- يمكن أن تكون
geometryأحد أنواع البيانات الجغرافية التالية أو أنواعها الأولية الأساسية: resolution— دقة الفهرس. النطاق:[0, 15]. UInt8.
Query
Response
h3PolygonToCellsWithContainment
يعيد الخلايا السداسية (عند مستوى الدقة المحدد) التي تغطي الشكل الهندسي المُدخل، سواء كان حلقة أو مضلعًا (أو متعدد المضلعات)، باستخدام أوضاع الاحتواء التجريبية في H3. يجب أن تكون كل قمة في الشكل الهندسي على الكرة: خط الطول ضمن النطاق[-180, 180] وخط العرض ضمن النطاق [-90, 90] درجة. لا يُضمن ترتيب الخلايا المُعادة، لذا رتّب المصفوفة عندما يكون الترتيب مهمًا.
تربط هذه الدالة flags بأوضاع الاحتواء في H3:
0—CONTAINMENT_CENTER1—CONTAINMENT_FULL2—CONTAINMENT_OVERLAPPING3—CONTAINMENT_OVERLAPPING_BBOX
- يمكن أن تكون
geometryأحد أنواع البيانات الجغرافية التالية أو أنواعها الأولية الأساسية: resolution— دقة الفهرس. النطاق:[0, 15]. UInt8.flags— وضع الاحتواء. النطاق:[0, 3]. استخدم ثوابت عددية صحيحة مثل0و1و2و3، أو قيم UInt32 (على سبيل المثال،toUInt32(2)). تُمرَّر القيم إلى واجهة برمجة تطبيقات H3 بصيغةUInt32. وتُحوَّل أنواع الأعداد الصحيحة الأصلية الأخرى بتحويل دقيق.
Query
Response
h3GetBaseCell
يعيد رقم الخلية الأساسية لفهرس H3. الصياغةindex— رقم فهرس الخلية السداسية. UInt64.
- رقم الخلية الأساسية للسداسي. UInt8.
Query
Response
h3HexAreaM2
يُرجع متوسط مساحة الخلية السداسية بالمتر المربع عند مستوى الدقة المحدد. الصيغةresolution— دقة الفهرس. النطاق:[0, 15]. UInt8.
- المساحة بالمتر المربع. Float64.
Query
Response
h3HexAreaKm2
يعيد متوسط مساحة الخلية السداسية بالكيلومترات المربعة عند مستوى الدقة المحدد. الصيغةresolution— دقة الفهرس. النطاق:[0, 15]. UInt8.
- المساحة بالكيلومترات المربعة. Float64.
Query
Response
h3IndexesAreNeighbors
يُعيد ما إذا كانت فهارس H3 المعطاة متجاورة أم لا. البنيةQuery
Response
h3ToChildren
تُرجِع مصفوفة من الفهارس الفرعية للفهرس H3 المحدَّد. الصيغةQuery
Response
h3ToParent
يعيد الفهرس الأب (الأقل دقة) الذي يحتوي على فهرس H3 المحدد. البنية- فهرس H3 الأب. UInt64.
Query
Response
h3ToString
يحوّل تمثيلH3Index الخاص بالفهرس إلى تمثيله النصي.
index— رقم فهرس الخلية السداسية. UInt64.
- التمثيل النصي لفهرس H3. String.
Query
Response
stringToH3
يحوّل التمثيل النصي إلى تمثيلH3Index (UInt64).
البنية
index_str— التمثيل النصي لفهرس H3. سلسلة.
- رقم فهرس الخلية السداسية. تُرجع القيمة 0 عند حدوث خطأ. UInt64.
Query
Response
h3GetResolution
يعيد مستوى الدقة لفهرس H3. الصيغةindex— رقم فهرس الخلية السداسية. UInt64.
- مستوى دقة الفهرس. النطاق:
[0, 15]. UInt8.
Query
Response
h3IsResClassIII
تُرجِع ما إذا كان لفهرس H3 درجة دقة ذات اتجاه من الفئة III. البنيةindex— رقم فهرس الخلية السداسية. UInt64.
1— للفهرس مستوى دقة ذو اتجاه من الفئة III. UInt8.0— ليس للفهرس مستوى دقة ذو اتجاه من الفئة III. UInt8.
Query
Response
h3IsPentagon
يُرجع ما إذا كان فهرس H3 هذا يمثّل خلية خماسية الأضلاع. الصياغةindex— رقم فهرس الخلية السداسية. UInt64.
Query
Response
h3GetFaces
يعيد أوجه عشروني السطوح التي يتقاطع معها مؤشر H3 معيّن. الصيغةindex— رقم فهرس الخلية السداسية. UInt64.
Query
Response
h3CellAreaM2
تُرجِع المساحة الدقيقة، بالمتر المربع، لخلية محددة تقابل قيمة H3 index المُدخلة. الصيغةindex— رقم فهرس الخلية السداسية. UInt64.
- مساحة الخلية بالأمتار المربعة. Float64.
Query
Response
h3CellAreaRads2
يعيد المساحة الدقيقة لخلية محددة، مقاسةً بالراديان المربع، والمطابقة لفهرس H3 المُدخل. البنيةindex— رقم فهرس الخلية السداسية. UInt64.
- مساحة الخلية بوحدة الراديان المربّع. Float64.
Query
Response
h3ToCenterChild
تُرجِع فهرس H3 الابن المركزي (الأدق) الواقع ضمن فهرس H3 المُعطى عند درجة الدقة المحددة. الصياغةQuery
Response
h3ExactEdgeLengthM
يعيد الطول الدقيق للحافة أحادية الاتجاه التي يمثّلها فهرس H3 المُدخل، بالأمتار. الصيغةindex— رقم فهرس الخلية السداسية. UInt64.
- الطول الدقيق للحافة بالأمتار. Float64.
Query
Response
h3ExactEdgeLengthKm
يُرجِع الطول الدقيق للحافة أحادية الاتجاه التي يمثّلهافهرس H3 المُدخَل، بالكيلومترات.
صيغة
index— رقم فهرس الخلية السداسية. UInt64.
- الطول الدقيق للحافة بالكيلومترات. Float64.
Query
Response
h3ExactEdgeLengthRads
تعيد الطول الدقيق للحافة أحادية الاتجاه التي يمثّلها فهرس h3 المُدخل، بالراديان. الصيغةindex— رقم فهرس الخلية السداسية. UInt64.
- الطول الدقيق للحافة بالراديان. Float64.
Query
Response
h3NumHexagons
يعيد عدد فهارس H3 الفريدة عند مستوى الدقة المحدد. الصياغةresolution— دقة الفهرس. النطاق:[0, 15]. UInt8.
- عدد فهارس H3. Int64.
Query
Response
h3PointDistM
تعيد مسافة “الدائرة العظمى” أو “هافرسين” بين كل زوج من نقاط GeoCoord (خط العرض/خط الطول)، بالمتر. صيغةlat1,lon1— خط العرض وخط الطول للنقطة 1 بالدرجات. Float64.lat2,lon2— خط العرض وخط الطول للنقطة 2 بالدرجات. Float64.
- مسافة هافرسين أو مسافة الدائرة العظمى بالأمتار.Float64.
Query
Response
h3PointDistKm
يعيد مسافة “الدائرة العظمى” أو مسافة “هافرسين” بين أزواج من نقاط GeoCoord (خط العرض/خط الطول) بالكيلومترات. صيغةlat1,lon1— خط العرض وخط الطول للنقطة 1 بالدرجات. Float64.lat2,lon2— خط العرض وخط الطول للنقطة 2 بالدرجات. Float64.
- مسافة هافرسين أو مسافة الدائرة العظمى بالكيلومترات. Float64.
Query
Response
h3PointDistRads
تعيد مسافة “الدائرة العظمى” أو مسافة “هافرسين” بين أزواج من نقاط GeoCoord (خط العرض/خط الطول) بوحدة الراديان. الصيغةlat1,lon1— خط العرض وخط الطول للنقطة 1 بالدرجات. Float64.lat2,lon2— خط العرض وخط الطول للنقطة 2 بالدرجات. Float64.
- مسافة هافرسين أو مسافة الدائرة العظمى بالراديان. Float64.
Query
Response
h3GetRes0Indexes
يعيد مصفوفة تضم جميع فهارس H3 عند مستوى الدقة 0. الصيغةQuery
Response
h3GetPentagonIndexes
يعيد جميع فهارس H3 الخماسية عند مستوى الوضوح المحدد. الصياغةresolution— دقة الفهرس. النطاق:[0, 15]. UInt8.
Query
Response
h3Line
يعيد الخط الواصل بين الفهرسين المُعطيين. الصيغةstart— رقم فهرس الخلية السداسية الذي يمثّل نقطة البداية. UInt64.end— رقم فهرس الخلية السداسية الذي يمثّل نقطة النهاية. UInt64.
Query
Response
h3Distance
تعيد المسافة، بوحدة خلايا الشبكة، بين الفهرسين المُقدَّمين. الصيغةstart— رقم فهرس الخلية السداسية الذي يمثّل نقطة البداية. UInt64.end— رقم فهرس الخلية السداسية الذي يمثّل نقطة النهاية. UInt64.
- عدد خلايا الشبكة. Int64.
Query
Response
h3HexRing
تُرجع الفهارس الخاصة بالحلقة السداسية المتمركزة حولorigin h3Index المُعطى وبطول k.
تُرجع 0 إذا لم يُرصد أي تشوّه خماسي.
البنية
Query
Response
h3GetUnidirectionalEdge
يعيد فهرس H3 لحافة أحادية الاتجاه لفهرسي خليتي H3 متجاورتين (الأصل والوجهة). يطرح استثناءً إذا لم يكن أيٌّ من الإدخالين خلية H3 صالحة (يتحكم في ذلك الإعدادfunctions_h3_default_if_invalid). بالنسبة إلى الخلايا الصالحة غير المتجاورة (بما في ذلك الخلية نفسها مرتين)، يعيد 0.
الصيغة
originIndex— رقم فهرس الخلية السداسية الأصلي. UInt64.destinationIndex— رقم فهرس الخلية السداسية للوجهة. UInt64.
- رقم فهرس الخلية السداسية للحافة أحادية الاتجاه. UInt64.
Query
Response
h3UnidirectionalEdgeIsValid
يحدِّد ما إذا كانH3Index المُقدَّم فهرس حافة أحادية الاتجاه صالحًا. يعيد القيمة 1 إذا كان حافة أحادية الاتجاه، و0 بخلاف ذلك.
البنية
index— رقم فهرس الخلية السداسية. UInt64.
Query
Response
h3GetOriginIndexFromUnidirectionalEdge
يعيد مؤشر السداسي الأصلي من H3Index الخاص بالحافة أحادية الاتجاه. يطرح استثناءً إذا لم يكن الإدخال حافة موجهة صالحة (يتحكم في ذلك الإعدادfunctions_h3_default_if_invalid)؛ ولا يعيد 0 إلا عند تمكين هذا الإعداد.
الصياغة
edge— رقم فهرس الخلية السداسية الذي يمثّل حافة أحادية الاتجاه. UInt64.
- رقم فهرس الخلية السداسية للمنشأ. UInt64.
- يطرح
INCORRECT_DATAللحواف الموجّهة غير الصالحة افتراضياً؛ ويعيد0عندما يكونfunctions_h3_default_if_invalid = 1.
Query
Response
h3GetDestinationIndexFromUnidirectionalEdge
يعيد فهرس الخلية السداسية للوجهة من H3Index للحافة أحادية الاتجاه. يطرح استثناءً إذا لم يكن الإدخال حافة موجهة صالحة (يتحكم في ذلك الإعدادfunctions_h3_default_if_invalid)؛ ولا يعيد 0 إلا عند تمكين هذا الإعداد.
الصياغة
edge— رقم فهرس الخلية السداسية الذي يمثّل حافة أحادية الاتجاه. UInt64.
- رقم فهرس الخلية السداسية للوجهة. UInt64.
- يُطلق
INCORRECT_DATAعند وجود حواف موجّهة غير صالحة افتراضيًا؛ ويعيد0عندما يكونfunctions_h3_default_if_invalid = 1.
Query
Response
h3GetIndexesFromUnidirectionalEdge
يعيد فهارس السداسيات عند نقطتَي المنشأ والوجهة من H3Index للحافة أحادية الاتجاه المحددة. البنيةedge— رقم فهرس الخلية السداسية الذي يمثّل حافة أحادية الاتجاه. UInt64.
tuple(origin,destination):
origin— رقم فهرس الخلية السداسية للمنشأ. UInt64.destination— رقم فهرس الخلية السداسية للوجهة. UInt64.
functions_h3_default_if_invalid)؛ ولا يُرجِع (0,0) إلا عند تمكين ذلك الإعداد.
مثال
Query
Response
h3GetUnidirectionalEdgesFromHexagon
يوفّر جميع الحواف أحادية الاتجاه الخارجة من قيمة H3Index المقدَّمة. يُطلق استثناءً إذا لم يكن الإدخال خلية H3 صالحة (يتحكم في ذلك الإعدادfunctions_h3_default_if_invalid)؛ ولا يعيد مصفوفة فارغة إلا عند تفعيل هذا الإعداد.
الصيغة
index— رقم فهرس الخلية السداسية الذي يمثّل خلية. UInt64.
- مصفوفة من فهارس H3 تمثّل كل حافة أحادية الاتجاه. Array(UInt64).
- يُطلق الخطأ
INCORRECT_DATAللخلايا غير الصالحة افتراضيًا؛ ويعيد[]عندما يكونfunctions_h3_default_if_invalid = 1.
Query
Response
h3GetUnidirectionalEdgeBoundary
تُرجِع الإحداثيات التي تُعرِّف الحافة أحادية الاتجاه. تطرح استثناءً إذا لم يكن الإدخال حافة موجّهة صالحة (يتحكم في ذلك الإعدادfunctions_h3_default_if_invalid)؛ ولا تُرجِع مصفوفة فارغة إلا عندما يكون هذا الإعداد مُفعّلًا.
البنية
index— رقم فهرس الخلية السداسية الذي يمثّل حافة أحادية الاتجاه. UInt64.
- مصفوفة من الأزواج ‘(lat, lon)’. (Float64, Float64).
- يُطلق
INCORRECT_DATAللحواف الموجّهة غير الصالحة افتراضيًا؛ ويُرجع[]عندما يكونfunctions_h3_default_if_invalid = 1.
Query
Response