วิธีการตั้งค่าพิกัดที่ Cesium.Viewer เป็นศูนย์กลาง?


10

ในบทช่วยสอน CesiumJSอย่างเป็นทางการมีHelloWorldแอปพลิเคชันตัวอย่างซึ่งแสดงตัวดูแผนที่

เมื่อผู้ใช้เปิดหน้าเว็บฉันต้องการให้ลูกโลกอยู่กึ่งกลางเหนือจุดหนึ่งและด้วยการซูม:

ภาพหน้าจอ

ฉันจะบรรลุสิ่งนี้ได้อย่างไร

ฉันคิดว่ามันสามารถกำหนดค่าผ่านทางCesium.Viewerพารามิเตอร์คอนสตรัค (เช่นtimelineด้านล่าง) แต่ไม่พบพวกเขาในการอ้างอิง

<body>
  <div id="cesiumContainer"></div>
  <script>
    var viewer = new Cesium.Viewer('cesiumContainer', 
      {
        timeline: false,
        animation: false
      });
  </script>
</body>
</html>

คำตอบ:


5

คุณสามารถตั้งค่ามุมมองกล้อง "เริ่มต้น" ก่อนสร้างวิดเจ็ตวิวเวอร์และนี่จะใช้สำหรับทั้งมุมมองเริ่มต้นและสำหรับมุมมองปุ่ม "บ้าน" ตั้งค่านี้โดยใช้คุณสมบัติแบบคงที่ DEFAULT_VIEW_FACTOR และ DEFAULT_VIEW_RECTANGLE ในคลาสกล้อง ( เอกสารอ้างอิง ) เช่นนี้:

var west = 122.0;
var south = 33.0;
var east = 130.0;
var north = 47.0;

var rectangle = Cesium.Rectangle.fromDegrees(west, south, east, north);

Cesium.Camera.DEFAULT_VIEW_FACTOR = 0;
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = rectangle;

// NOTE: Viewer constructed after default view is set.
var viewer = new Cesium.Viewer('cesiumContainer');

นอกจากนี้โปรดทราบว่าการสาธิตกล้อง Sandcastleแสดงหลายวิธีในการบินหรือถ่ายกล้องไปยังตำแหน่งที่รันไทม์หลังการก่อสร้าง ใช้ตัวเลือกกล่องแบบเลื่อนลง (ซ้ายบนของโลก) เพื่อดูตัวเลือกต่างๆ


7

หากคุณได้สร้างผู้ชมแล้วคุณสามารถวางรหัสนี้หลังจากการสร้างผู้ชมนั้นเพื่อสร้างการซูมไปยังลองจิจูดที่เฉพาะเจาะจง, ละติจูด

var center = Cesium.Cartesian3.fromDegrees(-82.5, 35.3);
viewer.camera.lookAt(center, new Cesium.Cartesian3(0.0, 0.0, 4200000.0));

และถ้าคุณตั้งค่าเทอมที่ 3 ในบรรทัดที่ 2 32500000.0คุณจะอยู่ไกลออกไปคล้ายกับเอฟเฟกต์ของปุ่มโฮม ดังนั้นลองเปลี่ยนคำที่ 3 เพื่อให้ได้ซูมที่คุณต้องการ


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