控件概览
通过 Maps JavaScript API 中的 Photorealistic 3D Maps 显示的地图包含界面元素,可支持用户与地图互动。这些元素称为“控件”,您可以选择在界面中添加这些控件,也可以不添加。如果您禁止显示界面控件,用户仍然可以使用键盘快捷键在地图中导航。
Maps JavaScript API 中的仿真 3D 地图还支持使用预设的摄像机路径引导用户浏览地图。您可以自定义和组合这些路径,以打造丰富的 3D 体验。
探索控件
下图显示了 Maps JavaScript API 中的逼真 3D 地图会默认显示的一组控件:
下面列出了 Maps JavaScript 中的仿真 3D 地图中的一整套控件:
- 缩放控件:可显示“+”和“-”按钮,用于更改地图的缩放级别。
- 借助倾斜度控制,您可以更改摄像头的倾斜度。
- 借助旋转控件,您可以更改相机的方向。
- 移动控件会显示“←”“→”“↑”和“↓”按钮,用于更改地图中心。
以下代码示例演示了如何切换探索控件:
JavaScript
const map = new Map3DElement({
center: { lat: 37.819852, lng: -122.478549, altitude: 2000 },
tilt: 75,
heading: 330,
mode: MapMode.SATELLITE,
defaultUIDisabled: true,
});
HTML
<gmp-map-3d
mode="hybrid"
range="639.274301042242"
tilt="64.92100184857551"
center="34.0768990953219,-118.47450491266041,292.9794737933403"
heading="-61.02026752077781"
default-ui-disabled
></gmp-map-3d>
预设相机路径
Maps JavaScript 中的仿真 3D 地图提供了两个预设的摄像头路径。您可以通过更改动画时长(从而增加或减少速度)或组合使用动画来自定义摄像头路径,以打造更具电影质感的体验。
Maps JavaScript 中的仿真 3D 地图支持以下相机路径:
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 },
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,
rounds: 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-animation-end', () => {
map.flyCameraAround({
camera: flyToCamera,
durationMillis: 60000,
rounds: 1
});
}, {once: true});
}