Wie stelle ich die Koordinaten ein, an denen Cäsium.Viewer zentriert ist?

10

Im offiziellen CäsiumJS-Tutorial gibt es eine Beispielanwendung HelloWorld, die einen Kartenbetrachter zeigt.

Wenn der Benutzer die Seite öffnet, möchte ich, dass der Globus über einem bestimmten Punkt und mit einem bestimmten Zoom zentriert wird:

Bildschirmfoto

Wie kann ich das erreichen?

Ich nahm an, dass es über Cesium.ViewerKonstruktorparameter (wie timelineunten) konfiguriert werden kann, fand sie aber nicht in der Referenz .

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

Antworten:

5

Sie können die "Standard" -Kameraansicht festlegen, bevor Sie das Viewer-Widget erstellen. Diese wird sowohl für die Anfangsansicht als auch für die Ansicht der Schaltfläche "Home" verwendet. Legen Sie dies mit den statischen Eigenschaften DEFAULT_VIEW_FACTOR und DEFAULT_VIEW_RECTANGLE für die Camera-Klasse ( Referenzdokument ) wie folgt fest :

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');

Beachten Sie auch, dass die Sandcastle Camera Demo eine Reihe von Möglichkeiten zum Fliegen oder Einrasten der Kamera zur Laufzeit nach dem Bau zeigt. Verwenden Sie die Dropdown-Box-Auswahl (oben links auf dem Globus), um die verschiedenen Optionen dort anzuzeigen.

Emackey
quelle
7

Wenn Sie bereits einen Viewer erstellt haben, können Sie diesen Code nach der Viewer-Erstellung einfügen, um einen Zoom auf einen bestimmten Längen- und Breitengrad zu erstellen.

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

Und wenn Sie den 3. Term in der 2. Zeile auf setzen, sind 32500000.0Sie weiter entfernt, ähnlich wie bei der Home-Taste. Versuchen Sie also, diesen dritten Term zu variieren, um den gewünschten Zoom zu erhalten.

Cutlasj
quelle
Das scheint die Maus für mich durcheinander zu bringen, so dass das Schwenken den Globus um den neuen Mittelpunkt bewegt.
Richard