יצירת אנימציה של נתיבי מצלמה

בחירת פלטפורמה: Android iOS JavaScript

אתם יכולים להוסיף אנימציות של נתיבי מצלמה למפה התלת-ממדית כדי לספק למשתמשים חוויה עשירה יותר. אנימציות של נתיב המצלמה יכולות להגיע לנקודה במפה או להקיף אותה.

בדוגמה הבאה משולבות האנימציות flyCameraTo ו-flyCameraAround:

מסלולי מצלמה מוגדרים מראש

‫3D Maps in Maps JavaScript מספקת שני נתיבי מצלמה מוגדרים מראש. אפשר להתאים אישית את נתיבי המצלמה על ידי שינוי משך ההנפשה (וכך להגדיל או להקטין את המהירות), או על ידי שילוב שלהם כדי ליצור חוויות קולנועיות יותר. בנוסף, אפשר לשלוט בגובה המצלמה על ידי ציון הערך של altitudeMode.

התכונה 'מפות תלת-ממד' ב-Maps JavaScript תומכת בנתיבי המצלמה הבאים:

  • אנימציה של flyCameraTo טסה ממרכז המפה ליעד שצוין.
  • אנימציה של flyCameraAround מסתובבת סביב נקודה במפה מספר הפעמים שצוין.

אפשר לשלב בין שני המסלולים הזמינים כדי לטוס לנקודת עניין, להסתובב סביבה ואז לעצור כשמציינים.

מעבר בטיסה אל

בדוגמת הקוד הבאה אפשר לראות איך מפעילים אנימציה של המצלמה כדי להעביר אותה למיקום מסוים:

const map = document.querySelector('gmp-map-3d');

async function init() {
  await google.maps.importLibrary('maps3d');

  map.flyCameraTo({
    endCamera: {
      center: { lat: 37.6191, lng: -122.3816, altitude: 500 },
      altitudeMode: 'RELATIVE_TO_GROUND',
      tilt: 67.5,
      range: 1000
    },
    durationMillis: 5000
  });
}

טיסה מסביב

בדוגמת הקוד הבאה אפשר לראות איך מפעילים אנימציה של המצלמה כדי שתעוף מסביב למיקום מסוים:

const map = document.querySelector('gmp-map-3d');

async function init() {
  await google.maps.importLibrary('maps3d');

  map.flyCameraAround({
    camera,
    durationMillis: 60000,
    repeatCount: 1
  });
}

שילוב אנימציות

בדוגמת הקוד הבאה אפשר לראות איך משלבים אנימציות כדי להטיס את המצלמה למיקום מסוים, ואז לסובב אותה סביב המיקום הזה כשהאנימציה הראשונה מסתיימת:

const map = document.querySelector('gmp-map-3d');

async function init() {
  await google.maps.importLibrary('maps3d');

  map.flyCameraTo({
    endCamera: flyToCamera,
    durationMillis: 5000,
  });

  map.addEventListener('gmp-animationend', () => {
    map.flyCameraAround({
      camera: flyToCamera,
      durationMillis: 60000,
      repeatCount: 1
    });
  }, {once: true});
}