Chế độ xem đường phố của Google Maps cho phép bạn khám phá các địa điểm trên khắp thế giới thông qua Hình ảnh 360 độ ở mức đường phố. Bạn có thể khám phá các địa danh trên thế giới, xem các kỳ quan thiên nhiên, đi theo một chuyến đi hoặc cho thấy bên ngoài doanh nghiệp của mình.
Tổng quan
Chế độ xem đường phố của Google cung cấp chế độ xem toàn cảnh 360 độ từ các con đường được chỉ định
trong toàn bộ phạm vi bao phủ của nó. Phạm vi có sẵn thông qua SDK là
giống như đối với ứng dụng Google Maps cho iOS hoặc
https://maps.google.com/
. Bạn có thể đọc thêm về
Chế độ xem phố và xem các khu vực được hỗ trợ trên bản đồ tương tác, tại
Giới thiệu về Chế độ xem đường phố.
SDK bản đồ dành cho iOS cung cấp dịch vụ Chế độ xem phố
để thu thập và chỉnh sửa hình ảnh dùng trong Chế độ xem đường phố của Google Maps.
Hình ảnh trong Chế độ xem phố được trả về dưới dạng ảnh toàn cảnh và
được xem từ trong trình xem Chế độ xem phố — một
đối tượng thuộc loại GMSPanoramaView
.
Ảnh toàn cảnh trong Chế độ xem phố
Mỗi ảnh toàn cảnh trong Chế độ xem đường phố là một hình ảnh hoặc một tập hợp hình ảnh, cung cấp Chế độ xem 360 độ từ một vị trí. Hình ảnh phù hợp với hình cầu toàn cảnh Phép chiếu (Plate Carree) với góc nhìn 360 độ theo phương ngang ( bao quanh toàn bộ) và 180 độ xem dọc (từ thẳng lên thẳng xuống). Ảnh toàn cảnh 360 độ thu được xác định một phép chiếu trên một hình cầu có hình ảnh được bao bọc vào bề mặt hai chiều của hình cầu đó hình cầu.
Bạn có thể xem ảnh toàn cảnh trong Chế độ xem đường phố bằng đối tượng GMSPanoramaView
. Chiến dịch này
một đối tượng cung cấp cho một trình xem sẽ kết xuất ảnh toàn cảnh ở dạng hình cầu, với một
ở chính giữa. Bạn có thể lập trình để điều khiển hướng của
camera cũng như một số thuộc tính tuỳ chỉnh trình xem.
Truy cập dữ liệu Chế độ xem đường phố
Ảnh toàn cảnh trong Chế độ xem đường phố được xác định bằng một trong hai siêu dữ liệu:
panoramaID
- Mã nhận dạng duy nhất của ảnh toàn cảnh trong Chế độ xem đường phố.
panoramaID
này có thể thay đổi theo thời gian và không phù hợp về lâu dài hoặc được cố định giá trị trong mã tham chiếu. Bạn nên dùngpanoramaID
để cung cấp quyền truy cập có lập trình vào các hình ảnh khác nhau trong Chế độ xem đường phố. coordinate
- Vị trí chính xác của hình ảnh này, được biểu thị bằng
CLLocationCoordinate2D
. Sử dụngcoordinate
cho lưu trữ liên tục vị trí ảnh toàn cảnh hoặc để dịch các thao tác của người dùng bản đồ thành hình ảnh Chế độ xem phố.
Cả panoramaID
và coordinate
đều được lưu trữ dưới dạng thuộc tính của
Đối tượng GMSPanorama
. Bạn có thể yêu cầu GMSPanorama
từ
GMSPanoramaService
bằng coordinate
hoặc panoramaID
. Chiến lược phát hành đĩa đơn
đối tượng thu được sẽ bao gồm cả hai đoạn siêu dữ liệu cũng như một mảng
liên kết đến ảnh toàn cảnh lân cận.
Đặt vị trí ảnh toàn cảnh
Vị trí của ảnh toàn cảnh trong Chế độ xem phố có thể được đặt dựa trên của chúng tôi.
Phương thức
moveNearCoordinate
yêu cầu ảnh toàn cảnh gần của chúng tôi.Phương thức
moveNearCoordinate:radius
cũng tương tự, nhưng cho phép bạn chỉ định bán kính tìm kiếm (tính bằng mét) xung quanh toạ độ.Phương thức
moveNearCoordinate:source
cho phép bạn chỉ định một nguồn. Một nguồn sẽ hữu ích nếu bạn muốn hạn chế Chế độ xem đường phố chỉ tìm kiếm ảnh toàn cảnh bên ngoài. Theo mặc định, ảnh toàn cảnh của các vị trí có thể là bên trong hoặc bên ngoài. Lưu ý rằng ảnh toàn cảnh ngoài trời có thể không tồn tại cho vị trí được chỉ định.Phương thức
moveNearCoordinate:radius:source
cho phép bạn chỉ định cả bán kính và nguồn.
Xem hình ảnh trong Chế độ xem đường phố
Thêm người xem Chế độ xem phố
Các bước cơ bản để thêm người xem là:
- (Một lần) Làm theo các bước trong phần Bắt đầu để tải SDK, lấy khoá và thêm các khung cần thiết.
- Tạo hoặc cập nhật
ViewController
. Nếu ảnh toàn cảnh sẽ hiển thị khi bộ điều khiển chế độ xem này hiển thị, hãy nhớ tạo ảnh toàn cảnh trong phương thứcloadView
. - Tạo và tạo thực thể cho lớp
GMSPanoramaView
bằng cách sử dụngGMSPanoramaView
phương thứcinitWithFrame:
. Nếu gói này được dùng làm chế độ xem duy nhất của bộ điều khiển chế độ xem, thìCGRectZero
có thể được sử dụng làm khung — bản đồ sẽ được tự động thay đổi kích thước. - Đặt đối tượng
GMSPanoramaView
làm chế độ xem của trình điều khiển chế độ xem, ví dụ:self.view = panoView;
. - Đặt vị trí của hình ảnh trong Chế độ xem đường phố bằng một phương pháp như
moveNearCoordinate:
.
Ví dụ dưới đây sẽ thêm người xem Chế độ xem đường phố vào một ứng dụng.
Swift
import GoogleMaps class StreetView: UIViewController { override func loadView() { let panoView = GMSPanoramaView(frame: .zero) self.view = panoView panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312)) } }
Objective-C
#import "StreetView.h" @import GoogleMaps; @interface StreetView () @end @implementation StreetView - (void)loadView { GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero]; self.view = panoView; [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)]; } @end
Tuỳ chỉnh trình xem
Bạn có thể tuỳ chỉnh trình xem bằng cách hạn chế những cử chỉ có sẵn. Theo
mặc định, kéo, thu phóng và di chuyển đến ảnh toàn cảnh liền kề đều được bật.
Bạn có thể kiểm soát từng cử chỉ thông qua các thuộc tính của GMSPanoramaView
.
Các thuộc tính này cho phép hoặc tắt các cử chỉ do người dùng kiểm soát; có lập trình
vẫn có thể thực hiện được các thay đổi khi cử chỉ bị tắt.
orientationGestures
- Liệu người dùng có thể hướng lại máy ảnh bằng cách nhấn hay
đang kéo. Đặt thành
NO
để tắt các thay đổi về hướng đối với máy ảnh. zoomGestures
- Liệu người dùng có thể chụm để thu phóng hay không. Đặt thành
NO
để tắt tính năng thu phóng. navigationGestures
- Người dùng có thể thay đổi ảnh toàn cảnh sẽ hiển thị hay không. Người dùng
có thể sử dụng một lần nhấn vào liên kết điều hướng hoặc nhấn đúp vào chế độ xem để thay đổi
ảnh toàn cảnh Đặt thành
NO
để tắt các thay đổi điều hướng.
Bạn có thể bật hoặc tắt tất cả các cử chỉ cùng một lúc bằng
setAllGesturesEnabled:
.
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
Khởi chạy Chế độ xem đường phố bằng Lược đồ URL
Có thể xem hình ảnh trong Chế độ xem đường phố của Google từ bên trong Google Maps dành cho iOS
. Bạn có thể khởi chạy ứng dụng Google Maps dành cho iOS trên đường phố
chế độ xem với Lược đồ URL comgooglemaps
bằng cách đặt mapmode
thành streetview
. Ví dụ về URL sẽ chạy Chế độ xem đường phố
xuất hiện bên dưới. Để biết thêm thông tin, hãy tham khảo Lược đồ URL
tài liệu.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Vị trí và điểm xem (POV) trong Chế độ xem đường phố
GMSPanoramaCamera
cho phép bạn đặt điểm xem trong Chế độ xem đường phố
camera dưới dạng sự kết hợp giữa tiêu đề, độ cao và mức thu phóng.
Các bộ đoạn mã bên dưới sẽ hướng camera về phía nam và hơi xuống dưới.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
Hướng
Vị trí trong Chế độ xem đường phố xác định vị trí của tiêu điểm máy ảnh cho
ảnh nhưng không xác định hướng của máy ảnh cho hình ảnh đó.
Để làm được điều đó, đối tượng GMSOrientation
xác định 2 thuộc tính:
heading
xác định góc xoay xung quanh quỹ tích của máy ảnh theo độ tương đối so với hướng bắc thực. Các tiêu đề được đo theo chiều kim đồng hồ: phía bắc là 0, phía đông là 90, phía nam là 180, phía tây là 270.pitch
(0
mặc định) xác định phương sai góc "lên" hoặc "giảm" từ cao độ mặc định ban đầu của máy ảnh, thường (nhưng không phải lúc nào cũng) bằng phẳng ngang. (Ví dụ: hình ảnh được chụp trên một ngọn đồi có thể cho thấy cao độ mặc định không theo chiều ngang). Góc nghiêng được đo bằng giá trị dương nhìn lên (tới +90 độ thẳng đứng và trực giao với độ cao mặc định) và các giá trị âm nhìn xuống (xuống -90 độ) thẳng xuống và trực giao với cao độ mặc định).
Zoom (thu phóng)
Chế độ xem đường phố hỗ trợ các mức độ chi tiết hình ảnh khác nhau thông qua việc sử dụng tính năng thu phóng. Bạn có thể đặt mức thu phóng theo cách lập trình hoặc người dùng có thể thay đổi mức trong người xem bằng cách chụm để thu phóng.
Di chuyển camera
Sau khi tạo GMSPanoramaView
và GMSPanoramaView
có một máy ảnh được định cấu hình hoặc mặc định, bạn có thể thay đổi máy ảnh đó theo một trong nhiều cách. Khi bạn thay đổi
, bạn có thể tạo ảnh động cho chuyển động của camera thu được. Chiến lược phát hành đĩa đơn
ảnh động nội suy giữa các thuộc tính máy ảnh hiện tại và thuộc tính mới
các thuộc tính khác của camera.
Bạn có thể sửa đổi và đặt đối tượng GMSPanoramaCamera
trên
Thuộc tính camera
của GMSPanoramaView
. Thao tác này sẽ gắn camera với
điểm nhìn không có ảnh động. Bạn có thể tạo GMSCameraPosition
để định cấu hình bất kỳ tổ hợp hướng và thu phóng nào.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
Bạn có thể tạo ảnh động cho hiệu ứng chuyển đổi bằng cách gọi
Phương thức animateToCamera:animationDuration:
của GMSPanoramaView
.
Ngoài ra, bạn có thể điều khiển máy ảnh bằng Core Animation. Điều này đã tạo
có sẵn thông qua CALayer
tuỳ chỉnh trên GMSPanoramaView
,
GMSPanoramaLayer
.
Điểm đánh dấu trong Chế độ xem đường phố
Đối tượng GMSPanoramaView
có thể hiển thị điểm đánh dấu bản đồ. Bạn có thể sử dụng
cùng một đối tượng GMSMarker
trên GMSMapView
hoặc
Đối tượng GMSPanoramaView
bằng cách đặt các thuộc tính tương ứng:
Swift
// Create a marker at the Eiffel Tower let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294) let marker = GMSMarker(position: position) // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView // Add the marker to a GMSMapView object named mapView marker.map = mapView
Objective-C
// Create a marker at the Eiffel Tower CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294); GMSMarker *marker = [GMSMarker markerWithPosition:position]; // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView; // Add the marker to a GMSMapView object named mapView marker.map = mapView;
Điểm đánh dấu sẽ điều chỉnh theo tỷ lệ kích thước theo hàm của khoảng cách giữa vị trí của điểm đánh dấu và vị trí của GMSCameraView
. Nếu khoảng cách này quá lớn
tốt, điểm đánh dấu sẽ quá nhỏ để hiển thị và sẽ bị ẩn khỏi
chế độ xem.
Đặt thuộc tính panoramaView
thành nil
để xoá thuộc tính đó khỏi
GMSPanoramaView
.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
Sự kiện
Bạn có thể nghe các sự kiện xảy ra trên ảnh toàn cảnh của Chế độ xem đường phố, chẳng hạn như khi
người dùng nhấn vào ảnh toàn cảnh. Để nghe sự kiện, bạn phải triển khai
Giao thức GMSPanoramaViewDelegate
. Xem tổng thể
hướng dẫn về sự kiện và danh sách các phương pháp trên
GMSPanoramaViewDelegate
.