ST_DISTANCE (استعلام NoSQL)

ينطبق على: NoSQL

إرجاع المسافة بين تعبيري GeoJSON Point أو Polygon أو MultiPolygon أو LineString.

ملاحظة

لمزيد من المعلومات، راجع بيانات موقع Geospatial و GeoJSON.

بناء الجملة

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)  

الوسيطات

الوصف
spatial_expr_1 أي تعبير GeoJSON Point أو Polygon أو MultiPolygon أو LineString صالح.
spatial_expr_2 أي تعبير GeoJSON Point أو Polygon أو MultiPolygon أو LineString صالح.

أنواع الإرجاع

إرجاع تعبير رقمي يعدد المسافة بين تعبيرين.

أمثلة

يفترض المثال التالي وجود حاوية مع عنصرين.

[
  {
    "name": "Headquarters",
    "location": {
      "type": "Point",
      "coordinates": [
        -122.12826822304672,
        47.63980239335718
      ]
    },
    "category": "business-offices"
  },
  {
    "name": "Research and development",
    "location": {
      "type": "Point",
      "coordinates": [
        -96.84368664765994,
        46.81297794314663
      ]
    },
    "category": "business-offices"
  }
]

يوضح المثال كيفية استخدام الدالة كعامل تصفية لإرجاع العناصر ضمن مسافة محددة.

SELECT
    o.name,
    ST_DISTANCE(o.location, {
        "type": "Point", 
        "coordinates": [-122.11758113953535, 47.66901087006131]
    }) / 1000 AS distanceKilometers
FROM
    offices o
WHERE
    o.category = "business-offices"
[
  {
    "name": "Headquarters",
    "distanceKilometers": 3.345269817267368
  },
  {
    "name": "Research and development",
    "distanceKilometers": 1907.438421299902
  }
]

الملاحظات

  • يتم التعبير عن النتيجة بالأمتار للنظام المرجعي الافتراضي.
  • تستفيد هذه الدالة من فهرس جغرافي مكاني باستثناء الاستعلامات ذات التجميعات.
  • تتطلب مواصفات GeoJSON تحديد النقاط داخل المضلع بترتيب عكس اتجاه عقارب الساعة. يمثل المضلع المحدد بترتيب في اتجاه عقارب الساعة معكوس المنطقة بداخله.