GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.12. دوال القياس
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_Length

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

ST_Length — تُعيد الطول ثنائي الأبعاد لشكل هندسي خطي.

المختصر

float ST_Length(geometry a_2dlinestring);

float ST_Length(geography geog, boolean use_spheroid = true);

الوصف

لأنواع geometry: تُعيد الطول الديكارتي ثنائي الأبعاد للشكل إذا كان LineString أو MultiLineString أو ST_Curve أو ST_MultiCurve. وللأشكال المساحية تُعاد القيمة 0؛ استخدم ST_Perimeter بدلًا من ذلك. ويحدد النظام المرجعي المكاني للشكل وحدات الطول.

لأنواع geography: يُجرى الحساب باستخدام الحساب الجيوديسي العكسي. ووحدات الطول بالمتر. وإذا كان PostGIS مُجمَّعًا مع PROJ الإصدار 4.8.0 أو أحدث، يُحدَّد الشكل الإهليلجي بواسطة SRID، وإلا فهو مقصور على WGS84. وإذا كانت use_spheroid = false، يعتمد الحساب على كرة بدلًا من شكل إهليلجي.

حاليًا بالنسبة لـ geometry هذه الدالة اسم بديل لـ ST_Length2D، لكن قد يتغير ذلك لدعم أبعاد أعلى.

[تنبيه]

تغيّرت في: 2.0.0 تغيير غير متوافق -- في الإصدارات السابقة كان تطبيقها على MULTI/POLYGON من نوع geography يُعطيك محيط POLYGON/MULTIPOLYGON. وفي 2.0.0 تغيّر ذلك لتُعيد 0 انسجامًا مع سلوك geometry. يُرجى استخدام ST_Perimeter إذا أردت محيط مضلع

[ملاحظة]

بالنسبة لـ geography يستخدم الحساب افتراضيًا نموذجًا إهليلجيًا. ولاستخدام الحساب الكروي الأسرع والأقل دقة استخدم ST_Length(gg,false);

تطبّق هذه الدالة مواصفة OGC Simple Features Implementation Specification for SQL 1.1. s2.1.5.1

تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM 3: 7.1.2, 9.3.4

متاحة منذ: 1.5.0 أُضيف دعم geography في 1.5.

أمثلة geometry

إعادة الطول بالقدم لخط. لاحظ أن الوحدة القدم لأن EPSG:2249 هو Massachusetts State Plane Feet

SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 2967450,743265 2967450,
743265.625 2967416,743238 2967416)',2249));

st_length
---------
 122.630744000095


--Transforming WGS 84 LineString to Massachusetts state plane meters
SELECT ST_Length(
        ST_Transform(
                ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)'),
                26986
        )
);

st_length
---------
34309.4563576191
                        

أمثلة geography

إعادة طول خط geography بنظام WGS 84

-- the default calculation uses a spheroid
SELECT ST_Length(the_geog) As length_spheroid,  ST_Length(the_geog,false) As length_sphere
FROM (SELECT ST_GeographyFromText(
'SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)') As the_geog)
 As foo;

 length_spheroid  |  length_sphere
------------------+------------------
 34310.5703627288 | 34346.2060960742