Google แผนที่ Street View ทําให้คุณสามารถสํารวจสถานที่ต่างๆ ทั่วโลกผ่านภาพระดับถนนแบบ 360 องศา คุณสามารถสํารวจสถานที่สําคัญของโลก ดูธรรมชาติตามธรรมชาติ เดินทางท่องเที่ยว หรือแสดงภายนอกธุรกิจของคุณ
ภาพรวม
Google Street View มอบมุมมองพาโนรามา 360 องศาจากถนนที่กําหนดครอบคลุมพื้นที่ครอบคลุมของถนน การครอบคลุมที่มีให้บริการผ่านทาง SDK เหมือนกับ
แอป Google Maps สําหรับ iOS หรือ
https://maps.google.com/
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ Street View และดูพื้นที่ที่ได้รับการสนับสนุนในแผนที่เชิงโต้ตอบได้ในเกี่ยวกับ Street View
Maps SDK สําหรับ iOS ให้บริการ Street View
เพื่อหาและจัดการกับภาพที่ใช้ใน Street View ของ Google Maps
ภาพ Street View จะแสดงเป็นภาพพาโนรามาและมองเห็นได้จากภายในโปรแกรมดูภาพ Street View ซึ่งเป็นวัตถุประเภท GMSPanoramaView
พาโนรามาใน Street View
ภาพพาโนรามาของ Street View แต่ละภาพคือภาพหรือชุดรูปภาพที่แสดงมุมมองเต็ม 360 องศาจากสถานที่แห่งเดียว ภาพเป็นไปตามการฉายภาพทรงกลม (Plate Carrée) ที่มีมุมมองแนวนอน 360 องศา (รอบด้าน) และ 180 องศาในแนวตั้ง (จากบนลงล่าง จะเป็นมุมมองตรง) ภาพพาโนรามา 360 องศาที่เป็นเส้นประสาทจะสร้างการฉายภาพบนทรงกลมที่ห่ออยู่กับพื้นผิว 2 มิติของรูปทรงนั้น
คุณจะดูภาพพาโนรามาของ Street View ได้ด้วยออบเจ็กต์ GMSPanoramaView
อ็อบเจ็กต์นี้ให้มุมมองที่จะแสดงภาพพาโนรามาเป็นทรงกลมโดยมีกล้องอยู่ตรงกลาง คุณสามารถควบคุมการตั้งโปรแกรมของกล้อง
ตลอดจนคุณสมบัติหลายอย่างที่ปรับแต่งโปรแกรมดูภาพ
การเข้าถึงข้อมูล Street View
ภาพพาโนรามา Street View จะถูกระบุด้วยข้อมูลเมตาหนึ่งในสองชิ้นนี้
panoramaID
- รหัสที่ไม่ซ้ํากันของภาพพาโนรามา Street View
panoramaID
นี้อาจเปลี่ยนแปลงไปตามช่วงเวลาและไม่เหมาะกับการใช้งานในระยะยาวหรือการอ้างอิงแบบฮาร์ดโค้ดpanoramaID
เหมาะที่สุดสําหรับการให้สิทธิ์เข้าถึงรูปภาพ Street View ต่างๆ แบบเป็นโปรแกรม coordinate
- ตําแหน่งที่แน่นอนของรูปภาพนี้ ซึ่งแสดงเป็น
CLLocationCoordinate2D
ใช้coordinate
เพื่อเก็บข้อมูลตําแหน่งพาโนรามาแบบถาวร หรือแปลการดําเนินการของผู้ใช้บนแผนที่เป็นภาพ Street View
ทั้ง panoramaID
และ coordinate
จะเก็บเป็นพร็อพเพอร์ตี้ของออบเจ็กต์ GMSPanorama
คุณขอ GMSPanorama
จาก GMSPanoramaService
ได้โดยใช้ coordinate
หรือ panoramaID
วัตถุที่แสดงจะประกอบด้วยข้อมูลเมตาทั้งสองชิ้น และอาร์เรย์ของลิงก์ไปยังภาพพาโนรามาใกล้เคียง
การตั้งค่าตําแหน่งของภาพพาโนรามา
คุณสามารถตั้งค่าสถานที่ถ่ายภาพพาโนรามาของ Street View ตามพิกัด
เมธอด
moveNearCoordinate
ขอภาพพาโนรามาใกล้พิกัดเมธอด
moveNearCoordinate:radius
นี้คล้ายกันแต่จะช่วยให้คุณ ระบุรัศมีการค้นหา หน่วยเป็นเมตร รอบพิกัดได้เมธอด
moveNearCoordinate:source
ช่วยให้คุณระบุแหล่งที่มาได้ แหล่งที่มามีประโยชน์ในกรณีที่คุณต้องการจํากัด Street View ให้มองหาภาพพาโนรามาที่อยู่ภายนอกเท่านั้น โดยค่าเริ่มต้น ภาพพาโนรามาของสถานที่ต่างๆ จะอยู่ภายใน หรือด้านนอก โปรดทราบว่าอาจไม่มีภาพพาโนรามากลางแจ้งสําหรับสถานที่ที่ระบุเมธอด
moveNearCoordinate:radius:source
ช่วยให้คุณระบุทั้งรัศมีและแหล่งที่มาได้
การดูภาพ Street View
การเพิ่มโปรแกรมดู Street View
ขั้นตอนพื้นฐานในการเพิ่มผู้ดูมีดังนี้
- (ครั้งเดียว) ทําตามขั้นตอนในการเริ่มต้นใช้งานเพื่อรับ SDK รับคีย์และเพิ่มเฟรมเวิร์กที่จําเป็น
- สร้างหรืออัปเดต
ViewController
ถ้าภาพพาโนรามาจะแสดงเมื่อตัวควบคุมมุมมองนี้มองเห็นได้ โปรดอย่าลืมสร้างภาพพาโนรามาในเมธอดloadView
- สร้างและสร้างอินสแตนซ์คลาส
GMSPanoramaView
โดยใช้เมธอดGMSPanoramaView
initWithFrame:
หากจะใช้เป็นมุมมองเดียวของตัวควบคุมมุมมอง จะใช้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
คุณสามารถดูภาพ Google Street View ได้จากภายในแอปพลิเคชัน Google แผนที่
สําหรับ iOS คุณสามารถเปิดแอปพลิเคชัน Google แผนที่สําหรับ iOS ในโหมด Street View ด้วยสกีม URL ของ comgooglemaps
โดยตั้งค่าพารามิเตอร์ mapmode
เป็น streetview
ตัวอย่าง URL ที่จะเปิด Street View
จะปรากฏขึ้นด้านล่าง ดูข้อมูลเพิ่มเติมได้ในเอกสารสกีม URL
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
ตําแหน่ง Street View และมุมมอง (POV)
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
นอกจากนี้ คุณสามารถควบคุมกล้องโดยใช้แอนิเมชันหลัก โดยพร้อมใช้งานผ่าน 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
โดยรวม