Trình khám phá khu vực 3D là một giải pháp giúp bạn khám phá các cộng đồng ở chế độ 3D sống động. Giải pháp này tận dụng: Thẻ thông tin 3D chân thực của Google, Tìm kiếm địa điểm, Thông tin chi tiết về địa điểm và Autocomplete API.
Bắt đầu:
Bật
Tuỳ chỉnh trải nghiệm
Giải pháp Trình khám phá khu vực 3D có khả năng tuỳ chỉnh cao, cho phép bạn điều chỉnh
trải nghiệm cho phù hợp với hành trình của khách hàng. Bạn có thể tuỳ chỉnh bằng cách sử dụng bảng điều khiển trên giao diện người dùng hoặc sử dụng tệp config.json
.
Bạn đã sẵn sàng tuỳ chỉnh chưa? Cách làm như sau:
Vị trí
Xác định điểm bắt đầu của trải nghiệm bằng cách điều chỉnh vĩ độ và kinh độ trong tệp config.json
.
Điều khiển máy ảnh
Kiểm soát hành trình của bạn bằng cách chọn loại quỹ đạo của máy ảnh: một đường tròn cổ điển hoặc một sóng sin hấp dẫn.
Vòng quay cố định:
Đây là quỹ đạo tròn ở một độ cao cố định và xung quanh một điểm yêu thích cụ thể.
Hãy xem cách hoạt động của một quỹ đạo cố định bằng cách khám phá văn phòng của Google tại Sydney.
Quỹ động động:
Máy ảnh di chuyển trơn tru theo quỹ đạo sóng hình sin xung quanh một điểm yêu thích được chỉ định. Chuyển động độc đáo này cho phép người xem quan sát điểm quan tâm từ nhiều độ cao và góc độ, mang đến trải nghiệm hình ảnh sống động và chân thực.
Xem một quỹ đạo động hoạt động bằng cách khám phá tháp Eiffel.
Địa điểm yêu thích (POI):
- Tuỳ chỉnh dữ liệu khám phá bằng cách xác định loại địa điểm bạn muốn khám phá. Chọn trong số các bảo tàng, công viên, trường học và nhiều địa điểm khác bằng cách sử dụng mảng
types
trongconfig.json
. - Đặt số lượng tối đa Điểm yêu thích hiển thị bằng cách điều chỉnh tham số
density
. - Sửa đổi
searchRadius (in meters)
để bao gồm các địa điểm ẩn gần đó hoặc tập trung vào các khu vực cụ thể. - Đặt tốc độ đã chọn cho chuyển động của máy ảnh bằng tham số
speed (in revolutions per minute)
.
Tải trước dữ liệu khám phá: Tìm hiểu sâu hơn bằng tính năng Tuỳ chỉnh URL
Trình khám phá khu vực 3D cho phép bạn xác định trước hoạt động khám phá bằng tính năng tuỳ chỉnh URL. Điều này giúp người dùng không cần phải định cấu hình theo cách thủ công, nhờ đó đơn giản hoá trải nghiệm người dùng.
Tạo URL hoàn hảo:
Bạn chỉ cần thêm các tham số cụ thể vào URL của Trình khám phá khu vực để đặt trước vị trí và các chế độ cài đặt khác. Ví dụ:
https://{base-url}/#location.coordinates.lat=40.7424396&location.coordinates.lng=-74.0061439
URL này đặt điểm bắt đầu theo vĩ độ và kinh độ được chỉ định, sẽ đưa bạn đến vị trí đã chọn ngay lập tức. Các thông số có sẵn:
location.coordinates.lat
: Vĩ độ của vị trí bạn chọn.location.coordinates.lng
: Kinh độ của vị trí bạn đã chọn.poi.types
: Danh sách các loại điểm yêu thích được phân tách bằng dấu phẩy để hiển thị.poi.density
: Số lượng tối đa điểm yêu thích đã chọn.poi.searchRadius
: Bán kính tìm kiếm POI lân cận.camera.speed
: Tốc độ quỹ đạo của máy ảnh.camera.orbitType
: Loại quỹ đạo máy ảnh ("quỹ đạo cố định" hoặc "quỹ đạo động").
Lợi ích của tính năng Tuỳ chỉnh URL:
- Đơn giản hoá trải nghiệm người dùng bằng cách xác định trước các chế độ cài đặt mà bạn đã chọn.
- Chia sẻ hành trình được nhắm mục tiêu với các vị trí được tải sẵn và POI cụ thể.
- Nhúng liền mạch trải nghiệm của Trình khám phá khu vực được định cấu hình trước vào trang web.
Bằng cách tận dụng tính năng tuỳ chỉnh URL, bạn có thể tạo trải nghiệm phù hợp với từng người và mời họ cùng tham gia những cuộc phiêu lưu được tuyển chọn.
Tuỳ chỉnh thêm
Phần trước đã khám phá các chế độ điều chỉnh có thể truy cập thông qua giao diện người dùng hoặc tệp cấu hình. Tuy nhiên, bạn cũng có thể sửa đổi một số tham số tích hợp khác để tuỳ chỉnh thêm ứng dụng.
Để thực hiện các tuỳ chỉnh nâng cao này, bạn cần xem mã trong tệp src/utils/cesium.js
nằm trong thư mục src. Bạn có thể thay đổi các biến sau đây để thay đổi giao diện của ứng dụng
Chiều cao của camera
Kiểm soát độ cao của máy ảnh khi di chuyển đến một điểm bằng cách điều chỉnh giá trị CAMERA_HEIGHT
. Giá trị cao hơn sẽ cung cấp chế độ xem toàn cảnh, thu nhỏ hơn, trong khi giá trị thấp hơn sẽ giúp bạn xem chi tiết hơn về khu vực
// Camera height (in meters) above the target when flying to a point.
const CAMERA_HEIGHT = 100;
- Chế độ cài đặt:
CAMERA_HEIGHT
- Giá trị mặc định: 100
- Mô tả: Xác định độ cao của máy ảnh so với vị trí mục tiêu khi bay đến một điểm.
- Giá trị mẫu:
- 50: Cận cảnh, làm nổi bật các chi tiết.
- 200: Góc nhìn toàn cảnh hơn.
Độ nghiêng của máy ảnh
Độ nghiêng ban đầu của máy ảnh được xác định bằng BASE_PITCH. Sử dụng giá trị âm cho chế độ nghiêng xuống và giá trị dương cho chế độ xem lên. Để thêm một chuyển động động tinh tế vào dữ liệu khám phá, hãy thay đổi AUTO_ORBIT_PITCH_AMPLITUDE.
// Pitch 30 degrees downwards
const BASE_PITCH = -30;
// change the pitch by 10 degrees over time
const AUTO_ORBIT_PITCH_AMPLITUDE = 10;
- Chế độ cài đặt:
BASE_PITCH
vàAUTO_ORBIT_PITCH_AMPLITUDE
- Giá trị mặc định:
BASE_PITCH
: -30 (giảm 30 độ xuống dưới)AUTO_ORBIT_PITCH_AMPLITUDE
: 10 (thay đổi độ cao 10 độ theo thời gian)
Mô tả: Độ cao của máy ảnh là độ nghiêng trực quan của bản đồ, được đo theo độ. Còn được gọi là độ nghiêng. Các chế độ cài đặt này xác định độ cao ban đầu và mức điều chỉnh cao độ linh động của máy ảnh trong quá trình xoay tự động.
Giá trị mẫu:
BASE_PITCH
: 0 (máy ảnh cân bằng)AUTO_ORBIT_PITCH_AMPLITUDE
: 0 (không có độ biến thiên cao độ)
Phạm vi và thu phóng của máy ảnh
Các tham số này đặt mức thu phóng được áp dụng khi lấy nét vào các điểm cụ thể. Giá trị nhỏ hơn đồng nghĩa với việc thu phóng gần hơn.
// Distance variation relative to initial range.
const RANGE_AMPLITUDE_RELATIVE = 0.55;
// Determines how much the camera should zoom in or out
const ZOOM_FACTOR = 20;
Chế độ cài đặt: RANGE_AMPLITUDE_RELATIVE
và ZOOM_FACTOR
Giá trị mặc định:
RANGE_AMPLITUDE_RELATIVE
: 0,55 (chênh lệch khoảng cách tương đối)ZOOM_FACTOR
: 20 (hệ số thu phóng của máy ảnh)
Description: Các chế độ cài đặt này xác định biến thiên phạm vi khi máy ảnh di chuyển và mức thu phóng để bạn nhìn gần hơn.
Giá trị mẫu:
RANGE_AMPLITUDE_RELATIVE
: 1 (biến thể toàn dải)ZOOM_FACTOR
: 10 (ít thu phóng hơn)
// Camera heading (rotation), pitch (tilt), and range (distance) for resetting view.
const CAMERA_OFFSET = {
heading: 0, // No rotation offset.
pitch: Cesium.Math.toRadians(BASE_PITCH),
range: 800, // 800 meters from the center.
};
Đặt lại camera
Khi người dùng muốn đặt lại máy ảnh về vị trí ban đầu, các giá trị CAMERA_OFFSET sẽ được sử dụng. Chế độ cài đặt này bao gồm hướng (xoay), độ dốc (nghiêng) và phạm vi (khoảng cách từ máy ảnh đến tâm).
- Chế độ cài đặt:
CAMERA_OFFSET
- Giá trị mặc định:
heading
: 0 (không có chênh lệch xoay)pitch
: Cesium.Math.toRadians(-30) (nhảy xuống dưới 30 độ)range
: 800 (cách tâm 800 mét)
- Mô tả: Xác định tiêu đề, cao độ và phạm vi của máy ảnh để đặt lại khung hiển thị.
- Giá trị mẫu:
heading
: 45 (độ, nhìn hướng Tây Bắc)range
: 1.500 mét (xa trung tâm hơn)
Toạ độ bắt đầu:
START_COORDINATES xác định kinh độ, vĩ độ và chiều cao ban đầu cho máy ảnh. Đây là nơi dữ liệu khám phá bắt đầu, vì vậy, hãy đặt thành khu vực mà bạn muốn người dùng thấy trước tiên.
// Default camera start position in longitude, latitude, and altitude.
const START_COORDINATES = {
longitude: 0,
latitude: 60,
height: 15000000, // 15,000 km above the surface
};
- Chế độ cài đặt:
START_COORDINATES
Giá trị mặc định:
longitude
: 0latitude
: 60height
: 15000000 (15.000 km trên bề mặt)
Giá trị mẫu:
longitude
: -122.4934,latitude
: 37.7951 (Cầu Cổng Vàng)height
: 2000 (vị trí bắt đầu gần hơn)
Tải một vị trí được xác định trước
Đối tượng location
trong config.json
đặt tâm của vùng. Đây là góc nhìn ban đầu của máy ảnh trong trình xem Cesium.coordinates
: Xác định vĩ độ (lat
) và kinh độ (lng
) cho vị trí mà bạn muốn máy ảnh di chuyển đến trước tiên. Điều chỉnh các giá trị này để đặt máy ảnh thành bất kỳ vị trí cụ thể nào trên trái đất.
{
"location": {
"coordinates": { "lat": null, "lng": null }
},
Cấu hình này cho phép bạn bắt đầu ứng dụng Trình chỉ đường địa điểm 3D bằng cách phóng to một vị trí cụ thể mà bạn chọn. Bạn có thể sử dụng công cụ Ánh xạ địa lý của Google để lấy toạ độ vĩ độ và kinh độ của một địa chỉ hoặc tên địa điểm bằng cách chỉ định toạ độ đó trong đối tượng vị trí:
- Truy cập vào Công cụ mã hoá địa lý.
- Tạo yêu cầu mã hoá địa lý Nhấp vào phần "Tự thử" rồi nhập vị trí bạn đã chọn vào trường "Địa chỉ". Bạn có thể chỉ định địa chỉ, tên địa điểm hoặc thậm chí là địa danh.
- Tạo toạ độ Nhấp vào nút "Chạy" để gửi yêu cầu của bạn. Công cụ này sẽ trả về một phản hồi chứa nhiều thông tin về vị trí, bao gồm cả toạ độ vĩ độ và kinh độ hiển thị trong phần
geometry.location
. - Sử dụng mã địa lý Sao chép các giá trị vĩ độ và kinh độ được truy xuất từ phản hồi rồi dán các giá trị đó vào đối tượng
coordinates
trong cấu hình của bạn.
Lưu ý: Mã địa lý được dùng theo cách này phải tuân thủ những điều khoản nêu trong mục 3.4 của Điều khoản dịch vụ của Nền tảng Google Maps, tức là các mã này không được lưu vào bộ nhớ đệm quá 30 ngày và phải được làm mới sau đó.
Cấu hình này sẽ sử dụng công cụ Mã hoá địa lý để tự động xác định toạ độ của trụ sở chính của Google ở Mountain View, California và khởi chạy ứng dụng Trình chỉ đường địa điểm 3D với máy ảnh được đặt ở giữa vị trí đó.
Tuỳ chỉnh nâng cao
Bạn có thể tuỳ chỉnh thêm bằng cách tìm hiểu sâu hơn về mã. Phần sau đây hướng dẫn bạn về một số tuỳ chọn
Thêm đường dẫn máy ảnh mới
Ngay từ đầu, giải pháp này triển khai hai đường dẫn máy ảnh khác nhau:
fixed-orbit" | "dynamic-orbit"
Nhưng nếu muốn, bạn có thể tạo một đường dẫn máy ảnh mới, bạn có thể triển khai đường dẫn này bằng cách sử dụng
/src/utils/cesium.js trong hàm calculateAutoOrbitFrame
.
Để sử dụng cách tính đường dẫn mới này trong bảng điều khiển cấu hình,hãy tham khảo cách triển khai trong demo/src/camera-settings.js.
Thêm các loại địa điểm khác
Bạn có thể điều chỉnh danh sách loại địa điểm cho cấu hình trong tệp demo/src/place-settings.js
. Bắt đầu từ dòng 4 là các loại địa điểm có trong bản minh hoạ.
Nếu muốn sử dụng các loại địa điểm cụ thể mà không thay đổi nguồn minh hoạ, bạn chỉ cần thêm các loại địa điểm đó vào tệp config.json
trong poi.types
Tuỳ chỉnh kiểu (css)
Đối với các kiểu, chúng tôi đã làm việc với các biến CSS. Các thuộc tính này được hỗ trợ trong mọi trình duyệt lớn và cho phép thay đổi một dòng ở một vị trí trung tâm và cập nhật các thuộc tính CSS cụ thể. Các biến CSS của chúng tôi được xác định trong src/main.css.
. Bạn có thể điều chỉnh màu sắc, chế độ cài đặt phông chữ và khoảng đệm hoặc lề cho toàn bộ ứng dụng.
Lớp phủ dữ liệu bổ sung
Để phủ dữ liệu bổ sung, bạn cần cập nhật tệp src/utils/cesium.js và tham khảo tài liệu về cesium về cách thêm GeoJSON hoặc dữ liệu được tham chiếu địa lý khác vào hình ảnh địa cầu.
Xoá các phần cấu hình
Ứng dụng JavaScript của chúng ta có ba phần chính trong tệp cấu hình: demo/src/[config-panel.js](config-panel.js): location
, poi
và camera
. Mỗi phần trong số này cung cấp các tuỳ chọn cấu hình cho nhiều khía cạnh của ứng dụng. Nhà phát triển có thể tuỳ chỉnh các phần này dựa trên nhu cầu cụ thể của mình.
1.Xoá một phần cụ thể khỏi cấu hình
- Mục Vị trí
Để xoá phần location
, hãy tìm dòng sau trong mã và chú thích hoặc xoá dòng đó:
const locationConfig = { ...config.location, ...customConfig.location };
- Mục POI
Để xoá phần poi
, hãy tìm dòng sau trong mã và nhận xét hoặc xoá dòng đó:
const poiConfig = { ...config.poi, ...customConfig.poi };
- Phần Camera
Để xoá phần camera
, hãy tìm dòng sau trong mã và nhận xét hoặc xoá dòng đó:
const cameraConfig = { ...config.camera, ...customConfig.camera };
2. Cập nhật cấu hình kết hợp
Sau khi xoá một mục, bạn cần phải cập nhật đối tượng cấu hình kết hợp. Đối tượng này hợp nhất cấu hình mặc định với mọi tuỳ chỉnh.
Xoá thuộc tính tương ứng khỏi đối tượng combinedConfig
:
const combinedConfig = {
location: { ...config.location, ...customConfig.location }, // Remove if location section is removed
poi: { ...config.poi, ...customConfig.poi }, // Remove if poi section is removed
camera: { ...config.camera, ...customConfig.camera }, // Remove if camera section is removed
};
3. Điều chỉnh các thành phần trên giao diện người dùng
Nếu việc xoá một phần cũng đồng nghĩa với việc xoá các thành phần giao diện người dùng có liên quan, hãy cập nhật mã tương ứng trong mã html. Ví dụ: nếu muốn xoá một phần cụ thể khỏi Bảng điều khiển quản trị như tốc độ máy ảnh, bạn phải cập nhật cả mã js và html cho phần đó.
4. Xoá mục Cài đặt máy ảnh
Để xoá phần cài đặt máy ảnh khỏi giao diện người dùng, hãy tìm dòng sau và chú thích hoặc xoá dòng đó:
const cameraSettingsSecgetCameraSettingsSection(cameraConfig);
Xoá phần Tóm tắt mục Vị trí
const locationSection = await getLocationSettingsSection(locationConfig);
Kết luận
Trong tài liệu này, chúng tôi đã khám phá nhiều tuỳ chọn tuỳ chỉnh có sẵn trong Trình khám phá khu vực để điều chỉnh trải nghiệm khám phá 3D của bạn. Bằng cách sửa đổi hành vi của máy ảnh, điều chỉnh độ nghiêng hình ảnh và thay đổi mức thu phóng, bạn có thể tạo ra trải nghiệm độc đáo và hấp dẫn, giới thiệu các chế độ cài đặt và điểm yêu thích mà bạn đã chọn.
Hãy nhớ thử nghiệm với nhiều cấu hình và tinh chỉnh các tham số cho phù hợp với nhu cầu cụ thể của bạn. Bằng cách tận dụng sức mạnh của tính năng tuỳ chỉnh, bạn có thể tạo ra những hành trình sống động và được cá nhân hoá để thu hút khán giả cũng như hiện thực hoá tầm nhìn của mình.