GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.3. دوال إنشاء الأشكال الهندسية
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_TileEnvelope

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

الاسم

ST_TileEnvelope — تُنشئ مضلعًا مستطيلًا في نظام Web Mercator ‏(SRID:3857) باستخدام نظام البلاطات XYZ.

المختصر

geometry ST_TileEnvelope(integer tileZoom, integer tileX, integer tileY, geometry bounds=SRID=3857;LINESTRING(-20037508.342789 -20037508.342789,20037508.342789 20037508.342789), float margin=0.0);

الوصف

تُنشئ مضلعًا مستطيلًا يمثّل امتداد بلاطة في نظام البلاطات XYZ. تُحدَّد البلاطة بمستوى التكبير Z وبفهرس XY للبلاطة في الشبكة عند ذلك المستوى. يمكن استخدامها لتحديد حدود البلاطة التي تتطلبها ST_AsMVTGeom لتحويل الشكل الهندسي إلى فضاء إحداثيات بلاطات MVT.

افتراضيًا يكون غلاف البلاطة في النظام الإحداثي Web Mercator ‏(SRID:3857) باستخدام النطاق القياسي لنظام Web Mercator ‏(-20037508.342789, 20037508.342789). وهذا هو النظام الإحداثي الأكثر شيوعًا لبلاطات MVT. يمكن استخدام المعامل الاختياري bounds لتوليد بلاطات في أي نظام إحداثي. وهو شكل هندسي يحمل SRID وامتداد المربع "مستوى التكبير صفر" الذي يُرسم داخله نظام البلاطات XYZ.

يمكن استخدام المعامل الاختياري margin لتوسيع البلاطة بالنسبة المئوية المُعطاة. فمثلًا margin=0.125 توسّع البلاطة بنسبة 12.5%، وهو ما يكافئ buffer=512 عندما يكون حجم امتداد البلاطة 4096، كما في ST_AsMVTGeom. ويفيد ذلك في إنشاء نطاق عازل للبلاطة لتضمين بيانات تقع خارج المنطقة المرئية من البلاطة لكن وجودها يؤثر في رسم البلاطة. فعلى سبيل المثال، قد يقع اسم مدينة (نقطة) قرب حافة بلاطة، فينبغي رسم تسميته على بلاطتين، رغم أن النقطة تقع في المنطقة المرئية لبلاطة واحدة فقط. واستخدام البلاطات الموسّعة في الاستعلام يُدرج نقطة المدينة في كلتا البلاطتين. استخدم قيمة سالبة لتقليص البلاطة بدلًا من ذلك. القيم الأصغر من -0.5 ممنوعة لأنها ستُلغي البلاطة كليًا. لا تحدد هامشًا عند الاستخدام مع ST_AsMVTGeom. انظر مثال ST_AsMVT.

حُسّنت في: 3.1.0 أُضيف المعامل margin.

متاحة منذ: 3.0.0

مثال: بناء غلاف بلاطة

SELECT ST_AsText( ST_TileEnvelope(2, 1, 1) );

 st_astext
------------------------------
 POLYGON((-10018754.1713945 0,-10018754.1713945 10018754.1713945,0 10018754.1713945,0 0,-10018754.1713945 0))

SELECT ST_AsText( ST_TileEnvelope(3, 1, 1, ST_MakeEnvelope(-180, -90, 180, 90, 4326) ) );

                      st_astext
------------------------------------------------------
 POLYGON((-135 45,-135 67.5,-90 67.5,-90 45,-135 45))

انظر أيضًا

ST_MakeEnvelope