Diese Frage zu diesen beiden verwandt ist:Caesium - zeichnen Polygon mit Kamera-Lat-Lon-Alt-Positionen
- Cesium how to scale a polygon to match Lat-Lon positions while zoom-in/zoom-out
- Cesium - using camera to scale a polygon to match Lat-Lon positions while zoom-in/zoom-out
Der Beispielcode verfolge ich LAT- zu erhalten Lon-Alt-Positionen von der Kamera befindet sich in der gold standard that appears to be baked into the existing camera controller. Mit diesem Code kann ich lat-lon-alt-Positionen aus der Entfernung der Kamera abrufen, um Werte zu erhalten, die fast exakt der ursprünglichen lat-lon-Position und einer Höhe über der Erdoberfläche entsprechen. Perfekt!
Alle Beispiele und Dokumentationen zeigen die Polygonerzeugung mit Graden oder Punkten aus Grad.
Was nun? Vielleicht fehlt mir etwas, aber die Absicht, die ich dachte, war, dass ich das Polygon mit bestimmten x-, y- und z-Koordinaten erstellen konnte, damit das Polygon beim Vergrößern, Verkleinern und Vergrößern auf der Oberseite meines Hauses "kleben" würde Kamerabewegung. Nun, da ich diese Werte habe, was ist das Geheimnis, um das Polygon mit diesen Werten zu zeichnen?
FYI, das sind der Wert I haben derzeit:
======================= == NEUE INFORMATIONEN ===========================
der Code für die redPolygon funktioniert:
var redPolygon = viewer.entities.add({
name : 'Red polygon on surface',
polygon : {
hierarchy : Cesium.Cartesian3.fromDegreesArray([-115.0, 37.0,
-115.0, 32.0,
-102.0, 31.0,
-102.0, 35.0,
-102.0, 35.0]),
material : Cesium.Color.RED
}
});
viewer.flyTo(redPolygon);
Der Code für die bluePolygon nicht funktioniert:
var bluePolygon = viewer.entities.add({
name : 'Blue polygon on surface',
polygon : {
//hierarchy: collection.latlonalt,
hierarchy: Cesium.Cartesian3.fromArray(collection.latlonalt),
material : Cesium.Color.BLUE
}
});
viewer.flyTo(bluePolygon);
Wenn ich hierarchy: collection.latlonalt,
verwende ich die folgende Fehlermeldung:
Also änderte ich den Code zu hierarchy: Cesium.Cartesian3.fromArray(collection.latlonalt),
wo collection.latlonalt ist mein Cartesian3 Array:
Aber nichts wird gezeichnet. Keine Fehler. Dies ist, was ich in der Konsole sehen:
Just for Test habe ich versucht, az Position in die redPolygon Hinzufügen und Ändern von .fromDegreesArray wie folgt .fromArray:
var redPolygon = viewer.entities.add({
name : 'Red polygon on surface',
polygon : {
hierarchy : Cesium.Cartesian3.fromArray([-115.0, 37.0, 10.0,
-115.0, 32.0, 10.0,
-102.0, 31.0, 10.0,
-102.0, 35.0, 10.0,
-102.0, 35.0, 10.0]),
material : Cesium.Color.RED
}
});
viewer.flyTo(redPolygon);
Das didn‘ t arbeiten entweder.
Hey, eklig! Vielleicht mache ich immer noch etwas falsch, aber es ist nicht zeichnen. Siehe meine Bearbeitung unter 'NEW INFORMATION' – Patricia
Hallo Fräulein Lucy, ich habe einen neuen Codeblock am Ende meiner Antwort hinzugefügt. – emackey
FANTASTISCH !!!! Ich habe gesehen, wo "Dieser Fehler wird fast immer von einem NaN oder undefined Wert" in mehreren anderen Antworten verursacht. Irgendwann begann ich mich zu fragen, ob ich Punkte hinzufügen musste, aber das hatte ich bei meinen Tests nicht bekommen. Dies ist perfekt. – Patricia