أكثر

كيف يمكن تحسين طلب WMS عن طريق تحديد عدد المربعات؟

كيف يمكن تحسين طلب WMS عن طريق تحديد عدد المربعات؟


أرغب في عرض الطبقة باستخدام WMS وفي الوقت نفسه أريد الحد من عدد المربعات باستخدام BBox الخاص بها عند تحميل الخريطة. في الخلفية أنا أستخدم geoserver.

يمكنني تحديد عدد الميزات المراد تحميلها لـ WFS باستخدام خيار "الحد الأقصى لعدد الميزات" في إعداد WFS في الخادم الجغرافي. لكنني فقدت بطريقة ما للعثور على طريقة للحد من عدد البلاط في WMS. إذا أحببت:

var Bound = OpenLayers.Bounds الجديد (6.9228 ، 50.9251 ، 6.9911 ، 50.9574) ؛

وإذا ذهبت وألعبت مع Lat-lon bbox مختلفًا ، يمكنني أن أرى في ملف سجل tomcat ذلك ، فإن الحصول على طلب للبلاط مع BBOX المعني يختلف اعتمادًا على مدى العمق الذي أبحث عنه.

هل هناك أي إعداد تكوين في geoserver أو openlayers api للتحكم في المربعات؟ شكرا


أعتقد أنك تفتقد بعض الأشياء هنا :-) ليست هذه هي الطريقة التي تعمل بها خوادم WMS ، فأنت أيضًا تخلط بين المربعات والميزات. مع البلاط. إذا كنت تستخدم المربعات ، فالأمل هو أن يتم رسم البلاط مرة واحدة وتخزينه مؤقتًا لعمليات المشاهدة اللاحقة. يمكن أن تكون ذاكرة التخزين المؤقت على الخادم (حيث يمكن مشاركة تكلفة رسم اللوحة بين جميع المستخدمين) أو في المتصفح (حيث ستفيد مستخدم هذا الجهاز فقط). لذلك لا يهم حقًا عدد الميزات التي يتم رسمها على البلاط حيث لن يكون هناك أي رسم على الإطلاق في المرة التالية التي تشاهدها فيها.

إذا كان WMS (أو رسم التجانب الأولي) بطيئًا جدًا بسبب عدد الميزات التي يتم رسمها ، فإن أفضل خطة هي معرفة سبب ذلك. ستكون إضافة فهرس إلى بياناتك أول شيء يجب تجربته ، ثم انظر إلى نوع مخزن البيانات الذي تستخدمه (جرب PostGIS بدلاً من ملفات الأشكال وما إلى ذلك). أخيرًا ، إذا كانت الأشياء لا تزال بطيئة جدًا ، فراجع العرض المعتمد على المقياس باستخدام SLD (http://geo.ifip.tuwien.ac.at/imak/2009/stack_workshop/doc/sld_basic/scale.html) لتقييد رسم الميزات على أهمها عند تصغير المستخدم.


بقدر ما أعرف ، فإن الطريقة الوحيدة للحد من عدد المربعات المحملة هي عن طريق تعيين الخاصية متعادل التي يمكن العثور عليها في فئة OpenLayers.Layer.Grid (فئة OpenLayers.Layer.WMS ترث من OpenLayers.Layer.Grid).


شاهد الفيديو: هل تستطيع تحديد عدد المربعات في هذا الشكل لا بد أن تنسى أحدها