الاسم
ST_AsMVT — دالة تجميعية تُعيد تمثيل MVT لمجموعة من الصفوف.
المختصر
bytea ST_AsMVT(anyelement set row);
bytea ST_AsMVT(anyelement row, text name);
bytea ST_AsMVT(anyelement row, text name, integer extent);
bytea ST_AsMVT(anyelement row, text name, integer extent, text geom_name);
bytea ST_AsMVT(anyelement row, text name, integer extent, text geom_name, text feature_id_name);
الوصف
دالة تجميعية تُعيد تمثيلًا ثنائيًا بصيغة Mapbox Vector Tile لمجموعة من الصفوف تقابل طبقة بلاطة. يجب أن تحتوي الصفوف على عمود geometry سيُرمَّز كشكل هندسي للمعلم. ويجب أن يكون الشكل الهندسي في فضاء إحداثيات البلاطة وصالحًا وفق مواصفة MVT. يمكن استخدام ST_AsMVTGeom لتحويل الشكل الهندسي إلى فضاء إحداثيات البلاطة. وتُرمَّز أعمدة الصف الأخرى كسمات للمعلم.
يمكن لصيغة Mapbox Vector Tile تخزين معالم بمجموعات سمات متفاوتة. لاستخدام هذه الإمكانية وفّر عمودًا من نوع JSONB في بيانات الصف يحتوي على كائنات Json بعمق مستوى واحد. وستُرمَّز المفاتيح والقيم في قيم JSONB كسمات للمعلم.
يمكن إنشاء بلاطات متعددة الطبقات بدمج عدة استدعاءات لهذه الدالة باستخدام || أو STRING_AGG.
|
|
|
لا تستدعِ الدالة مع |
row بيانات الصف التي تحتوي على عمود geometry واحد على الأقل.
name اسم الطبقة. القيمة الافتراضية السلسلة "default".
extent امتداد البلاطة في فضاء الشاشة كما تعرّفه المواصفة. القيمة الافتراضية 4096.
geom_name اسم عمود geometry في بيانات الصف. القيمة الافتراضية أول عمود geometry. لاحظ أن PostgreSQL افتراضيًا يحوّل المعرّفات غير المقتبسة إلى أحرف صغيرة تلقائيًا، مما يعني أنه ما لم يكن عمود geometry مقتبسًا، مثل "MyMVTGeom"، فيجب تمرير هذا المعامل بأحرف صغيرة.
feature_id_name اسم عمود معرّف المعلم (Feature ID) في بيانات الصف. إذا كان NULL أو سالبًا فلا يُعيَّن معرّف المعلم. يُستخدم أول عمود يطابق الاسم وله نوع صالح (smallint أو integer أو bigint) كمعرّف للمعلم، ويُضاف أي عمود لاحق كخاصية. خصائص JSON غير مدعومة.
حُسّنت في: 3.0 - أُضيف دعم معرّف المعلم (Feature ID).
حُسّنت في: 2.5.0 - أُضيف دعم الاستعلام المتوازي.
متاحة منذ: 2.4.0
أمثلة
WITH mvtgeom AS
(
SELECT ST_AsMVTGeom(geom, ST_TileEnvelope(12, 513, 412), extent =
> 4096, buffer =
> 64) AS geom, name, description
FROM points_of_interest
WHERE geom && ST_TileEnvelope(12, 513, 412, margin =
> (64.0 / 4096))
)
SELECT ST_AsMVT(mvtgeom.*)
FROM mvtgeom;