Modelle sind 3D-Assets, die einer Szene hinzugefügt werden können, um Objekte darzustellen. Die 3D-Karten in der Maps JavaScript API unterstützen die Einbindung von gLTF-Modellen. Diese Modelle können skaliert und gedreht werden, um weitere Anpassungen zu ermöglichen.
Die Modelle müssen die Kernattribute des glTF-PBR unterstützen. Erweiterungen oder Erweiterungseigenschaften werden nicht unterstützt.
Modell hinzufügen
Für den Konstruktor Model3DElement wird eine Reihe von Model3DElementOptions angegeben, mit denen die LatLng-Koordinaten des Modells sowie eine Reihe von Parametern für die Positionierung des Modells festgelegt werden.
Modelle unterstützen die folgenden Optionen:
position: Der Standort des Modells inLatLng-Koordinaten.orientation: Die Drehung des Koordinatensystems des Modells. Die Rotationen werden in der folgenden Reihenfolge angewendet: Rollen, Neigen und dann Kurs.scale: Skaliert das Modell in seinem Koordinatenraum. Der Standardwert ist1.altitudeMode: Wie die inpositionangegebene Höhe interpretiert wird.src: Die URL des Modells.
Im folgenden Beispiel wird gezeigt, wie Sie ein Modell in die Karte einfügen und es mit einigen der verfügbaren Anpassungsoptionen ändern:
async function init() { // Import the needed libraries. const { Map3DElement, Model3DElement } = await google.maps.importLibrary('maps3d'); const map = new Map3DElement({ center: { lat: 39.1178, lng: -106.4452, altitude: 4395.4952 }, range: 1500, tilt: 74, heading: 0, mode: 'HYBRID', gestureHandling: 'COOPERATIVE', }); const model = new Model3DElement({ src: 'https://maps-docs-team.web.app/assets/windmill.glb', position: { lat: 39.1178, lng: -106.4452, altitude: 4495.4952 }, orientation: { heading: 0, tilt: 270, roll: 90 }, scale: 0.15, altitudeMode: 'CLAMP_TO_GROUND', }); document.body.append(map); map.append(model); } void init();
Interaktives Modell hinzufügen
Modelle unterstützen auch Interaktionen. Im folgenden Beispiel wird die Skalierung des Modells geändert, wenn darauf geklickt wird.
async function init() { // Import the needed libraries. const { Map3DElement, Model3DInteractiveElement } = await google.maps.importLibrary('maps3d'); const map = new Map3DElement({ center: { lat: 39.1178, lng: -106.4452, altitude: 4395.4952 }, range: 1500, tilt: 74, heading: 0, mode: 'HYBRID', gestureHandling: 'COOPERATIVE', }); const model = new Model3DInteractiveElement({ src: 'https://maps-docs-team.web.app/assets/windmill.glb', position: { lat: 39.1178, lng: -106.4452, altitude: 4495.4952 }, orientation: { heading: 0, tilt: 270, roll: 90 }, scale: 0.15, altitudeMode: 'CLAMP_TO_GROUND', }); model.addEventListener('gmp-click', function () { this.scale = Math.random() * (0.5 - 0.1) + 0.1; }); document.body.append(map); map.append(model); } void init();