ใน OpenLayers ให้ขยายขอบเขตของการวางซ้อนทั้งหมด


10

ใน Openlayers ฉันสามารถซูมไปที่กล่อง bounding ของเลเยอร์ทั้งหมดเช่นนี้

map.zoomToExtent();

ฉันยังสามารถซูมไปที่กล่อง bounding ของชั้นเดียว:

map.zoomToExtent(layer_name.getDataExtent());

มีวิธีที่ง่ายในการซูมถึงทุกชั้นยกเว้นชั้นฐานหรือไม่? กล่าวอีกนัยหนึ่งคือแสดงขอบเขตของการซ้อนทับทั้งหมด

คำตอบ:


6
  1. สำหรับวนรอบเลเยอร์ทั้งหมดของคุณ
    1. ข้ามชั้นฐาน [ต่อความต้องการของคุณ]
    2. ใช้ bounds.extend (... ) เพื่อสร้างขอบเขตAPIวัตถุทั้งหมดที่ครอบคลุม
  2. ซูมไปที่ขอบเขตAPI ที่ได้

ฉันคิดว่าสิ่งนี้จะใช้งานไม่ได้เพราะ extends () ใช้งานได้ก็ต่อเมื่อมันถูกเรียกใช้บนขอบเขตที่เล็กกว่าที่มันถูกส่งเป็นอาร์กิวเมนต์
pakman

ฉันจะประสบความสำเร็จเช่นเดียวกันได้อย่างไรโดยใช้ OpenLayer API 3.x
imdadhusen

@imdadhusen ทำไมคุณไม่ลองดูเอกสารล่ะ? วิธีการเดียวกัน วัตถุเดียวกัน เนมสเปซที่แตกต่างกัน openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim

1

สิ่งที่เกี่ยวกับการแก้ไขmap.restrictedExtentและโทรmap.zoomToExtent (map.restrictedExtent) ?


นั่นจะทำให้เกิดปัญหาขึ้น ... ฉันจะค้นหากล่องขอบของการวางซ้อนเพื่อสร้างการ จำกัด ขอบเขตได้อย่างไร
Mr_Chimp

คุณเคยลองกับ ZoomToMaxExtent () - แต่มันอาจจะซูมไปที่เลเยอร์ฐานถ้ามีขนาดใหญ่ขึ้น? หากไม่ได้ผลคุณจะต้องดึงข้อมูลขอบเขตของเลเยอร์ ovelays แต่ละอันและรักษาระดับที่ใหญ่ที่สุดเพื่อแก้ไข จำกัด ขอบเขต
simo

ฉันลอง ZoomToMaxExtend () และมันซูมไปที่เลเยอร์ฐาน ฉันพูดถึงสิ่งนี้ในคำถามของฉัน แต่เมื่ออ่านใหม่มันไม่ชัดเจน การรักษากล่องขอบที่ใหญ่ที่สุดนั้นไม่จำเป็นว่าจะต้องทำงานเช่นถ้าสองชั้นไม่ทับซ้อนกัน ฉันเดาว่าฉันจะต้องรวมกล่อง bounding ของแต่ละชั้นอย่างใดแล้วรับกล่อง bounded ของวัตถุที่เกิด ...
Mr_Chimp

แค่นั้นแหละ! ซึ่งไม่ยาก ... แต่ฉันเห็นด้วยกับคุณมันน่าแปลกใจที่วิธีการดังกล่าวยังไม่มีอยู่ (หรือเราพลาดบางสิ่งบางอย่าง ;-) .. )
simo

หวังว่าเราจะพลาดบางสิ่ง! ฉันจะปล่อยให้คำถามเปิดตอนนี้ ... ในกรณี!
Mr_Chimp
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.