ในอุปกรณ์ที่ใช้ iOS 9 ขึ้นไป คุณสามารถใช้ลิงก์สากลเพื่อเปิด Google Maps เมื่อคุณมี URL ของ Google Maps
คุณสามารถใช้รูปแบบ URL ของ Google Maps เพื่อเปิดตัวแอป Google Maps สำหรับ iOS และทำการค้นหา รับคำขอเส้นทาง และแสดงมุมมองแผนที่ เมื่อคุณเปิดใช้ Google Maps ระบบจะส่งตัวระบุแพ็กเกจของคุณโดยอัตโนมัติเป็นส่วนหนึ่งของคำขอ
คุณไม่จำเป็นต้องใช้คีย์ Google API เพื่อใช้รูปแบบ URL ของ Google Maps
Universal Link และ Google Maps
Google Maps สำหรับ iOS รองรับ Universal Link ในอุปกรณ์ที่ใช้ iOS 9 ขึ้นไป
หาก URL ของคุณตรงกับนิพจน์ทั่วไปต่อไปนี้ และอุปกรณ์ใช้ iOS 9 ขึ้นไป คุณอาจต้องลองใช้เมธอด openURL: โดยตรง
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
ตัวอย่างเช่น
Swift
UIApplication.shared.openURL(URL(string:"https://www.google.com/maps/@42.585444,13.007813,6z")!)
Objective-C
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://www.google.com/maps/@42.585444,13.007813,6z"]];
ภาพรวม
รูปแบบ URL ช่วยให้คุณเปิดแอปพลิเคชัน iOS เนทีฟจากแอป iOS อื่นหรือเว็บแอปพลิเคชันได้ คุณสามารถตั้งค่าตัวเลือกใน URL ที่จะส่งไปยังแอปพลิเคชันที่เปิดใช้งาน แอป Google Maps สำหรับ iOS รองรับรูปแบบ URL ต่อไปนี้
comgooglemaps://
และcomgooglemaps-x-callback://
- รูปแบบเหล่านี้ ช่วยให้คุณเปิดแอป Google Maps สำหรับ iOS และดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ได้- แสดงแผนที่ในตำแหน่งและระดับการซูมที่ระบุ
- ค้นหาสถานที่ แล้วแสดงบนแผนที่
- ขอเส้นทางจากสถานที่หนึ่งไปยังอีกสถานที่หนึ่ง คุณสามารถส่งคืนเส้นทางสำหรับการขนส่งได้ 4 รูปแบบ ได้แก่ การขับรถ เดินเท้า จักรยาน และขนส่งสาธารณะ
- เพิ่มการนำทางลงในแอป
- ใน iOS 8 ให้ออกโค้ดเรียกกลับเมื่อแอปดำเนินการเสร็จแล้ว โดยใช้
comgooglemaps-x-callback://
โค้ดเรียกกลับมักใช้เพื่อ นำผู้ใช้กลับไปยังแอปที่เปิด Google Maps สำหรับ iOS ในตอนแรก โปรดทราบว่าบน iOS 9 ระบบจะแสดงลิงก์ "กลับไปที่" ที่มุมซ้ายของแถบสถานะโดยอัตโนมัติ
comgooglemapsurl://
- รูปแบบนี้จะช่วยให้คุณเปิดแอป Google Maps สำหรับ iOS ได้โดยใช้ URL ที่ได้มาจากเว็บไซต์ Google Maps ในเดสก์ท็อป ซึ่งหมายความว่าคุณสามารถมอบประสบการณ์การใช้งานในอุปกรณ์เคลื่อนที่ให้กับผู้ใช้แทนการโหลดเว็บไซต์ Google Maps เพียงอย่างเดียว- URL เดิมอาจเป็นสำหรับ
maps.google.com
หรือgoogle.com/maps
หรือใช้โดเมนระดับบนสุดที่ถูกต้องแทนcom
นอกจากนี้คุณยังส่งต่อ URL การเปลี่ยนเส้นทางgoo.gl/maps
ได้อีกด้วย - คุณให้โค้ดเรียกกลับได้โดยใช้พารามิเตอร์
x-source
และx-success
กับรูปแบบ URLcomgooglemapsurl://
- URL เดิมอาจเป็นสำหรับ
การเปิดแอป Google Maps สำหรับ iOS และดำเนินการฟังก์ชันเฉพาะ
หากต้องการเปิดแอป Google Maps สำหรับ iOS และเลือกดำเนินการหนึ่งในฟังก์ชันที่รองรับ ให้ใช้รูปแบบ URL ในรูปแบบต่อไปนี้
comgooglemaps://?parameters
หรือ
comgooglemaps-x-callback://?parameters
เราจะอธิบายพารามิเตอร์อย่างละเอียดในภายหลังในเอกสารนี้
การตรวจสอบความพร้อมใช้งานของแอป Google Maps บนอุปกรณ์
ก่อนที่จะแสดง URL ดังกล่าวแก่ผู้ใช้ในแอป คุณควรยืนยันว่ามีการติดตั้งแอปพลิเคชันแล้ว แอปจะตรวจสอบได้ว่ารูปแบบ URL ดังกล่าวพร้อมใช้งานหรือไม่ด้วยโค้ดต่อไปนี้
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
เช่น หากต้องการแสดงแผนที่เซ็นทรัลพาร์กในนิวยอร์ก คุณสามารถใช้โค้ดต่อไปนี้
Swift
if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
UIApplication.shared.openURL(URL(string:
"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
print("Can't use comgooglemaps://");
}
Objective-C
if ([[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]]) {
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
NSLog(@"Can't use comgooglemaps://");
}
กำลังแสดงแผนที่
ใช้รูปแบบ URL เพื่อแสดงแผนที่ในระดับการซูมและตำแหน่งที่ระบุ คุณยังสามารถวางซ้อนมุมมองอื่นไว้ที่ด้านบนของแผนที่ หรือแสดงภาพ Street View ได้ด้วย
พารามิเตอร์
พารามิเตอร์ต่อไปนี้ทั้งหมดไม่บังคับ ถ้าไม่ได้ตั้งค่าพารามิเตอร์ไว้ รูปแบบ URL จะเปิดแอป Google Maps สำหรับ iOS
center
: นี่คือจุดศูนย์กลางของวิวพอร์ตแผนที่ จัดรูปแบบเป็นสตริง ที่คั่นด้วยคอมมาของlatitude,longitude
mapmode
: ตั้งค่าชนิดของแผนที่ที่แสดง สามารถตั้งค่าเป็นstandard
หรือstreetview
หากไม่ได้ระบุไว้ ระบบจะใช้การตั้งค่าแอปพลิเคชันปัจจุบันviews
: เปิด/ปิดมุมมองที่ต้องการ สามารถตั้งค่าเป็นsatellite
,traffic
หรือtransit
โดยสามารถตั้งค่าหลายค่าโดยใช้เครื่องหมายจุลภาคคั่น หากไม่มีการระบุค่า พารามิเตอร์จะล้างมุมมองทั้งหมดzoom
: ระบุระดับการซูมของแผนที่
URL ตัวอย่างนี้แสดงแผนที่ซึ่งมีศูนย์กลางอยู่ที่นิวยอร์กเมื่อซูม 14 และเปิดมุมมองการจราจรเป็น
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
ตัวอย่างเพิ่มเติมมีดังนี้
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
ค้นหา
ใช้รูปแบบนี้เพื่อแสดงคำค้นหาในตำแหน่งวิวพอร์ตที่ระบุ
พารามิเตอร์
นอกจากพารามิเตอร์ที่ใช้แสดงแผนที่แล้ว Search ยังรองรับพารามิเตอร์ q
ด้วย
q
: สตริงคำค้นหาสำหรับการค้นหาของคุณ
ตัวอย่าง URL สำหรับการค้นหา "พิซซ่า" รอบตำแหน่งที่ระบุ
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
ตัวอย่างเพิ่มเติมมีดังนี้
comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA¢er=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan¢er=35.660888,139.73073&zoom=15&views=transit
การแสดงเส้นทาง
ใช้รูปแบบนี้เพื่อขอและแสดงเส้นทางระหว่างสถานที่ตั้ง 2 แห่ง นอกจากนี้คุณยังระบุรูปแบบการเดินทางได้อีกด้วย
พารามิเตอร์
saddr
: กำหนดจุดเริ่มต้นสำหรับการค้นหาเส้นทาง ซึ่งอาจเป็นละติจูด ลองจิจูด หรือที่อยู่ในรูปแบบของคำค้นหา หากเป็นสตริงการค้นหาที่แสดงผลลัพธ์มากกว่า 1 รายการ ระบบจะเลือกผลลัพธ์แรก หากไม่ได้ระบุค่า ระบบจะใช้ตำแหน่งปัจจุบันของผู้ใช้daddr
: กำหนดจุดสิ้นสุดสำหรับการค้นหาเส้นทาง มีรูปแบบและลักษณะการทำงานเหมือนกับsaddr
directionsmode
: วิธีการเดินทาง สามารถตั้งค่าเป็นdriving
,transit
,bicycling
หรือwalking
URL ตัวอย่างแสดงเส้นทางขนส่งสาธารณะระหว่าง Google NYC กับ JFK Airport
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
ตัวอย่างเพิ่มเติมมีดังนี้
comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA¢er=37.422185,-122.083898&zoom=10
comgooglemaps://?saddr=2025+Garcia+Ave,+Mountain+View,+CA,+USA&daddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA,+United+States¢er=37.423725,-122.0877&directionsmode=walking&zoom=17
การระบุ URL เรียกกลับ
หากต้องการระบุ URL เรียกกลับ คุณต้องใช้รูปแบบ URL ของ comgooglemaps-x-callback://
รูปแบบนี้เป็นไปตามข้อกำหนด x-callback-url เมื่อคุณเรียกใช้แอป Google แผนที่สำหรับ iOS
ด้วยรูปแบบนี้ แอปจะแสดงปุ่มที่ด้านบนของหน้าจอ การแตะปุ่มนี้จะเป็นการเรียกกลับไปยัง URL ที่คุณได้ระบุไว้
คำขอที่ส่งไปยัง comgooglemaps-x-callback://
จะต้องอยู่ในรูปแบบดังนี้
comgooglemaps-x-callback://?parameters
พารามิเตอร์
รูปแบบ URL ของ x-callback ยอมรับพารามิเตอร์เดียวกันกับสคีม URL comgooglemaps://
โดยมีพารามิเตอร์เพิ่มเติมดังต่อไปนี้ ต้องใช้พารามิเตอร์ทั้ง 2 ตัว
x-source
— ชื่อแอปพลิเคชันที่ส่งคำขอ x-callback ขอแนะนำให้ใช้ชื่อย่อx-success
— URL ที่จะเรียกใช้เมื่อเสร็จสมบูรณ์ ซึ่งมักจะเป็นรูปแบบ URL สำหรับแอปของคุณเอง ซึ่งช่วยให้ผู้ใช้กลับไปใช้แอปพลิเคชันเดิมได้
โปรดทราบว่าแอปจะต้องลงทะเบียนรูปแบบ URL ของตัวเองเพื่อให้ตอบกลับ URL เรียกกลับได้
- ตรวจสอบว่าแอปพลิเคชันได้ลงทะเบียนรูปแบบ URL ที่ตอบกลับคำขอโค้ดเรียกกลับได้
- ส่งป้ายกำกับสำหรับปุ่มเรียกกลับในพารามิเตอร์
x-source
- ส่ง URL เรียกกลับในพารามิเตอร์
x-success
ตัวอย่างต่อไปนี้จะเป็นการเปิดแอป Google Maps สำหรับ iOS และแสดงแผนที่ที่มีศูนย์กลางอยู่ที่นิวยอร์ก แอปจะแสดงปุ่มที่มีป้ายกำกับ "SourceApp" ด้วย
เมื่อมีการคลิกปุ่ม "SourceApp" แอป Google Maps สำหรับ iOS จะออกการเรียกกลับไปยังรูปแบบ URL ที่สมมติขึ้น sourceapp://?resume=true
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
เช่นเดียวกับรูปแบบ URL ของ comgooglemaps://
ก่อนอื่นคุณควรยืนยันว่าแอป Google Maps สำหรับ iOS พร้อมใช้งานในอุปกรณ์และรองรับรูปแบบ x-callback URL แอปจะตรวจสอบได้ว่ารูปแบบ URL พร้อมใช้งานหรือไม่ด้วยโค้ดต่อไปนี้
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
นี่คือตัวอย่างของ URL ที่ให้ผู้ใช้กลับไปยังแอปหลังจากค้นหาขนมหวาน
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
การเพิ่มการนำทางในแอป
การเปิดตัวแอป Google Maps สำหรับ iOS ที่มีคำขอเส้นทางเป็นวิธีง่ายๆ ที่ช่วยให้ผู้ใช้เข้าถึงการนำทางแบบเลี้ยวต่อเลี้ยวจากแอป คุณสามารถใช้รูปแบบ URL แบบ comgooglemaps://
หรือ comgooglemaps-x-callback://
ก็ได้
ข้อมูลโค้ดนี้จะแสดงวิธีใช้รูปแบบ comgooglemaps-x-callback://
เพื่อขอเส้นทาง จากนั้นกลับไปยังแอปเมื่อผู้ใช้พร้อม โค้ดดังกล่าวจะมีลักษณะดังนี้
- ยืนยันว่ารูปแบบ URL ของ
comgooglemaps-x-callback://
ใช้งานได้ - เปิดแอป Google Maps สำหรับ iOS และขอเส้นทางไปยังสนามบิน JFK ในนิวยอร์กซิตี้ ปล่อยที่อยู่เริ่มต้นว่างไว้เพื่อขอเส้นทางจากตำแหน่งปัจจุบันของผู้ใช้
- เพิ่มปุ่มที่มีป้ายกำกับว่า "AirApp" ในแอป Google Maps สำหรับ iOS ป้ายกำกับของปุ่มจะกำหนดโดยพารามิเตอร์
x-source
- เรียกรูปแบบ URL ที่สมมติขึ้น
sourceapp://
เมื่อผู้ใช้คลิกปุ่มย้อนกลับ
Swift
let testURL = URL(string: "comgooglemaps-x-callback://")!
if UIApplication.shared.canOpenURL(testURL) {
let directionsRequest = "comgooglemaps-x-callback://" +
"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
"&x-success=sourceapp://?resume=true&x-source=AirApp"
let directionsURL = URL(string: directionsRequest)!
UIApplication.shared.openURL(directionsURL)
} else {
NSLog("Can't use comgooglemaps-x-callback:// on this device.")
}
Objective-C
NSURL *testURL = [NSURL URLWithString:@"comgooglemaps-x-callback://"];
if ([[UIApplication sharedApplication] canOpenURL:testURL]) {
NSString *directionsRequest = @"comgooglemaps-x-callback://" +
@"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
@"&x-success=sourceapp://?resume=true&x-source=AirApp";
NSURL *directionsURL = [NSURL URLWithString:directionsRequest];
[[UIApplication sharedApplication] openURL:directionsURL];
} else {
NSLog(@"Can't use comgooglemaps-x-callback:// on this device.");
}
เปิดแอป Google Maps สำหรับ iOS จาก URL เดสก์ท็อปของ Google Maps
หากแอปมีสิทธิ์เข้าถึง URL ของ Google Maps ที่มีอยู่แล้ว เช่น ในหน้าเว็บหรือฐานข้อมูล คุณสามารถใช้รูปแบบนี้เพื่อเปิด URL ในแอป Google Maps สำหรับ iOS เพื่อให้ประสบการณ์การใช้งานแบบเนทีฟที่ดีที่สุดแก่ผู้ใช้
- แทนที่รูปแบบ
http://
หรือhttps://
ด้วยcomgooglemapsurl://
- หากต้องการใช้โค้ดเรียกกลับ ให้ใส่พารามิเตอร์
x-source
และx-success
รูปแบบนี้เป็นไปตามข้อกำหนด x-callback-url
รูปแบบ URL ของ Google Maps ที่รองรับ
รูปแบบ comgooglemapsurl://
รองรับ URL ที่ตรงกับนิพจน์ทั่วไปนี้ โดยที่ {TLD}
หมายถึงโดเมนระดับบนสุดที่ถูกต้อง ระบบจะเพิ่มตัวแบ่งบรรทัดเพื่อความชัดเจน ดังนี้
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
การตรวจสอบความพร้อมใช้งานของแอป Google Maps
ก่อนอื่น โปรดยืนยันว่าแอป Google Maps สำหรับ iOS พร้อมให้บริการในอุปกรณ์และรองรับรูปแบบ URL ดังนี้
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
ตัวอย่าง
ตัวอย่าง URL ทั่วไปของ Google Maps
URL เดิมของ Google Maps:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
การใช้รูปแบบ URL
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
ตัวอย่าง URL ทั่วไปของ Google Maps
URL เดิมของ Google Maps:
https://maps.google.com/?q=@37.3161,-122.1836
การใช้รูปแบบ URL
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836
ตัวอย่างคำขอเส้นทางไปโตเกียวทาวเวอร์ด้วย x-callback
URL เดิมของ Google Maps:
http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
ตัวอย่างต่อไปนี้จะเปิดแอป Google Maps สำหรับ iOS และแสดงแผนที่
พร้อมเส้นทางไปโตเกียวทาวเวอร์ ตามที่ระบุไว้ใน URL เดิมของ Google Maps
(ด้านบน) แอปจะยังแสดงปุ่มที่มีป้ายกำกับว่า
"SourceApp" ด้วย เมื่อมีการคลิกปุ่ม "SourceApp" แอป Google Maps สำหรับ iOS จะออกการเรียกกลับไปยังรูปแบบ URL ที่สมมติขึ้น sourceapp://?resume=true
comgooglemapsurl://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
&x-source=SourceApp
&x-success=sourceapp://?resume=true