3.2. خدمة الخرائط على الويب Web Map Service (WMS)¶
يوفر معيارا WMS 1.1.1 و 1.3.0 المطبَّقان في QGIS Server واجهة HTTP لطلب صور الخرائط أو مفاتيح الخرائط المولَّدة من مشروع QGIS. يحدد طلب WMS النموذجي مشروع QGIS المراد استخدامه، والطبقات المراد عرضها، وصيغة الصورة المراد توليدها. كما يتوفر دعم أساسي لـ Styled Layer Descriptor (SLD).
المواصفات:
الطلبات القياسية التي يوفرها QGIS Server:
الطلب |
وصف |
|---|---|
يُرجع بيانات وصفية بصيغة XML تتضمن معلومات عن الخادم |
|
يُرجع خريطة |
|
يسترجع البيانات (الشكل الهندسي والقيم) لموقع بكسل |
|
يُرجع رموز مفتاح الخريطة |
|
يُرجع مستند XML يتضمن وصف النمط بلغة SLD |
|
يُرجع معلومات عن توفر WFS و WCS للطبقات المتجهية والشبكية على التوالي |
الطلبات الخاصة بالمورّد التي يوفرها QGIS Server:
الطلب |
وصف |
|---|---|
يُرجع تخطيطًا من QGIS |
|
يُرجع معلومات محددة عن QGIS Server |
|
يعيد بيانات وصفية بصيغة XML حول القدرات الموسّعة الاختيارية |
3.2.1. GetCapabilities¶
المعاملات القياسية لطلب GetCapabilities وفقًا لمواصفات OGC WMS 1.1.1 و 1.3.0:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetCapabilities ) |
|
لا |
إصدار الخدمة |
يدعم طلب GetCapabilities أيضًا معاملات المورِّد (vendor parameters) التالية:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetCapabilities
3.2.2. GetMap¶
المعاملات القياسية لطلب GetMap وفقًا لمواصفات OGC WMS 1.1.1 و 1.3.0:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetMap ) |
|
نعم |
إصدار الخدمة |
|
لا |
الطبقات المراد عرضها |
|
لا |
نمط الطبقات |
|
نعم |
نظام الإحداثيات المرجعي |
|
نعم |
امتداد الخريطة |
|
نعم |
عرض الصورة بالبكسل |
|
نعم |
ارتفاع الصورة بالبكسل |
|
لا |
صيغة الصورة |
|
لا |
خلفية شفافة |
|
SLD |
لا |
عنوان URL لملف SLD يُستخدم في التنسيق |
SLD_BODY |
لا |
SLD مضمَّن (XML) يُستخدم في التنسيق |
إضافةً إلى المعاملات القياسية، يدعم QGIS Server الرسم التوضيحي (redlining) و طبقات WMS الخارجية إلى جانب المعاملات الإضافية التالية:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
|
لا |
تحديد لون الخلفية |
|
لا |
تحديد دقة المخرجات |
|
لا |
ضغط JPEG |
|
لا |
العتامة للطبقة أو المجموعة |
|
لا |
مجموعة جزئية من المعالم |
|
لا |
إبراز المعالم |
|
FILE_NAME |
لا |
اسم الملف المُنزَّل فقط مع |
لا |
خيارات صيغة الملف المحددة فقط مع |
|
لا |
العمل في وضع البلاطات |
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&STYLES=style1,default,style3
&OPACITIES=125,200,125
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&FORMAT=image/png
&TRANSPARENT=TRUE
&DPI=300
&TILED=TRUE
VERSION¶
يتيح هذا المعامل تحديد إصدار الخدمة المراد استخدامه. القيم المتاحة للمعامل VERSION هي:
1.1.11.3.0
بحسب رقم الإصدار، يُتوقع وجود اختلافات طفيفة كما سيُشرح لاحقًا في المعاملات التالية:
CRS/SRSBBOX
LAYERS¶
يتيح هذا المعامل تحديد الطبقات المراد عرضها على الخريطة. يجب الفصل بين الأسماء بفاصلة.
بالإضافة إلى ذلك، قدّم QGIS Server بعض الخيارات لتحديد الطبقات عن طريق:
معرّف الطبقة: يوجد خيار المشروع الذي يسمح بتحديد الطبقات بمعرّفاتها في تبويب ضمن نافذة الحوار . فعّل مربع الاختيار Use layer ids as names لتنشيط هذا الخيار.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayerid1,mylayerid2
&...
STYLES¶
يمكن استخدام هذا المعامل لتحديد نمط طبقة في مرحلة الرسم. يجب الفصل بين الأنماط بفاصلة. اسم النمط الافتراضي هو default.
SRS / CRS¶
يتيح هذا المعامل تحديد النظام المرجعي المكاني لمخرجات الخريطة في WMS 1.1.1 ويجب أن يُكتب بالشكل EPSG:XXXX. لاحظ أن CRS مدعوم أيضًا إذا كان الإصدار الحالي 1.1.1.
في WMS 1.3.0 يُفضَّل استخدام المعامل CRS لكن SRS مدعوم أيضًا.
لاحظ أنه إذا حُدّد المعاملان CRS و SRS كلاهما في الطلب، فإن الإصدار الحالي المحدد في المعامل VERSION هو الحاسم.
في الحالة التالية، يُعتمد المعامل SRS أيًّا كانت قيمة المعامل VERSION لأن CRS غير محدد:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&SRS=EPSG:2854
&...
في الحالة التالية، يُعتمد المعامل SRS بدلًا من CRS بسبب المعامل VERSION:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&CRS=EPSG:4326
&SRS=EPSG:2854
&...
في الحالة التالية، يُعتمد المعامل CRS بدلًا من SRS بسبب المعامل VERSION:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=EPSG:4326
&SRS=EPSG:2854
&...
BBOX¶
يتيح هذا المعامل تحديد امتداد الخريطة بوحدات نظام الإحداثيات المرجعي الحالي. يجب الفصل بين الإحداثيات بفاصلة.
يُكتب المعامل BBOX بالشكل min_a,min_b,max_a,max_b لكن تعريف المحورين a و b يختلف بحسب المعامل VERSION الحالي:
في WMS 1.1.1 يكون ترتيب المحاور دائمًا شرق/شمال
في WMS 1.3.0 يعتمد ترتيب المحاور على الجهة المرجعية لنظام الإحداثيات
على سبيل المثال، في حالة EPSG:4326 و WMS 1.1.1، يكون a هو خط الطول (شرق) و b هو دائرة العرض (شمال)، مما يؤدي إلى طلب مثل:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&SRS=epsg:4326
&BBOX=-180,-90,180,90
&...
أما في حالة WMS 1.3.0، فإن ترتيب المحاور المعرّف في قاعدة بيانات EPSG هو شمال/شرق، لذا يكون a هو دائرة العرض و b هو خط الطول:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=epsg:4326
&BBOX=-90,-180,90,180
&...
WIDTH¶
يتيح هذا المعامل تحديد عرض صورة المخرجات بالبكسل.
HEIGHT¶
يتيح هذا المعامل تحديد ارتفاع صورة المخرجات بالبكسل.
FORMAT¶
يمكن استخدام هذا المعامل لتحديد صيغة صورة الخريطة. القيم المتاحة هي:
jpgjpegimage/jpegimage/pngimage/png; mode=1bitimage/png; mode=8bitimage/png; mode=16bitimage/webpapplication/dxf: تُصدَّر بصيغة DXF فقط الطبقات التي تمتلك صلاحية القراءة في خدمة WFSapplication/pdfمثال على عنوان URL:
http://localhost/qgisserver? SERVICE=WMS&VERSION=1.3.0 &REQUEST=GetMap &FORMAT=application/dxf &LAYERS=Haltungen,Normschacht,Spezialbauwerke &CRS=EPSG%3A21781 &BBOX=696136.28844801,245797.12108743,696318.91114315,245939.25832905 &WIDTH=1042 &HEIGHT=811 &FORMAT_OPTIONS=MODE:SYMBOLLAYERSYMBOLOGY;SCALE:250 &FILE_NAME=plan.dxf
TRANSPARENT¶
يمكن استخدام هذا المعامل المنطقي لتحديد شفافية الخلفية. القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
مع ذلك، يُتجاهل هذا المعامل إذا كانت صيغة الصورة المحددة في FORMAT غير PNG.
BGCOLOR¶
يتيح هذا المعامل تحديد لون خلفية لصورة الخريطة. لكن لا يمكن دمجه مع المعامل TRANSPARENT في حالة صور PNG (إذ تكون الأولوية للشفافية). يمكن كتابة اللون حرفيًا أو بالترميز الست عشري.
مثال على عنوان URL بالترميز الحرفي:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=green
&...
مثال على عنوان URL بالترميز الست عشري:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=0x00FF00
&...
DPI¶
يمكن استخدام هذا المعامل لتحديد دقة المخرجات المطلوبة.
IMAGE_QUALITY¶
يُستخدم هذا المعامل لصور JPEG فقط. القيمة الافتراضية لضغط JPEG هي -1.
يمكنك تغيير القيمة الافتراضية لكل مشروع QGIS من قائمة في نافذة الحوار . وإذا أردت تجاوزها في طلب GetMap فيمكنك ذلك باستخدام المعامل IMAGE_QUALITY.
OPACITIES¶
قائمة قيم عتامة مفصولة بفواصل. يمكن ضبط العتامة على مستوى الطبقة أو المجموعة. تتراوح القيم المسموح بها من 0 (شفافة تمامًا) إلى 255 (معتمة تمامًا).
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=200
&CRS=EPSG:4326
&LAYERS=countries,places
&BBOX=42,-6,52,15
&OPACITIES=255,0
شكل 3.3 إلى اليسار OPACITIES=255,0 وإلى اليمين OPACITIES=255,255¶
FILTER¶
يمكن تحديد مجموعة جزئية من الطبقات باستخدام المعامل FILTER. الصياغة هي في الأساس نفسها المستخدمة في سلسلة المجموعة الجزئية (subset string) في QGIS. لكن هناك بعض القيود لتجنّب حقن SQL في قواعد البيانات عبر QGIS Server. إذا عُثر على سلسلة خطرة في المعامل، فسيعيد QGIS Server الخطأ التالي:
<ServiceExceptionReport>
<ServiceException code="Security">The filter string XXXXXXXXX has been rejected because of security reasons.
Note: Text strings have to be enclosed in single or double quotes. A space between each word / special character is mandatory.
Allowed Keywords and special characters are IS,NOT,NULL,AND,OR,IN,=,<,=<,>,>=,!=,',',(,),DMETAPHONE,SOUNDEX.
Not allowed are semicolons in the filter expression.</ServiceException>
</ServiceExceptionReport>
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=300
&CRS=EPSG:4326
&BBOX=41,-6,52,10
&LAYERS=countries_shapeburst,countries,places
&FILTER=countries_shapeburst,countries:"name" = 'France';places: "name" = 'Paris'
شكل 3.4 استجابة الخادم لطلب GetMap مع المعامل FILTER¶
في هذا المثال، يُطبَّق المرشّح نفسه "name" = 'France' على الطبقتين countries و countries_shapeburst، بينما يُطبَّق المرشّح "name" = 'Paris' على places فقط.
ملاحظة
يمكن إجراء عمليات بحث في البيانات الوصفية عبر GetFeatureInfo مع حذف المعامل X/Y إذا وُجد FILTER. عندها يعيد QGIS Server معلومات عن المعالم المطابقة ويولّد مستطيلًا محيطًا مدمجًا في مخرجات XML.
SELECTION¶
يمكن للمعامل SELECTION إبراز معالم من طبقة أو أكثر. يمكن تحديد المعالم المتجهية بتمرير قوائم من معرّفات المعالم مفصولة بفواصل.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayer1,mylayer2
&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6
&...
تعرض الصورة التالية الاستجابة لطلب GetMap يستخدم الخيار SELECTION، مثل http://myserver.com/...&SELECTION=countries:171,65.
بما أن معرّفات هذه المعالم تقابل في مجموعة البيانات المصدر France و Romania، فإنها تظهر مُبرَزة باللون الأصفر.
شكل 3.5 استجابة الخادم لطلب GetMap مع المعامل SELECTION¶
FORMAT_OPTIONS¶
يمكن استخدام هذا المعامل لتحديد خيارات للصيغة المحددة. يُستخدم فقط مع FORMAT=application/dxf في طلب GetMap. يأخذ قائمة من أزواج key:value مفصولة بفاصلة منقوطة:
SCALE: يُستخدم لقواعد الترميز والمرشحات والأنماط (وليس للتغيير الفعلي لمقياس البيانات، إذ تبقى البيانات بمقياسها الأصلي).
MODE: يقابل خيارات التصدير المتاحة في نافذة حوار تصدير DXF في QGIS Desktop. القيم الممكنة هي
NOSYMBOLOGYوFEATURESYMBOLOGYوSYMBOLLAYERSYMBOLOGY.LAYERATTRIBUTES: حدّد حقلًا، أو في حالة وجود طبقات عديدة قائمة حقول مفصولة بفواصل، تحتوي على القيم المستخدمة لأسماء طبقات DXF؛ وإذا لم يُحدَّد، تُستخدم أسماء طبقات QGIS الأصلية.
USE_TITLE_AS_LAYERNAME: إذا فُعّل، يُستخدم عنوان الطبقة اسمًا لها.
CODEC: حدّد ترميزًا (codec) يُستخدم في الترميز. القيمة الافتراضية هي
ISO-8859-1؛ راجع نافذة حوار تصدير DXF في QGIS Desktop لمعرفة القيم الصالحة.NO_MTEXT: استخدام TEXT بدلًا من MTEXT للتسميات.
FORCE_2D: فرض مخرجات ثنائية الأبعاد. هذا مطلوب لعرض الخطوط المتعددة.
TILED¶
لأسباب تتعلق بالأداء، يمكن استخدام QGIS Server في وضع البلاطات. في هذا الوضع، يطلب العميل عدة بلاطات صغيرة ثابتة الحجم ويجمعها لتكوين الخريطة كاملة. وعند القيام بذلك، قد تظهر الرموز الواقعة على الحد الفاصل بين بلاطتين أو بالقرب منه مقطوعةً، لأنها موجودة في إحدى البلاطتين فقط.
اضبط المعامل TILED على TRUE لتخبر QGIS Server بالعمل في وضع البلاطات، وبتطبيق Tile buffer (النطاق العازل للبلاطة) المضبوط في مشروع QGIS (انظر ضبط مشروعك).
عندما تكون قيمة TILED هي TRUE ويكون في مشروع QGIS نطاق عازل للبلاطة غير صفري، تُرسم المعالم الواقعة خارج امتداد البلاطة لتجنّب ظهور رموز مقطوعة عند حدود البلاطات.
القيمة الافتراضية لـ TILED هي FALSE.
3.2.3. GetFeatureInfo¶
المعاملات القياسية لطلب GetFeatureInfo وفقًا لمواصفات OGC WMS 1.1.1 و 1.3.0:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetFeatureInfo ) |
|
لا |
إصدار الخدمة |
|
نعم |
الطبقات المراد الاستعلام عنها |
|
نعم |
الطبقات المراد عرضها (مطابقة لـ QUERY_LAYERS) |
|
لا |
نمط الطبقات |
|
نعم |
نظام الإحداثيات المرجعي |
|
لا |
امتداد الخريطة |
|
نعم |
عرض الصورة بالبكسل |
|
نعم |
ارتفاع الصورة بالبكسل |
|
لا |
خلفية شفافة |
|
لا |
صيغة المخرجات |
|
لا |
الحد الأقصى لعدد المعالم المُعادة |
|
لا |
عمود البكسل للنقطة المراد الاستعلام عنها |
|
لا |
مثل المعامل I، لكن في WMS 1.1.1 |
|
لا |
صف البكسل للنقطة المراد الاستعلام عنها |
|
لا |
مثل المعامل J، لكن في WMS 1.1.1 |
|
WMS_PRECISION |
لا |
الدقة (عدد الأرقام) المستخدمة عند إعادة الشكل الهندسي (انظر كيفية إضافة الشكل الهندسي إلى استجابة المعالم). القيمة الافتراضية هي |
إضافةً إلى المعاملات القياسية، يدعم QGIS Server المعاملات الإضافية التالية:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
|
لا |
مجموعة جزئية من المعالم |
|
لا |
التفاوت بالبكسل للطبقات النقطية |
|
لا |
التفاوت بالبكسل للطبقات الخطية |
|
لا |
التفاوت بالبكسل للطبقات المضلعية |
|
لا |
التصفية بالشكل الهندسي |
|
لا |
إضافة اسم العرض للمعلم إلى المخرجات |
|
لا |
إضافة تلميحات الخريطة (map tips) إلى المخرجات |
|
لا |
إضافة الشكل الهندسي إلى المخرجات |
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&INFO_FORMAT=text/xml
&TRANSPARENT=TRUE
&QUERY_LAYERS=mylayer1
&FEATURE_COUNT=3
&I=250
&J=250
INFO_FORMAT¶
يمكن استخدام هذا المعامل لتحديد صيغة النتيجة. القيم المتاحة هي:
text/xmltext/htmltext/plainapplication/vnd.ogc.gmlapplication/json
QUERY_LAYERS¶
يحدد هذا المعامل الطبقات المراد عرضها على الخريطة. يُفصل بين الأسماء بفاصلة.
بالإضافة إلى ذلك، يقدّم QGIS Server خيارات لتحديد الطبقات عن طريق:
الاسم المختصر
معرّف الطبقة
راجع المعامل LAYERS المعرّف في GetMap لمزيد من المعلومات.
FEATURE_COUNT¶
يحدد هذا المعامل الحد الأقصى لعدد المعالم المُعادة لكل طبقة. فمثلًا إذا ضُبط QUERY_LAYERS على layer1,layer2 وضُبط FEATURE_COUNT على 3، فسيُعاد 3 معالم كحد أقصى من layer1، وبالمثل سيُعاد 3 معالم كحد أقصى من layer2.
افتراضيًا، يُعاد معلم واحد فقط لكل طبقة.
I¶
يتيح لك هذا المعامل، المعرّف في WMS 1.3.0، تحديد عمود البكسل لنقطة الاستعلام.
X¶
المعامل نفسه I، لكنه معرّف في WMS 1.1.1.
J¶
يتيح لك هذا المعامل، المعرّف في WMS 1.3.0، تحديد صف البكسل لنقطة الاستعلام.
Y¶
المعامل نفسه J، لكنه معرّف في WMS 1.1.1.
FI_POINT_TOLERANCE¶
يحدد هذا المعامل التفاوت بالبكسل للطبقات النقطية.
FI_LINE_TOLERANCE¶
يحدد هذا المعامل التفاوت بالبكسل للطبقات الخطية.
FI_POLYGON_TOLERANCE¶
يحدد هذا المعامل التفاوت بالبكسل للطبقات المضلعية.
FILTER_GEOM¶
يحدد هذا المعامل شكلًا هندسيًا بصيغة WKT يجب أن تتقاطع معه المعالم.
المعامل WITH_DISPLAY_NAME¶
يحدد هذا المعامل ما إذا كان سيُضاف اسم العرض للمعلم إلى المخرجات.
القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
WITH_MAPTIP¶
يحدد هذا المعامل ما إذا كانت ستُضاف تلميحات الخريطة (map tips) إلى المخرجات.
القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSEHTML_FI_ONLY_MAPTIP: مثلTRUE، مع فارق أن استجابة HTML لطلب معلومات المعلم تحتوي على تلميح الخريطة فقط. يمنحك هذا تحكمًا كاملًا في استجابة HTML باستخدام محرر تلميحات الخريطة المدمج في الطبقة مثلًا.
WITH_GEOMETRY¶
يحدد هذا المعامل ما إذا كانت ستُضاف الأشكال الهندسية إلى المخرجات. لاستخدام هذه الميزة يجب أولًا تفعيل الخيار Add geometry to feature response في مشروع QGIS. انظر تهيئة مشروعك.
القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
3.2.4. GetLegendGraphic¶
المعاملات القياسية لطلب GetLegendGraphic وفقًا لمواصفات OGC WMS 1.1.1 و 1.3.0:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetLegendGraphic ) |
|
لا |
إصدار الخدمة |
|
نعم |
الطبقات المراد عرضها |
|
لا |
نمط الطبقات |
|
لا |
نظام الإحداثيات المرجعي |
|
لا |
امتداد الخريطة |
|
لا |
عرض الصورة بالبكسل |
|
لا |
ارتفاع الصورة بالبكسل |
|
لا |
صيغة مفتاح الخريطة |
|
لا |
خلفية شفافة |
إضافةً إلى المعاملات القياسية، يدعم QGIS Server معاملات إضافية لتغيير حجم عناصر مفتاح الخريطة أو خصائص الخط لعناوين الطبقات وتسميات العناصر:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
|
لا |
عرض الخريطة |
|
لا |
ارتفاع الخريطة |
|
لا |
إضافة عدد المعالم |
|
لا |
رمز القاعدة المراد رسمه |
|
لا |
رسم تسميات العناصر |
|
لا |
المسافة بين إطار مفتاح الخريطة ومحتواه (mm) |
|
لا |
المسافة الرأسية بين الطبقات (mm) |
|
لا |
المسافة الرأسية بين عنوان الطبقة والعناصر (mm) |
|
لا |
المسافة الرأسية بين الرمز والعناصر (mm) |
|
لا |
المسافة الأفقية بين الرمز والتسمية (mm) |
|
لا |
عرض معاينة الرمز (mm) |
|
لا |
ارتفاع معاينة الرمز (mm) |
|
لا |
رسم عنوان الطبقة |
|
لا |
عائلة خط الطبقة |
|
لا |
رسم عنوان الطبقة بخط عريض |
|
لا |
حجم خط عنوان الطبقة (pt) |
|
لا |
رسم عنوان الطبقة بخط مائل |
|
لا |
لون عنوان الطبقة |
|
لا |
عائلة خط العنصر |
|
لا |
رسم تسمية العنصر بخط عريض |
|
لا |
حجم خط تسمية العنصر (pt) |
|
لا |
رسم تسمية العنصر بخط مائل |
|
لا |
لون تسمية العنصر |
|
لا |
يضيف نص القاعدة إلى مخرجات JSON |
|
لا |
يضيف مجموعات الطبقات إلى مخرجات JSON |
BBOX¶
يمكن استخدام هذا المعامل لتحديد المنطقة الجغرافية التي يُبنى لها مفتاح الخريطة (صيغته موصوفة هنا) لكن لا يمكن دمجه مع المعامل RULE. يصبح المعامل SRS/CRS إلزاميًا عند استخدام المعامل BBOX.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
ملاحظة
عند تعريف المعامل BBOX، يُشار إلى مفتاح الخريطة باسم مفتاح الخريطة المعتمد على المحتوى (content based legend).
WIDTH¶
لا يُستخدم هذا المعامل افتراضيًا، لكنه يصبح إلزاميًا عند ضبط المعامل RULE. وفي هذه الحالة يتيح تحديد عرض صورة المخرجات بالبكسل.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=getlegendgraphic
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30
HEIGHT¶
لا يُستخدم هذا المعامل افتراضيًا، لكنه يصبح إلزاميًا عند ضبط المعامل RULE. وفي هذه الحالة يتيح تحديد ارتفاع صورة المخرجات بالبكسل.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30
FORMAT¶
يمكن استخدام هذا المعامل لتحديد صيغة صورة مفتاح الخريطة. القيم المتاحة هي:
image/jpegimage/pngapplication/json
في صيغة JSON تُرمَّز الرموز بترميز Base64، ولا تؤخذ في الحسبان معظم الخيارات الأخرى المتعلقة بالتخطيط أو الخطوط، لأن مفتاح الخريطة يجب أن يُبنى على جانب العميل. لا يمكن دمج المعامل RULE مع هذه الصيغة.
مثال على عنوان URL مع مخرجات JSON المقابلة:
http://localhost/qgisserver?
SERVICE=WMS&
REQUEST=GetLegendGraphic&
LAYERS=airports&
FORMAT=application/json
ومخرجات JSON المقابلة:
{
"nodes":[
{
"icon":"<base64 icon>",
"title":"airports",
"type":"layer"
}
],
"title":""
}
SRCWIDTH¶
يمكن تعريف هذا المعامل عند ضبط المعامل RULE. وفي هذه الحالة تُمرَّر قيمة SRCWIDTH إلى طلب GetMap الأساسي بوصفها المعامل WIDTH، بينما يُستخدم المعامل WIDTH الخاص بـ GetLegendGraphic لحجم صورة مفتاح الخريطة.
SRCHEIGHT¶
يمكن تعريف هذا المعامل عند ضبط المعامل RULE. وفي هذه الحالة تُمرَّر قيمة SRCHEIGHT إلى طلب GetMap الأساسي بوصفها المعامل HEIGHT، بينما يُستخدم المعامل HEIGHT الخاص بـ GetLegendGraphic لحجم صورة مفتاح الخريطة.
SHOWFEATURECOUNT¶
يمكن استخدام هذا المعامل لتفعيل عدّ المعالم في مفتاح الخريطة. القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
على سبيل المثال:
RULE¶
يتوفر هذا المعامل للطبقات ذات الرسم Rule-based (المعتمد على القواعد)، ويتيح بناء مفتاح خريطة يتضمن رمز القاعدة المسمّاة فقط. لا يمكن دمجه مع المعامل BBOX. ويجب تحديد HEIGHT و WIDTH.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=mylayer,
&RULE=myrulename,
&WIDTH=20,
&HEIGHT=20
RULELABEL¶
يتيح هذا المعامل التحكم في رسم تسميات العناصر. القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUE: عرض تسمية العنصرFALSE: إخفاء تسمية العنصرAUTO: إخفاء تسمية العنصر للطبقات ذات الرسم Single symbol (الرمز المفرد)
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&RULELABEL=AUTO
شكل 3.6 رسم مفتاح الخريطة دون تسمية للطبقات ذات الرمز المفرد¶
BOXSPACE¶
يتيح هذا المعامل تحديد المسافة بين إطار مفتاح الخريطة ومحتواه بالمليمتر. القيمة الافتراضية للمسافة هي 2 mm.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&BOXSPACE=0
شكل 3.7 إلى اليسار BOXSPACE=0 وإلى اليمين BOXSPACE=15¶
LAYERSPACE¶
يتيح هذا المعامل تحديد المسافة الرأسية بين الطبقات بالمليمتر. القيمة الافتراضية للمسافة هي 3 mm.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERSPACE=0
شكل 3.8 إلى اليسار LAYERSPACE=0 وإلى اليمين LAYERSPACE=10¶
LAYERTITLESPACE¶
يتيح هذا المعامل تحديد المسافة الرأسية بين عنوان الطبقة والعناصر التي تليه بالمليمتر. القيمة الافتراضية للمسافة هي 3 mm.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERTITLESPACE=0
شكل 3.9 إلى اليسار LAYERTITLESPACE=0 وإلى اليمين LAYERTITLESPACE=10¶
SYMBOLSPACE¶
يتيح هذا المعامل تحديد المسافة الرأسية بين الرمز والعنصر الذي يليه بالمليمتر. القيمة الافتراضية للمسافة هي 2 mm.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLSPACE=0
شكل 3.10 إلى اليسار SYMBOLSPACE=0 وإلى اليمين SYMBOLSPACE=5¶
ICONLABELSPACE¶
يتيح هذا المعامل تحديد المسافة الأفقية بين الرمز ونص التسمية بالمليمتر. القيمة الافتراضية للمسافة هي 2 mm.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=getlegendgraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ICONLABELSPACE=0
شكل 3.11 إلى اليسار ICONLABELSPACE=0 وإلى اليمين ICONLABELSPACE=10¶
SYMBOLWIDTH¶
يتيح هذا المعامل تحديد عرض معاينة الرمز بالمليمتر. القيمة الافتراضية للعرض هي 7 mm.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLWIDTH=2
شكل 3.12 إلى اليسار SYMBOLWIDTH=2 وإلى اليمين SYMBOLWIDTH=20¶
SYMBOLHEIGHT¶
يتيح هذا المعامل تحديد ارتفاع معاينة الرمز بالمليمتر. القيمة الافتراضية للارتفاع هي 4 mm.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLHEIGHT=2
شكل 3.13 إلى اليسار SYMBOLHEIGHT=2 وإلى اليمين SYMBOLHEIGHT=6¶
LAYERTITLE¶
يحدد هذا المعامل ما إذا كان سيُرسم عنوان الطبقة.
القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUE(القيمة الافتراضية)FALSE
LAYERFONTFAMILY¶
يحدد هذا المعامل عائلة الخط المستخدمة لرسم عنوان الطبقة.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&LAYERFONTFAMILY=monospace
LAYERFONTBOLD¶
يحدد هذا المعامل ما إذا كان عنوان الطبقة سيُرسم بخط عريض. القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTBOLD=TRUE
شكل 3.14 مفتاح الخريطة مع LAYERFONTBOLD=TRUE¶
LAYERFONTSIZE¶
يحدد هذا المعامل حجم الخط لرسم عنوان الطبقة بالنقاط (pt).
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTSIZE=20
شكل 3.15 مفتاح الخريطة مع LAYERFONTSIZE=20¶
LAYERFONTITALIC¶
يحدد هذا المعامل ما إذا كان عنوان الطبقة سيُرسم بخط مائل. القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTITALIC=TRUE
شكل 3.16 مفتاح الخريطة مع LAYERFONTITALIC=TRUE¶
LAYERFONTCOLOR¶
يحدد هذا المعامل لون عنوان الطبقة. يمكن كتابة اللون حرفيًا (red، green، ..) أو بالترميز الست عشري (0xFF0000، 0x00FF00، ...).
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTCOLOR=0x5f9930
شكل 3.17 مفتاح الخريطة مع LAYERFONTCOLOR=0x5f9930¶
ITEMFONTFAMILY¶
يحدد هذا المعامل عائلة الخط المستخدمة لرسم تسمية العنصر.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&ITEMFONTFAMILY=monospace
ITEMFONTBOLD¶
يحدد هذا المعامل ما إذا كانت تسمية العنصر ستُرسم بخط عريض. القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTBOLD=TRUE
شكل 3.18 مفتاح الخريطة مع ITEMFONTBOLD=TRUE¶
ITEMFONTSIZE¶
يحدد هذا المعامل حجم الخط لرسم عنوان الطبقة بالنقاط (pt).
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTSIZE=20
شكل 3.19 مفتاح الخريطة مع ITEMFONTSIZE=30¶
ITEMFONTITALIC¶
يحدد هذا المعامل ما إذا كانت تسمية العنصر ستُرسم بخط مائل. القيم المتاحة هي (دون تمييز بين الأحرف الكبيرة والصغيرة):
TRUEFALSE
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTITALIC=TRUE
شكل 3.20 مفتاح الخريطة مع ITEMFONTITALIC=TRUE¶
ITEMFONTCOLOR¶
يحدد هذا المعامل لون تسمية العنصر. يمكن كتابة اللون حرفيًا (red، green، ..) أو بالترميز الست عشري (0xFF0000، 0x00FF00، ...).
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTCOLOR=0x5f9930
شكل 3.21 مفتاح الخريطة مع ITEMFONTCOLOR=0x5f9930¶
SHOWRULEDETAILS¶
يحدد هذا المعامل ما إذا كانت مخرجات JSON ستتضمن أيضًا تفاصيل القاعدة التي ولّدت عنصر مفتاح الخريطة. لا يكون لهذا المعامل أثر إلا عندما تكون أداة الرسم معتمدة على القواعد أو مصنّفة.
مثال على عنوان URL مع مخرجات JSON المقابلة:
http://localhost/qgisserver?
SERVICE=WMS&
REQUEST=GetLegendGraphic&
LAYERS=airports&
FORMAT=application/json&
SHOWRULEDETAILS=TRUE
ومخرجات JSON المقابلة:
{
"nodes":[
{
"icon":"<base64 icon>",
"title":"airports",
"type":"layer",
"rule": "type = 'airport'"
}
],
"title":""
}
ADDLAYERGROUPS¶
يحدد هذا المعامل ما إذا كانت مخرجات JSON ستعرض أيضًا أسماء مجموعات الطبقات (والمجموعات الفرعية) في عنصر مفتاح الخريطة. القيم الممكنة هي:
TRUE: عرض تسميات المجموعاتFALSE(افتراضي): إخفاء تسميات المجموعات
شكل 3.22 مفتاح الخريطة بدون (يسارًا) ومع (يمينًا) عرض تسميات مجموعات الطبقات¶
ستبدو مخرجات JSON المقابلة التي تعرض أسماء المجموعات كما يلي:
{ "nodes":
[{ "nodes":
[{ "icon":"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAUklEQVQ4jWNgGAXDHzASUqCsrPwfmX/37l28evBKKisr/0+a7IMiNi93C15DcUpgM4wYQ5nwuZAcMIQNvHv3LuO83C0kG0hysoFZRrJNo2AYAQC87BpkGQj1fwAAAABJRU5ErkJggg==",
"title":"layer_a", "type":"layer"
},
{ "nodes":
[{ "icon":"iVBORw0KGgoAAAANSUhEUgAAABMAAAAUCAYAAABvVQZ0AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAHUlEQVQ4jWNgGAWjYCQDxh887r8G2hGjYBQMGAAA1x0CR0FzIkYAAAAASUVORK5CYII=",
"title":"layer_b", "type":"layer"
},
{ "icon":"iVBORw0KGgoAAAANSUhEUgAAABMAAAAUCAYAAABvVQZ0AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAHUlEQVQ4jWNgGAWjYCQDxtmzZ/8aaEeMglEwYAAAaIoCzTtn5XoAAAAASUVORK5CYII=",
"title":"layer_c", "type":"layer"
}],
"title":"lines", "type":"group"
},
{ "icon":"iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAKklEQVQ4jWNUVlX/z0AlwMLAwMDAnXmQKoYxUcWUUcNGDRs1bNSwYWYYACXDAsvQaTuVAAAAAElFTkSuQmCC",
"title":"layer_d", "type":"layer"
}],
"title":"top-level-group", "type":"group"
}],
"title":""
}
3.2.5. GetStyle(s)¶
المعاملات القياسية لطلب GetStyle (أو GetStyles) وفقًا لمواصفات OGC WMS 1.1.1:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetStyle أو GetStyles ) |
|
نعم |
الطبقات المراد الاستعلام عنها |
يدعم طلب GetStyle أيضًا معاملات المورِّد التالية:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetStyles
&LAYERS=mylayer1,mylayer2
3.2.6. DescribeLayer¶
المعاملات القياسية لطلب DescribeLayer وفقًا لمواصفات OGC WMS 1.1.1 و 1.3.0:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( DescribeLayer ) |
|
نعم |
الطبقات المراد وصفها |
|
نعم |
إصدار SLD |
يدعم طلب DescribeLayer أيضًا معاملات المورِّد التالية:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=DescribeLayer
&SLD_VERSION=1.1.0
&LAYERS=mylayer1
يبدو مستند XML كما يلي:
<DescribeLayerResponse xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://www.opengis.net/se" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/DescribeLayer.xsd">
<Version>1.1.0</Version>
<LayerDescription>
<owsType>wfs</owsType>
<se:OnlineResource xlink:href="http://localhost/qgisserver" xlink:type="simple"/>
<TypeName>
<se:FeatureTypeName>my_vector_layer</se:FeatureTypeName>
</TypeName>
</LayerDescription>
<LayerDescription>
<owsType>wcs</owsType>
<se:OnlineResource xlink:href="http://localhost/qgisserver" xlink:type="simple"/>
<TypeName>
<se:FeatureTypeName>my_raster_layer</se:FeatureTypeName>
</TypeName>
</LayerDescription>
</DescribeLayerResponse>
SLD_VERSION¶
يتيح هذا المعامل تحديد إصدار SLD. القيمة الوحيدة المتاحة هي 1.1.0.
3.2.7. GetPrint¶
يمتلك QGIS Server القدرة على إنشاء مخرجات تخطيط الطباعة بصيغة PDF أو بصيغة بكسلية. تُستخدم نوافذ تخطيط الطباعة في المشروع المنشور قوالبَ. وفي طلب GetPrint يستطيع العميل تحديد معاملات الخرائط والتسميات الموجودة في التخطيط.
يدعم طلب GetPrint الرسم التوضيحي (redlining) و طبقات WMS الخارجية إلى جانب المعاملات التالية:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetPrint ) |
|
لا |
إصدار الخدمة |
|
لا |
الطبقات المراد عرضها |
|
نعم |
قالب التخطيط المراد استخدامه |
|
نعم |
نظام الإحداثيات المرجعي |
|
لا |
صيغة المخرجات |
|
لا |
خيارات صيغة الملف المحددة فقط مع |
|
لا |
معالم الأطلس |
|
لا |
نمط الطبقات |
|
لا |
خلفية شفافة |
|
لا |
العتامة للطبقة أو المجموعة |
|
لا |
إبراز المعالم |
|
لا |
امتداد الخريطة 'X' |
|
لا |
طبقات الخريطة 'X' |
|
لا |
نمط طبقات الخريطة 'X' |
|
لا |
مقياس رسم طبقات الخريطة 'X' |
|
لا |
دوران الخريطة 'X' |
|
لا |
فاصل الشبكة على المحور x للخريطة 'X' |
|
لا |
فاصل الشبكة على المحور y للخريطة 'X' |
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&MAP=/home/qgis/projects/world.qgs
&CRS=EPSG:4326
&FORMAT=png
&TEMPLATE=Layout%201
&map0:EXTENT=-180,-90,180,90
&map0:LAYERS=mylayer1,mylayer2,mylayer3
&map0:OPACITIES=125,200,125
&map0:ROTATION=45
لاحظ أن قالب التخطيط قد يحتوي على أكثر من خريطة. لذا إذا أردت تهيئة خريطة معينة، فعليك استخدام معاملات mapX: حيث X عدد موجب يمكنك الحصول عليه بفضل طلب GetProjectSettings.
على سبيل المثال:
<WMS_Capabilities>
...
<ComposerTemplates xsi:type="wms:_ExtendedCapabilities">
<ComposerTemplate width="297" height="210" name="Druckzusammenstellung 1">
<ComposerMap width="171" height="133" name="map0"/>
<ComposerMap width="49" height="46" name="map1"/></ComposerTemplate>
</ComposerTemplates>
...
</WMS_Capabilities>
TEMPLATE¶
يمكن استخدام هذا المعامل لتحديد اسم قالب التخطيط المراد استخدامه في الطباعة.
FORMAT¶
يحدد هذا المعامل صيغة صورة الخريطة. القيم المتاحة هي:
png(القيمة الافتراضية)image/pngjpgjpegimage/jpegsvgimage/svgimage/svg+xmlpdfapplication/pdf
إذا كانت قيمة المعامل FORMAT مختلفة عن هذه القيم، فسيُعاد استثناء (exception).
FORMAT_OPTIONS¶
يمكن استخدام هذا المعامل لتحديد خيارات للصيغة المحددة. يُستخدم فقط مع FORMAT=application/pdf في طلبات GetPrint. يأخذ قائمة من أزواج key:value مفصولة بفاصلة منقوطة:
RASTERIZE_WHOLE_IMAGE: ما إذا كان ملف PDF بأكمله سيُصدَّر صورةً. الافتراضي: false.FORCE_VECTOR_OUTPUT: ما إذا كان ملف PDF سيُصدَّر بصيغة متجهية. الافتراضي: false.APPEND_GEOREFERENCE: ما إذا كانت معلومات الإسناد الجغرافي ستُضاف إلى ملف PDF. الافتراضي: true.EXPORT_METADATA: ما إذا كانت البيانات الوصفية (metadata) ستُضاف إلى ملف PDF. الافتراضي: true.TEXT_RENDER_FORMAT: يضبط صيغة رسم النص عند التصدير إلى PDF. يمكن أن تكونAlwaysOutlines(افتراضي) أوAlwaysText.SIMPLIFY_GEOMETRY: ما إذا كانت الأشكال الهندسية للمعالم ستُبسَّط. الافتراضي: true.WRITE_GEO_PDF: ما إذا كان سيُصدَّر ملف PDF جغرافي مكاني (Geospatial PDF). الافتراضي: false.USE_ISO_32000_EXTENSION_FORMAT_GEOREFERENCING: ما إذا كان سيُستخدم الإسناد الجغرافي وفق Iso32000. الافتراضي: false.USE_OGC_BEST_PRACTICE_FORMAT_GEOREFERENCING: ما إذا كان سيُستخدم الإسناد الجغرافي وفق أفضل ممارسات OGC. الافتراضي: false.EXPORT_THEMES: قائمة مفصولة بفواصل بسمات الخريطة (map themes) المستخدمة في تصدير Geospatial PDFPREDEFINED_MAP_SCALES: قائمة مفصولة بفواصل بمقاييس الرسم المستخدمة لرسم الخريطةLOSSLESS_IMAGE_COMPRESSION: ما إذا كان يجب ضغط الصور المضمّنة في ملف PDF باستخدام خوارزمية ضغط دون فقدان. الافتراضي: false.DISABLE_TILED_RASTER_RENDERING: ما إذا كانت الطبقات الشبكية ستُرسم دون تقسيم إلى بلاطات في ملف PDF. الافتراضي: false.
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&MAP=/home/qgis/projects/world.qgs
&CRS=EPSG:4326
&FORMAT=pdf
&TEMPLATE=Layout%201
&FORMAT_OPTIONS=FORCE_VECTOR_OUTPUT:TRUE;TEXT_RENDER_FORMAT:AlwaysOutlines;PREDEFINED_MAP_SCALES:250
ATLAS_PK¶
يتيح هذا المعامل تفعيل رسم الأطلس عبر الإشارة إلى المعالم المراد طباعتها. وللحصول على أطلس يضم جميع المعالم، يمكن استخدام الرمز * (وفقًا للحد الأقصى لعدد المعالم المسموح به في إعدادات المشروع).
عندما تكون قيمة FORMAT هي pdf، يُعاد مستند PDF واحد يجمع صفحات المعالم. أما في جميع الصيغ الأخرى، فتُعاد صفحة واحدة.
mapX:EXTENT¶
يحدد هذا المعامل امتداد عنصر خريطة في التخطيط بالشكل xmin,ymin,xmax,ymax.
mapX:ROTATION¶
يحدد هذا المعامل دوران الخريطة بالدرجات.
المعامل mapX:GRID_INTERVAL_X¶
يحدد هذا المعامل كثافة خطوط الشبكة في الاتجاه X.
المعامل mapX:GRID_INTERVAL_Y¶
يحدد هذا المعامل كثافة خطوط الشبكة في الاتجاه Y.
mapX:SCALE¶
يحدد هذا المعامل مقياس الرسم لعنصر خريطة في التخطيط. وهذا مفيد لضمان ظهور الطبقات والتسميات وفق مقياس الرسم حتى لو كان العميل والخادم يستخدمان خوارزميات مختلفة لحساب مقام مقياس الرسم.
mapX:LAYERS¶
يحدد هذا المعامل الطبقات لعنصر خريطة في التخطيط. راجع طبقات GetMap لمزيد من المعلومات عن هذا المعامل.
mapX:STYLES¶
يحدد هذا المعامل أنماط الطبقات المعرّفة في عنصر خريطة معين في التخطيط. راجع أنماط GetMap لمزيد من المعلومات عن هذا المعامل.
3.2.8. GetProjectSettings¶
يعمل هذا النوع من الطلبات بطريقة مشابهة لـ GetCapabilities، لكنه أكثر خصوصية بـ QGIS Server ويتيح للعميل قراءة معلومات إضافية غير متاحة في مخرجات GetCapabilities:
حالة الظهور الأولية للطبقات
معلومات عن البيانات الوصفية للطبقات المتجهية وأنواع تحريرها
معلومات عن ترتيب الطبقات وترتيب الرسم
قائمة الطبقات المنشورة في WFS
بيان ما إذا كانت مجموعة في شجرة الطبقات متنافية (mutually exclusive)
يدعم طلب GetProjectSettings المعاملات التالية:
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetProjectSettings ) |
3.2.9. GetSchemaExtension¶
يتيح طلب GetSchemaExtension الحصول على القدرات والعمليات الموسّعة الاختيارية لخدمة WMS كما ينفّذها QGIS Server.
المعامل |
إلزامي |
وصف |
|---|---|---|
نعم |
ملف مشروع QGIS |
|
نعم |
اسم الخدمة ( WMS ) |
|
نعم |
اسم الطلب ( GetSchemaExtension ) |
مثال على عنوان URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetSchemaExtension
يبدو مستند XML كما يلي:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wms="http://www.opengis.net/wms" xmlns:qgs="http://www.qgis.org/wms" targetNamespace="http://www.qgis.org/wms" elementFormDefault="qualified" version="1.0.0">
<import namespace="http://www.opengis.net/wms" schemaLocation="http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd"/>
<element name="GetPrint" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
<element name="GetStyles" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
</schema>
3.2.10. طبقات WMS الخارجية¶
يتيح QGIS Server تضمين طبقات من خوادم WMS خارجية في طلبات WMS GetMap و WMS GetPrint. وهذا مفيد خاصةً إذا كان عميل الويب يستخدم طبقة خلفية خارجية في خريطة الويب. ولأسباب تتعلق بالأداء، ينبغي أن يطلب عميل الويب هذه الطبقات مباشرةً (لا أن تمر تتابعيًا عبر QGIS Server). أما في الطباعة، فينبغي تمرير هذه الطبقات تتابعيًا عبر QGIS Server كي تظهر في الخريطة المطبوعة.
يمكن إضافة الطبقات الخارجية إلى المعامل LAYERS بالشكل EXTERNAL_WMS:<layername>. ويمكن بعد ذلك تمرير معاملات طبقات WMS الخارجية (مثل url و format و dpiMode و crs و layers و styles) بوصفها معاملات خدمة بالشكل <layername>:<parameter>. في طلب GetMap قد يبدو ذلك كما يلي:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=EXTERNAL_WMS:basemap,layer1,layer2
&OPACITIES=100,200,255
&STYLES=,,
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default
وبالمثل، يمكن استخدام الطبقات الخارجية في طلبات GetPrint:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetPrint
&TEMPLATE=A4
&map0:layers=EXTERNAL_WMS:basemap,layer1,layer2
&map0:EXTENT=<minx,miny,maxx,maxy>
&OPACITIES=100,200,255
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default
3.2.11. الرسم التوضيحي (Redlining)¶
هذه الميزة متاحة ويمكن استخدامها مع طلبات GetMap و GetPrint.
يمكن استخدام ميزة الرسم التوضيحي (redlining) لتمرير أشكال هندسية وتسميات في الطلب، يرسمها الخادم فوق الصورة القياسية المُعادة (الخريطة). يتيح هذا للمستخدم إبراز بعض المناطق أو المواقع وغيرها، أو ربما إضافة بعض التعليقات (التسميات) إليها، مما لا يوجد في الخريطة القياسية.
يكون طلب GetMap بالصيغة التالية:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&HIGHLIGHT_SYMBOL=<StyledLayerDescriptor><UserStyle><Name>Highlight</Name><FeatureTypeStyle><Rule><Name>Symbol</Name><LineSymbolizer><Stroke><SvgParameter name="stroke">%23ea1173</SvgParameter><SvgParameter name="stroke-opacity">1</SvgParameter><SvgParameter name="stroke-width">1.6</SvgParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></StyledLayerDescriptor>
&HIGHLIGHT_LABELSTRING=Write label here
&HIGHLIGHT_LABELSIZE=16
&HIGHLIGHT_LABELCOLOR=%23000000
&HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&HIGHLIGHT_LABELBUFFERSIZE=1.5
ويكون المكافئ في GetPrint بالصيغة التالية (لاحظ إضافة المعامل mapX: لتحديد الخريطة التي تحتوي على الرسم التوضيحي):
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&map0:HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&map0:HIGHLIGHT_SYMBOL=<StyledLayerDescriptor><UserStyle><Name>Highlight</Name><FeatureTypeStyle><Rule><Name>Symbol</Name><LineSymbolizer><Stroke><SvgParameter name="stroke">%23ea1173</SvgParameter><SvgParameter name="stroke-opacity">1</SvgParameter><SvgParameter name="stroke-width">1.6</SvgParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></StyledLayerDescriptor>
&map0:HIGHLIGHT_LABELSTRING=Write label here
&map0:HIGHLIGHT_LABELSIZE=16
&map0:HIGHLIGHT_LABELCOLOR=%23000000
&map0:HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&map0:HIGHLIGHT_LABELBUFFERSIZE=1.5
هذه هي الصورة الناتجة عن الطلب أعلاه، وفيها مضلع وتسمية مرسومان فوق الخريطة العادية:
شكل 3.23 استجابة الخادم لطلب GetMap مع معاملات الرسم التوضيحي¶
يمكنك ملاحظة وجود عدة معاملات في هذا الطلب للتحكم في ميزة الرسم التوضيحي. تتضمن القائمة الكاملة:
HIGHLIGHT_GEOM: يمكنك إضافة POINT و MULTILINESTRING و POLYGON وغيرها. وهو يدعم الأشكال الهندسية متعددة الأجزاء. إليك مثالًا:
HIGHLIGHT_GEOM=MULTILINESTRING((0 0, 0 1, 1 1)). يجب أن تكون الإحداثيات بنظام الإحداثيات المرجعي لطلب GetMap/GetPrint.HIGHLIGHT_LABELBUFFERCOLOR: يتحكم هذا المعامل في لون النطاق العازل للتسمية.
HIGHLIGHT_LABELBUFFERSIZE: يتحكم هذا المعامل في حجم النطاق العازل للتسمية.
HIGHLIGHT_LABELCOLOR: يتحكم هذا المعامل في لون التسمية.
HIGHLIGHT_LABEL_DISTANCE: يتحكم في المسافة بين المعلم (نقطة أو خط مثلًا) والتسمية بالمليمتر
HIGHLIGHT_LABELFONT: يتحكم هذا المعامل في خط التسمية (مثل Arial)
HIGHLIGHT_LABEL_HORIZONTAL_ALIGNMENT: يضع التسمية أفقيًا على نقطة باستخدام المحاذاة المحددة (مثل 'left' و 'center' و 'right')
HIGHLIGHT_LABEL_ROTATION: يتحكم في دوران التسمية بالدرجات
HIGHLIGHT_LABELSIZE: يتحكم هذا المعامل في حجم التسمية.
HIGHLIGHT_LABELSTRING: يمكنك تمرير نص التسمية إلى هذا المعامل.
HIGHLIGHT_LABEL_VERTICAL_ALIGNMENT: يضع التسمية رأسيًا على نقطة باستخدام المحاذاة المحددة (مثل 'top' و 'half' و 'bottom')
HIGHLIGHT_SYMBOL: يتحكم هذا المعامل في كيفية رسم حدود الشكل الهندسي، ويمكنك تغيير عرض الخط ولونه وعتامته.