มากกว่า

ป้องกันไม่ให้แผนที่ OpenLayers 3 เลยเส้นวันที่

ป้องกันไม่ให้แผนที่ OpenLayers 3 เลยเส้นวันที่


ฉันมีแผนที่ OL3 ที่ทำซ้ำตัวเองอย่างต่อเนื่อง ฉันมีเลเยอร์ WMS แม้ว่าเลเยอร์เวกเตอร์ต้องการทำซ้ำ สิ่งที่สำคัญจริงๆ คือการป้องกันไม่ให้ผู้ใช้แพนไปที่ใดเลย เช่น ป้องกันไม่ให้ผู้ใช้เลื่อนผ่านเสาและวันที่ ฉันเพิ่มขอบเขตการดู แต่ก็ยังเพิ่มแผนที่บางส่วนผ่านเส้นวันที่และเสา มีความคิดใดที่จะป้องกันสิ่งนี้?

มุมมอง: ใหม่ ol.View ({ ศูนย์: [0, 0], ซูม: 8, minZoom:2, maxZoom: 13, ขอบเขต: [-20037508.34, -20037508.34, 20037508.34, 20037508.34] })

คือรหัสปัจจุบันของฉัน

แก้ไข: คำตอบจากคำถามก่อนหน้านี้คือ OpenLayers 2 ทั้งหมด OpenLayers 3 เป็นเฟรมเวิร์กที่แตกต่างไปจากเดิมอย่างสิ้นเชิงซึ่งแทบไม่แชร์อะไรนอกชื่อเลย


หากต้องการปิดการห่อ ให้ตั้งค่าห่อXเป็นเท็จสำหรับแหล่งที่มาแต่ละชั้น

ขอบเขตที่กำหนดในมุมมองจำกัดศูนย์กลางของแผนที่ เพื่อจำกัดขอบเขต คุณสามารถทำบางอย่างเช่น

map.on('postrender', function() { var view = map.getView(); var zoom = view.getZoom(); var worldExtent = view.getProjection().getExtent(); varขอบเขต = view.calculateExtent( map.getSize()); if (!ol.extent.containsExtent(worldExtent, extent)) { var newExtent = ol.extent.getIntersection(extent, restrictedExtent); view.fit(newExtent, map.getSize()); } });

ดู https://github.com/openlayers/ol3/pull/2777 สำหรับคำขอดึงที่จะอนุญาตให้ทำสิ่งนี้ได้ดีขึ้น


ฉันลงเอยด้วยการใช้ขอบเขต -180,75,180,-75 และยอมรับการห่อวันที่และไม่สามารถใช้ส่วนหนึ่งของทิศเหนือและทิศใต้ได้ น่าผิดหวังอย่างยิ่งที่ไม่มี maxExtent ใน 3.10.1 ดูเหมือนเป็นข้อบกพร่องอย่างใหญ่หลวง การห่อแผนที่นั้นน่าเกลียดและมีพื้นที่สีขาว


ดูวิดีโอ: Openlayers 6 Tutorial #6 - Layer Switcher