أكثر

طلب WMS GetMap مع مرشح CQL المميز

طلب WMS GetMap مع مرشح CQL المميز


لدي خدمات WMS و WFS متاحة لي وأحاول القيام بما يلي:

أحاول تحديد الصور (الميزات) داخل BBOX معين باستخدام WFS ، ثم أريد استرداد الصور الفردية من خلال WMS GetMap استنادًا إلى الميزة من مكالمة WFS.

استعلام WFS الذي أجريته هو (تم تعديل عنوان URL لإخفاء معلومات الخادم الفعلية): http://www.wfsserver.com/catalogservice/wfsaccess/REQUEST=GetFeature&typeName=FinishedFeature&SERVICE=WFS&VERSION=1.1.0&BBOX=-73.8854994266476،40.6341171068158 ، 40.6501752378911، EPSG: 4326 & WIDTH = 512 & HEIGHT = 512

فهمي للاستعلام أعلاه:

  • أحدد WFS كخدمة و GetFeature كنوع REQUEST لسحب البيانات الوصفية للميزات.
  • أحدد FinishedFeature كنوع الميزة للحصول على البيانات منها (هذا هو اسم نوع الميزة الذي أستخدمه).
  • أحدد BBOX لتقييد المنطقة التي أريد سحب الميزات منها وتحديد EPSG: 4326 باعتباره SRS لـ BBOX.
  • تم ضبط العرض والارتفاع على 512 (لا أعرف كيف يؤثر ذلك على أي شيء حيث يمكنني تغيير القيم وما زلت أحصل على نفس النتائج).

ما أحصل عليه هو مجموعة الميزات GML التي تسرد العديد من الميزات لـ BBOX التي حددتها.

   16478949f5fc3c87ba329fcf608085a3      40.81988700000292 -73.95899850000016 40.63913550005475 -73.95894900000025 40.64983200005168 -73.73234250038556 40.83001650000002 -73.7327880003848 40.81988700000292 -73.95899850000016  2015-09-03 17:32:02… وهكذا دواليك

استعلام WMS الذي أقوم به بعد استعلام WFS هو:

https://www.wmsserver.com/mapservice/wmsaccess/SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&LAYERS=Imagery&FORMAT=image٪2Fjpeg&HEIGHT=512&WIDTH=512&SRS=EPSG:4326،40،40.8 =٪ 27464fd8ace00f7e8de1b0976b51a83042٪ 27

فهمي لاستعلام WMS أعلاه:

  • أحدد WMS كخدمة و GetMap كنوع REQUEST لاستعادة الصورة.
  • أحدد الصور كطبقة خاصة بي (ليس ما تم تسميته بالفعل ، ولكن هذا ما أسميه هنا)
  • أحدد JPEG كتنسيق الصور.
  • لقد حددت 512 × 512 للعرض والارتفاع ، وهذا هو الحجم الذي يتم إرجاع الصورة به.
  • أحدد EPSG: 4326 لتحديد SRS لـ BBOX.
  • أحدد CQL_FILTER لمرشح الميزة وأعطي الخاصية التي حصلت عليها من استعلام WFS.

عندما أقوم بتشغيل الاستعلام بدون CQL_FILTER ، أحصل على صورة. ومع ذلك ، يبدو أن الصورة عبارة عن دمج لجميع الصور الخاصة بتلك الموجودة في BBOX. اعتقدت أن تحديد CQL_FILTER في معرّف الميزة سيعطيني صورة واحدة محددة بدلاً من كل الصور. لذلك ، عندما أقوم بتطبيق CQL_FILTER ، فإن ما أحصل عليه هو صورة فارغة بيضاء بالكامل. سيعطيني تشغيل جميع الميزات ومميزاتها من خلال CQL_FILTER صورة بيضاء واحدة لكل واحدة.

في رأسي ، ما أقوم به بسيط للغاية: احصل على جميع الصور (الميزات) داخل BBOX معين باستخدام WFS. قم بتشغيل النتائج من خلال WMS GetMap باستخدام ميزة CQL Filter للحصول على جميع الصور بشكل فردي من داخل BBOX.

هل هناك أي شيء أفعله ومن الواضح أنه خطأ؟ هل يمكن أن تكون هذه مشكلة مع خادمنا؟


في النهاية ، تلقيت ردًا من البائع بعد شهر من توقفنا عن العمل في المشروع. كان رد البائع أنني كنت أستخدم غلاف الحرف الخطأ في معلمات CQL_FILTER. يجب أن يكون للمعامل "featureid" حرف "i" كبير بحيث ينتهي به الأمر كـ "featureId". لقد اختبرت استعلام WMS الأصلي الخاص بي مع تغيير الحرف الفردي ، وبالتأكيد كان استعلام WMS الأصلي الخاص بي رائعًا.


لا أعتقد أن ما تحاول القيام به ممكن في واجهة WMS القياسية. لا يحتوي WMS على أي مفهوم لمعرّف الميزة ، لذلك لا يمكنك تطبيق أي عامل تصفية بناءً على ميزة في طلب GetMap. يحتوي WMS على طلب GetFeatureInfo ولكن هذا الطلب لا يعمل على ميزة ، بل يستخدم إحداثي بكسل على الصورة التي يتم إرجاعها في طلب GetMap.


لا يمكنك تطبيق bbox و cql_filter في نفس الاستعلام ، يجب أن تجرب أداة bbox داخل cql_filter ولكن لا يمكنك تحديد srs للمربع


شاهد الفيديو: Quick route summarization