أكثر

كيفية إضافة مربع إحاطة إلى خريطة OpenLayers 3

كيفية إضافة مربع إحاطة إلى خريطة OpenLayers 3


لقد قمت بإنشاء خريطة بسيطة باستخدام OpenLayers 3 ، ألق نظرة على الكود أدناه:

كود JavaScript:

خريطة فار الوظيفة init () {map = new ol.Map ({target: 'map'، العارض: 'canvas'، view: new ol.View ({projection: 'EPSG: 900913'، center: [- 8015003.33712،4160979.44405] ، تكبير / تصغير: 5})}) ؛ var newLayer = new ol.layer.Tile ({source: new ol.source.OSM ()}) ؛ map.addLayer (طبقة جديدة) ؛ / * الحصول على مدى وعرضه http://gis.stackexchange.com/questions/168590/how-to-get-extent-in-openlayers-3 * / var size = map.getView (). calculateExtent (map.getSize ( )) ؛ console.log (الحجم) ؛ console.log (map.getSize ()) ، / * ========================== * /} / * وظيفة لإزالة الطبقة * / وظيفة removeTopLayer () {var layer = map.getLayers () ؛ Layers.pop () ؛ } / * ========================= * / / * وظيفة طبقات التبديل * / وظيفة swapTopLayer () {var layer = map.getLayers () ؛ var topLayer = layer.removeAt (2) ؛ Layers.insertAt (1 ، الطبقة العليا) ؛ } / * =================== * /

كود HTML:

     

يمكن العثور على الارتباط الوظيفي هنا.

أردت الآن إضافة مربع محيط ، بحيث عندما يتم تحميل الخريطة ، يتم تحميلها فقط لمنطقة معينة ، بحثت عن أمثلة عبر الإنترنت ، لكنها إما من OL2 أو تتعلق بمستخدم يحدد مربعًا منضمًا ديناميكيًا ، وهو ليس كذلك متطلباتي. متطلباتي بسيطة جدًا ، كل ما أريده هو البلاط الخاص بصندوق إحاطة معين يتم تحميله بدلاً من الخريطة لتحميل العالم بأسره.

لقد وجدت الطريقة أدناه في OpenLayers 3.0 doc's مدى محدد، لكني لست متأكدًا من كيفية استخدامه. :( لذلك افترض الآن أنني أريد إضافة مربع محيط لهذه المنطقة ، كيف يمكنني القيام بذلك ، باستخدام طريقة النطاق المحيط؟ هل يمكن لأي شخص أن يشرح؟

لقد كنت أخدش رأسي على هذا منذ وقت طويل حتى الآن ، هل يمكن لأي شخص مساعدتي في تحقيق هدفي المتمثل في الحصول على حمل صندوق محيط محدد فقط؟


يمكنني الحصول على وجهة نظرك ولكني لا أستطيع حقًا أن أفهم ما تتوقعه بصريًا للخروج منه.

  1. هل سيكون بعضًا مثل هذا المثال؟ -> لقطة. اعرض الخريطة لكن قم بإخفاء المناطق التي تريد أن تكون غير مرئية.

  2. أو سيكون شيئًا مثل هذا المثال. -> مدى + minZoom + maxZoom يمنع المستخدم من تحريك الخريطة في المناطق التي تريد إخفاءها وبالتالي عدم تحميل هذه المربعات. (مرورمدىأثناء العرضالتكوين يمنع مركز الخريطة من أن يكون خارج النطاق الذي تم تمريره.)

  3. أم أنه شيء آخر ؟؟؟؟؟؟

أخيرًا ، للسؤال المتعلق بمدى الالتزام. إنه مجرد إنشاء bbox من النقاط المتوفرة. هذا يعني الحصول على min_x، min_y، max_x، max_y من النقاط المتوفرة (x، y's). لا أستطيع أن أرى كيف سيساعدك هذا في هذه الحالة.


شاهد الفيديو: OpenLayers Add Vector Layer to Web Map