Mehr

Wie steuere ich den Zoombetrag in Cäsium.Camera.flyTo ?

Wie steuere ich den Zoombetrag in Cäsium.Camera.flyTo ?


Der folgende Code fliegt die Kamera zu einem bestimmten Ziel. Aber wie steuere ich den Zoom auf das jeweilige Ziel?

viewer.camera.flyTo({ destination: Cäsium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0), Dauer: 20.0});

Das Ändern von Cesium.Camera.defaultZoomAmount scheint bei mir nicht zu funktionieren.


Das Ziel darf ein Rechteck anstelle eines kartesischen3 sein. Bei Verwendung eines Rechtecks ​​wird die Höhe der Kamera (Zoomstufe) so eingestellt, dass sie die Ecken des Rechtecks ​​sehen kann. Verwenden Sie ein größeres Rechteck für ein vergrößertes Aussehen.

Um ein funktionierendes Beispiel dafür zu erhalten, laden Sie die Sandcastle Camera Demo und klicken Sie auf das Pulldown-Menü, um "Fly to Rectange" auszuwählen. Die Demo führt diesen Code aus:

var west = -90,0; var Süd = 38,0; var Ost = -87,0; Var Nord = 40,0; var Rechteck = Cäsium.Rectangle.fromDegrees(West, Süd, Ost, Nord); viewer.camera.flyTo({ Ziel: Rechteck}); // Zeige das Rechteck an. Nicht benötigt; nur zum zeigen. viewer.entities.add({ Rechteck: { Koordinaten: Rechteck, Füllung: Falsch, Kontur: Wahr, KonturFarbe: Cäsium.Color.WHITE } });

Cartesian3 benötigt drei Parameter. Der dritte Parameter ist die Z-Komponente, die sich um die Höhe kümmert, in der die Kamera platziert wird. Die unterschiedliche Z-Komponente hilft uns, den Zoom der Kamera auf ein bestimmtes Ziel zu steuern, das durch die ersten beiden Parameter, X-Komponente und Y-Komponente (Breitengrad, Längengrad) identifiziert wird.