
Google Maps Street View ช่วยให้คุณสำรวจสถานที่ต่างๆ ทั่วโลกผ่านภาพระดับถนนแบบ 360 องศา คุณสามารถสำรวจจุดสังเกตทั่วโลก ดูความมหัศจรรย์ทางธรรมชาติ นำทางการเดินทาง หรือแสดงภายนอกธุรกิจของคุณ
ภาพรวม
Google Street View แสดงภาพพาโนรามาแบบ 360 องศาจากถนนที่กำหนดทั่วพื้นที่ให้บริการ พื้นที่ให้บริการที่ใช้ได้
ผ่าน SDK จะเหมือนกับพื้นที่ให้บริการของแอปGoogle Maps สำหรับ iOS หรือ
https://maps.google.com/ คุณอ่านเพิ่มเติมเกี่ยวกับ Street View และดูพื้นที่ที่รองรับในแผนที่แบบอินเทอร์แอกทีฟได้ที่ ข้อมูลเกี่ยวกับ Street View
Maps SDK สำหรับ iOS มีบริการ Street View สำหรับรับและจัดการภาพที่ใช้ใน Google Maps Street View ระบบจะแสดงรูปภาพ Street View
เป็นภาพพาโนรามาและดูได้จากภายใน
โปรแกรมดู Street View ซึ่งเป็นออบเจ็กต์ประเภท
GMSPanoramaView
ภาพพาโนรามาใน Street View
พาโนรามาแต่ละภาพใน Street View เป็นรูปภาพหรือชุดรูปภาพที่แสดงมุมมองแบบ 360 องศาเต็มจากสถานที่เดียว รูปภาพเป็นไปตามการฉายภาพแบบ Equirectangular (Plate Carrée) ซึ่งมีมุมมองแนวนอน 360 องศา (แบบห่อหุ้มเต็ม) และมุมมองแนวตั้ง 180 องศา (ตั้งแต่ตรงขึ้นไปจนถึงตรงลงมา) ภาพพาโนรามา 360 องศาที่ได้จะกำหนดการฉายภาพบนทรงกลมโดยมีรูปภาพห่อหุ้มพื้นผิว 2 มิติของทรงกลมนั้น
คุณดูภาพพาโนรามาใน Street View ได้ด้วยออบเจ็กต์ GMSPanoramaView ออบเจ็กต์นี้มีโปรแกรมดูที่จะแสดงภาพพาโนรามาเป็นทรงกลมโดยมีกล้องอยู่ตรงกลาง คุณสามารถควบคุมการวางแนวของกล้องแบบเป็นโปรแกรม รวมถึงพร็อพเพอร์ตี้หลายรายการที่ปรับแต่งโปรแกรมดู
เข้าถึงข้อมูล Street View
ระบบจะระบุภาพพาโนรามาใน Street View ด้วยข้อมูลเมตา 2 รายการต่อไปนี้
panoramaID- รหัสที่ไม่ซ้ำกันของภาพพาโนรามาใน Street View This
panoramaIDนี้อาจเปลี่ยนแปลงไปตามเวลาและไม่เหมาะที่จะใช้เป็นข้อมูลอ้างอิงระยะยาวหรือข้อมูลอ้างอิงที่ฮาร์ดโค้ดpanoramaIDเหมาะที่สุดสำหรับการให้สิทธิ์เข้าถึงรูปภาพ Street View ต่างๆ แบบเป็นโปรแกรม coordinate- ตำแหน่งที่แน่นอนของรูปภาพนี้ ซึ่งแสดงเป็น
CLLocationCoordinate2Dใช้coordinateสำหรับ การจัดเก็บตำแหน่งภาพพาโนรามาแบบถาวร หรือเพื่อแปลการกระทำของผู้ใช้ใน แผนที่เป็นรูปภาพ Street View
ทั้ง panoramaID และ coordinate จะจัดเก็บเป็นพร็อพเพอร์ตี้ของออบเจ็กต์ GMSPanorama คุณขอ GMSPanorama จาก
GMSPanoramaService ได้โดยใช้ coordinate หรือ panoramaID ออบเจ็กต์ที่ได้จะมีข้อมูลเมตาทั้ง 2 รายการ รวมถึงอาร์เรย์ของลิงก์ไปยังภาพพาโนรามาในบริเวณใกล้เคียง
กำหนดตำแหน่งของภาพพาโนรามา
คุณกำหนดตำแหน่งของภาพพาโนรามาใน Street View ได้โดยอิงตามพิกัด
เมธอด
moveNearCoordinateจะขอภาพพาโนรามาที่อยู่ใกล้พิกัดเมธอด
moveNearCoordinate:radiusมีลักษณะคล้ายกัน แต่ช่วยให้คุณระบุรัศมีการค้นหาเป็นเมตรรอบๆ พิกัดได้เมธอด
moveNearCoordinate:sourceช่วยให้คุณระบุแหล่งที่มาได้ แหล่งที่มามีประโยชน์หากคุณต้องการจำกัด Street View ให้ค้นหาเฉพาะภาพพาโนรามาที่อยู่ภายนอก โดยค่าเริ่มต้น ภาพพาโนรามาของสถานที่ต่างๆ จะอยู่ภายในหรือภายนอก โปรดทราบว่าภาพพาโนรามาภายนอกอาจไม่มีสำหรับสถานที่ที่ระบุเมธอด
moveNearCoordinate:radius:sourceช่วยให้คุณระบุทั้งรัศมีและแหล่งที่มาได้
การดูรูปภาพ Street View
การเพิ่มโปรแกรมดู Street View
ขั้นตอนพื้นฐานในการเพิ่มโปรแกรมดูมีดังนี้
- (ครั้งเดียว) ทำตามขั้นตอนในส่วน เริ่มต้นใช้งาน เพื่อรับ SDK, รับคีย์ และเพิ่มเฟรมเวิร์กที่จำเป็น
- สร้างหรืออัปเดต
ViewControllerหากต้องการแสดงภาพพาโนรามาเมื่อตัวควบคุมมุมมองนี้ปรากฏขึ้น ให้สร้างภาพพาโนรามาภายในเมธอดloadView - สร้างและสร้างอินสแตนซ์คลาส
GMSPanoramaViewโดยใช้เมธอดGMSPanoramaViewinitWithFrame:หากต้องการใช้เป็นมุมมองเดียวของตัวควบคุมมุมมอง คุณสามารถใช้CGRectZeroเป็นเฟรมของแผนที่ได้ โดยระบบจะปรับขนาดแผนที่โดยอัตโนมัติ - ตั้งค่าออบเจ็กต์
GMSPanoramaViewเป็นมุมมองของตัวควบคุมมุมมอง เช่นself.view = panoView; - กำหนดตำแหน่งของรูปภาพ Street View โดยใช้เมธอด เช่น
moveNearCoordinate:
ตัวอย่างด้านล่างจะเพิ่มโปรแกรมดู Street View ลงในแอป
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
ปรับแต่งโปรแกรมดู
คุณปรับแต่งโปรแกรมดูได้โดยจำกัดท่าทางสัมผัสที่ใช้ได้ โดยค่าเริ่มต้น ระบบจะเปิดใช้การเลื่อน การซูม และการเดินทางไปยังภาพพาโนรามาที่อยู่ติดกันทั้งหมด
คุณควบคุมท่าทางสัมผัสแต่ละรายการได้ผ่านพร็อพเพอร์ตี้ของ GMSPanoramaView
พร็อพเพอร์ตี้เหล่านี้จะเปิดหรือปิดใช้ท่าทางสัมผัสที่ผู้ใช้ควบคุมได้ แต่คุณยังคงทำการเปลี่ยนแปลงแบบเป็นโปรแกรมได้เมื่อปิดใช้ท่าทางสัมผัส
orientationGestures- กำหนดว่าผู้ใช้จะสามารถเปลี่ยนการวางแนวของกล้องได้โดยการแตะหรือ
ลากหรือไม่ ตั้งค่าเป็น
NOเพื่อปิดใช้การเปลี่ยนแปลงการวางแนวของ กล้อง zoomGestures- กำหนดว่าผู้ใช้จะสามารถบีบเพื่อซูมได้หรือไม่ ตั้งค่าเป็น
NOเพื่อปิดใช้การซูม navigationGestures- กำหนดว่าผู้ใช้จะสามารถเปลี่ยนภาพพาโนรามาที่มองเห็นได้หรือไม่ ผู้ใช้อาจแตะลิงก์การนำทาง 1 ครั้งหรือแตะมุมมอง 2 ครั้งเพื่อเปลี่ยนภาพพาโนรามา ตั้งค่าเป็น
NOเพื่อปิดใช้การเปลี่ยนแปลงการนำทาง
คุณสามารถเปิดหรือปิดใช้ท่าทางสัมผัสทั้งหมดพร้อมกันได้ด้วยเมธอด setAllGesturesEnabled:
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
เปิดใช้ Street View ด้วย URL Scheme
คุณดูภาพ Street View ได้จากภายในแอปพลิเคชัน Google Maps สำหรับ iOS คุณสามารถเปิดใช้แอปพลิเคชัน Google Maps สำหรับ iOS ในโหมด Street View ด้วย URL Scheme comgooglemaps โดยตั้งค่าพารามิเตอร์ mapmode เป็น streetview ตัวอย่าง URL ที่จะเปิดใช้ Street View ปรากฏด้านล่าง ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบ URL Scheme
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
ตำแหน่งและมุมมอง (POV) ของ Street View
GMSPanoramaCamera ช่วยให้คุณกำหนดมุมมองของกล้อง Street View เป็นการผสมผสานระหว่างทิศทาง ระดับความสูงต่ำ และการซูม
ข้อมูลโค้ดด้านล่างจะกำหนดให้กล้องหันไปทางทิศใต้และเอียงลงเล็กน้อย
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
การวางแนว
ตำแหน่ง Street View จะกำหนดตำแหน่งที่กล้องโฟกัสสำหรับรูปภาพ แต่ไม่ได้กำหนดการวางแนวของกล้องสำหรับรูปภาพนั้น
ด้วยเหตุนี้ ออบเจ็กต์ GMSOrientation จึงกำหนดพร็อพเพอร์ตี้ 2 รายการดังนี้
headingกำหนดมุมการหมุนรอบจุดศูนย์กลางของกล้องเป็นองศาโดยอิงจากทิศเหนือจริง ระบบจะวัดทิศทางตามเข็มนาฬิกา โดยทิศเหนือจริงคือ 0 ทิศตะวันออกคือ 90 ทิศใต้คือ 180 และทิศตะวันตกคือ 270pitch(ค่าเริ่มต้นคือ0) กำหนดความแปรปรวนของมุม "ขึ้น" หรือ "ลง" จากระดับความสูงต่ำเริ่มต้นของกล้อง ซึ่งมักจะเป็น (แต่ไม่เสมอไป) มุมแนวนอนแบบราบ (เช่น รูปภาพที่ถ่ายบนเนินเขาอาจแสดงระดับความสูงต่ำเริ่มต้นที่ไม่ใช่แนวนอน) ระบบจะวัดมุมระดับความสูงต่ำด้วยค่าบวกที่มองขึ้น (สูงสุด +90 องศาตรงขึ้นและตั้งฉากกับระดับความสูงต่ำเริ่มต้น) และค่าลบที่มองลง (สูงสุด -90 องศาตรงลงและตั้งฉากกับระดับความสูงต่ำเริ่มต้น)
ซูม
Street View รองรับรายละเอียดรูปภาพระดับต่างๆ ผ่านการซูม คุณสามารถกำหนดระดับการซูมแบบเป็นโปรแกรม หรือผู้ใช้สามารถเปลี่ยนระดับในโปรแกรมดูได้โดยการบีบเพื่อซูม
การเคลื่อนกล้อง
เมื่อสร้าง GMSPanoramaView แล้ว และมีกล้องที่กำหนดค่าหรือกล้องเริ่มต้น คุณสามารถเปลี่ยนกล้องได้หลายวิธี เมื่อเปลี่ยนกล้อง คุณสามารถเลือกที่จะเคลื่อนไหวการเคลื่อนกล้องที่ได้ ภาพเคลื่อนไหวจะประมาณค่าในช่วงระหว่างแอตทริบิวต์กล้องปัจจุบันกับแอตทริบิวต์กล้องใหม่
คุณสามารถแก้ไขออบเจ็กต์ GMSPanoramaCamera และตั้งค่าในพร็อพเพอร์ตี้ camera ของ GMSPanoramaView ซึ่งจะจัดกล้องให้พอดีกับมุมมองใหม่โดยไม่มีภาพเคลื่อนไหว คุณสามารถสร้าง GMSCameraPosition เพื่อกำหนดค่าการวางแนวและการซูมร่วมกันได้
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
คุณสามารถสร้างภาพเคลื่อนไหวการเปลี่ยนภาพได้โดยเรียกใช้เมธอด animateToCamera:animationDuration: ของ GMSPanoramaView
นอกจากนี้ คุณยังควบคุมกล้องได้โดยใช้ Core Animation ซึ่งใช้ได้ผ่าน CALayer ที่กำหนดเองใน GMSPanoramaView ซึ่งก็คือ GMSPanoramaLayer
เครื่องหมายภายใน Street View
ออบเจ็กต์ GMSPanoramaView สามารถแสดงเครื่องหมายแผนที่ได้ คุณสามารถใช้ออบเจ็กต์ GMSMarker เดียวกันในออบเจ็กต์ GMSMapView หรือ GMSPanoramaView ได้โดยตั้งค่าพร็อพเพอร์ตี้ที่เกี่ยวข้องดังนี้
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;
เครื่องหมายจะปรับขนาดตามระยะห่างระหว่างตำแหน่งของเครื่องหมายกับตำแหน่งของ GMSCameraView หากระยะห่างนี้มากเกินไป ตัวทำเครื่องหมายจะมีขนาดเล็กเกินกว่าจะแสดงและจะซ่อนจากมุมมอง
ตั้งค่าพร็อพเพอร์ตี้ panoramaView เป็น nil เพื่อนำออกจาก GMSPanoramaView
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
กิจกรรม
คุณสามารถฟังกิจกรรมที่เกิดขึ้นในพาโนรามาใน Street View ได้ เช่น เมื่อผู้ใช้แตะพาโนรามา หากต้องการฟังกิจกรรม คุณต้องใช้โปรโตคอล
GMSPanoramaViewDelegate ดูคำแนะนำโดยรวมเกี่ยวกับกิจกรรมและรายการเมธอดในGMSPanoramaViewDelegate