Lược đồ URL của Google Maps dành cho iOS

Trên các thiết bị chạy iOS 9 trở lên, bạn có thể sử dụng Đường liên kết phổ quát để khởi chạy Google Maps khi có URL của Google Maps.

Bạn có thể sử dụng giao thức URL của Google Maps để chạy ứng dụng Google Maps cho iOS và thực hiện các thao tác tìm kiếm, nhận yêu cầu chỉ đường và hiển thị chế độ xem bản đồ. Khi bạn khởi chạy Google Maps, giá trị nhận dạng gói sẽ tự động được gửi trong yêu cầu.

Bạn không cần khoá API của Google để sử dụng giao thức URL của Google Maps.

Google Maps cho iOS hỗ trợ Đường liên kết phổ quát trên các thiết bị chạy iOS 9 trở lên.

Nếu URL của bạn khớp với biểu thức chính quy sau và thiết bị đang chạy iOS 9 trở lên, bạn nên cân nhắc sử dụng trực tiếp phương thức openURL:.

(http(s?)://)?
((maps\.google\.{TLD}/)|
 ((www\.)?google\.{TLD}/maps/)|
 (goo.gl/maps/))
.*

Ví dụ:

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"]];

Tổng quan

Lược đồ URL cho phép bạn chạy một ứng dụng iOS gốc từ một ứng dụng iOS khác hoặc một ứng dụng web. Bạn có thể đặt các tuỳ chọn trong URL sẽ được truyền đến ứng dụng đã khởi chạy. Ứng dụng Google Maps cho iOS hỗ trợ các giao thức URL sau:

  • comgooglemaps://comgooglemaps-x-callback:// – Các giao thức này cho phép bạn chạy ứng dụng Google Maps dành cho iOS và thực hiện một trong nhiều thao tác:

    • Hiển thị bản đồ ở một vị trí và mức thu phóng cụ thể.
    • Tìm kiếm vị trí hoặc địa điểm và hiển thị chúng trên bản đồ.
    • Yêu cầu chỉ đường từ một vị trí đến một vị trí khác. Bạn có thể trả về thông tin chỉ đường cho 4 phương thức di chuyển: lái xe, đi bộ, đi xe đạp và đi phương tiện công cộng.
    • Thêm thành phần điều hướng vào ứng dụng.
    • Thông qua iOS 8, hãy đưa ra lệnh gọi lại khi ứng dụng hoàn tất bằng cách sử dụng comgooglemaps-x-callback://. Lệnh gọi lại thường được dùng để đưa người dùng trở lại ứng dụng đã mở Google Maps cho iOS ban đầu. Xin lưu ý rằng trên iOS 9, hệ thống sẽ tự động cung cấp đường liên kết "Quay lại" ở góc trái của thanh trạng thái.
  • comgooglemapsurl:// – Lược đồ này cho phép bạn chạy ứng dụng Google Maps cho iOS bằng một URL bắt nguồn từ trang web Google Maps dành cho máy tính. Điều này có nghĩa là bạn có thể mang đến cho người dùng trải nghiệm gốc trên thiết bị di động thay vì chỉ tải trang web Google Maps.

    • URL ban đầu có thể là cho maps.google.com hoặc google.com/maps, hoặc sử dụng bất kỳ miền cấp cao nhất hợp lệ nào của quốc gia thay vì com. Bạn cũng có thể truyền URL chuyển hướng goo.gl/maps.
    • Bạn có thể đưa ra lệnh gọi lại bằng cách sử dụng các tham số x-sourcex-success với giao thức URL comgooglemapsurl://.

Chạy ứng dụng Google Maps dành cho iOS và thực hiện một chức năng cụ thể

Để chạy ứng dụng Google Maps cho iOS và tuỳ ý thực hiện một trong các chức năng được hỗ trợ, hãy sử dụng giao thức URL có dạng như sau:

comgooglemaps://?parameters

hoặc:

comgooglemaps-x-callback://?parameters

Các thông số được mô tả chi tiết ở phần sau của tài liệu này.

Kiểm tra xem ứng dụng Google Maps có trên thiết bị hay không

Trước khi hiển thị một trong những URL này cho người dùng trong ứng dụng, trước tiên, bạn nên xác minh rằng ứng dụng đã được cài đặt. Ứng dụng của bạn có thể kiểm tra xem có giao thức URL hay không bằng mã sau:

Swift

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)

Objective-C

[[UIApplication sharedApplication] canOpenURL:
    [NSURL URLWithString:@"comgooglemaps://"]];

Ví dụ: để hiển thị bản đồ Công viên Trung tâm ở New York, bạn có thể sử dụng mã sau:

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://");
}

Hiển thị bản đồ

Sử dụng lược đồ URL để hiển thị bản đồ ở mức thu phóng và vị trí đã chỉ định. Bạn cũng có thể phủ các chế độ xem khác lên bản đồ hoặc hiển thị hình ảnh Chế độ xem đường phố.

Tham số

Tất cả các thông số sau đây đều không bắt buộc. Nếu bạn không đặt thông số nào, giao thức URL sẽ chạy ứng dụng Google Maps cho iOS.

  • center: Đây là điểm trung tâm của khung nhìn bản đồ. Được định dạng dưới dạng chuỗi latitude,longitude được phân tách bằng dấu phẩy.
  • mapmode: Đặt loại bản đồ hiển thị. Có thể đặt thành: standard hoặc streetview. Nếu không chỉ định, chế độ cài đặt ứng dụng hiện tại sẽ được sử dụng.
  • views: Bật/tắt các thành phần hiển thị cụ thể. Có thể đặt thành: satellite, traffic hoặc transit. Bạn có thể đặt nhiều giá trị bằng cách sử dụng dấu phẩy phân tách. Nếu bạn chỉ định tham số mà không có giá trị, thì tham số đó sẽ xoá tất cả thành phần hiển thị.
  • zoom: Chỉ định mức thu phóng của bản đồ.

URL mẫu này hiển thị bản đồ được căn giữa ở New York ở mức thu phóng 14 với chế độ xem lưu lượng truy cập bật:

comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic

Bản đồ giao thông ở New York

Sau đây là một số ví dụ khác:

comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Sử dụng lược đồ này để hiển thị cụm từ tìm kiếm ở một vị trí khung nhìn cụ thể.

Tham số

Ngoài các tham số dùng để hiển thị bản đồ, Tìm kiếm còn hỗ trợ tham số q.

  • q: Chuỗi truy vấn cho nội dung tìm kiếm của bạn.

URL mẫu để tìm kiếm "Pizza" xung quanh vị trí đã chỉ định:

comgooglemaps://?q=Pizza&center=37.759748,-122.427135

Pizza ở gần đây

Sau đây là một số ví dụ khác:

comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA&center=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan&center=35.660888,139.73073&zoom=15&views=transit

Hiển thị đường đi

Sử dụng giao thức này để yêu cầu và hiển thị đường đi giữa hai địa điểm. Bạn cũng có thể chỉ định phương thức vận chuyển.

Tham số

  • saddr: Đặt điểm xuất phát cho các lượt tìm kiếm đường đi. Đây có thể là vĩ độ,kinh độ hoặc địa chỉ được định dạng truy vấn. Nếu đó là một chuỗi truy vấn trả về nhiều kết quả, thì kết quả đầu tiên sẽ được chọn. Nếu bạn để trống giá trị này, thì vị trí hiện tại của người dùng sẽ được sử dụng.
  • daddr: Đặt điểm cuối cho các lượt tìm kiếm đường đi. Có cùng định dạng và hành vi như saddr.
  • directionsmode: Phương thức vận chuyển. Có thể đặt thành: driving, transit, bicycling hoặc walking.

URL mẫu hiển thị đường đi bằng phương tiện công cộng giữa Google NYC và Sân bay JFK:

comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit

Chỉ đường phương tiện

Sau đây là một số ví dụ khác:

comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA&center=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&center=37.423725,-122.0877&directionsmode=walking&zoom=17

Chỉ định URL gọi lại

Nếu muốn chỉ định một URL gọi lại, bạn phải sử dụng giao thức URL comgooglemaps-x-callback://. Lược đồ này tuân thủ thông số kỹ thuật x-callback-url. Khi bạn gọi ứng dụng Google Maps cho iOS bằng giao thức này, ứng dụng sẽ hiển thị một nút ở đầu màn hình. Thao tác nhấn vào nút này sẽ thực hiện lệnh gọi lại đến một URL mà bạn đã chỉ định.

Yêu cầu gửi đến comgooglemaps-x-callback:// phải có dạng:

comgooglemaps-x-callback://?parameters

Tham số

Giao thức URL x-callback chấp nhận các tham số giống như giao thức URL comgooglemaps://, với các tham số bổ sung sau. Cả hai tham số đều bắt buộc.

  • x-source – Tên của ứng dụng gửi yêu cầu gọi lại x. Bạn nên dùng tên ngắn.
  • x-success – URL cần gọi khi hoàn tất. Thông thường, đây sẽ là một lược đồ URL cho ứng dụng của riêng bạn, cho phép người dùng quay lại ứng dụng ban đầu.

Xin lưu ý rằng ứng dụng của bạn sẽ phải đăng ký lược đồ URL riêng để có thể phản hồi URL gọi lại.

  1. Đảm bảo rằng ứng dụng của bạn đã đăng ký một lược đồ URL có thể phản hồi yêu cầu gọi lại.
  2. Truyền nhãn cho nút gọi lại trong tham số x-source.
  3. Truyền URL gọi lại trong tham số x-success.

Ví dụ sau đây sẽ khởi chạy ứng dụng Google Maps cho iOS và hiển thị một bản đồ tập trung vào New York. Ứng dụng cũng sẽ hiển thị một nút có nhãn "SourceApp" (Ứng dụng nguồn). Khi người dùng nhấp vào nút "SourceApp" (Ứng dụng nguồn), ứng dụng Google Maps dành cho iOS sẽ đưa ra lệnh gọi lại đến một giao thức URL giả, sourceapp://?resume=true.

comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
   &x-success=sourceapp://?resume=true
   &x-source=SourceApp

Cũng như với giao thức URL comgooglemaps://, trước tiên, bạn nên xác minh rằng ứng dụng Google Maps cho iOS có trên thiết bị và hỗ trợ giao thức URL x-callback. Ứng dụng của bạn có thể kiểm tra xem có giao thức URL hay không bằng mã sau:

Swift

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)

Objective-C

[[UIApplication sharedApplication] canOpenURL:
   [NSURL URLWithString:@"comgooglemaps-x-callback://"]];

Đây là ví dụ về một URL cho phép người dùng quay lại một ứng dụng sau khi tìm kiếm món tráng miệng.

comgooglemaps-x-callback://?q=dessert&center=37.759748,-122.427135
   &x-success=sourceapp://?resume=true
   &x-source=Nom+Nom

Thêm thành phần điều hướng vào ứng dụng

Việc chạy ứng dụng Google Maps cho iOS bằng một yêu cầu chỉ đường là một cách dễ dàng để cho phép người dùng truy cập vào tính năng chỉ đường từng chặng từ ứng dụng của bạn. Bạn có thể sử dụng lược đồ URL comgooglemaps:// hoặc comgooglemaps-x-callback://.

Đoạn mã này cho biết cách sử dụng giao thức comgooglemaps-x-callback:// để yêu cầu chỉ đường, sau đó quay lại ứng dụng của bạn khi người dùng đã sẵn sàng. Mã này sẽ thực hiện những việc sau:

  1. Xác minh rằng giao thức URL comgooglemaps-x-callback:// có sẵn.
  2. Mở ứng dụng Google Maps cho iOS và yêu cầu chỉ đường đến Sân bay JFK ở thành phố New York. Để trống địa chỉ bắt đầu để yêu cầu chỉ đường từ vị trí hiện tại của người dùng.
  3. Thêm một nút có nhãn "AirApp" vào ứng dụng Google Maps dành cho iOS. Nhãn nút được xác định bằng tham số x-source.
  4. Gọi giao thức URL giả định, sourceapp://, khi người dùng nhấp vào nút quay lại.

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.");
}

Chạy ứng dụng Google Maps cho iOS từ URL Google Maps dành cho máy tính

Nếu ứng dụng của bạn có quyền truy cập vào một URL Google Maps hiện có, chẳng hạn như trên một trang web hoặc trong cơ sở dữ liệu, bạn có thể sử dụng lược đồ này để mở URL trong ứng dụng Google Maps dành cho iOS, nhờ đó mang đến cho người dùng trải nghiệm gốc tốt nhất.

  1. Thay thế giao thức http:// hoặc https:// bằng comgooglemapsurl://.
  2. Nếu bạn muốn sử dụng lệnh gọi lại, hãy thêm các tham số x-sourcex-success. Lược đồ này tuân thủ thông số kỹ thuật x-callback-url.

Các định dạng URL trên Google Maps được hỗ trợ

Lược đồ comgooglemapsurl:// hỗ trợ các URL khớp với biểu thức chính quy này, trong đó {TLD} tham chiếu đến bất kỳ miền cấp cao nhất hợp lệ nào của quốc gia. Để rõ ràng hơn, các dấu ngắt dòng được thêm vào:

(http(s?)://)?
((maps\.google\.{TLD}/)|
 ((www\.)?google\.{TLD}/maps/)|
 (goo.gl/maps/))
.*

Kiểm tra xem ứng dụng Google Maps có được cung cấp hay không

Trước tiên, hãy xác minh rằng ứng dụng Google Maps cho iOS có trên thiết bị và hỗ trợ giao thức URL:

Swift

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)

Objective-C

[[UIApplication sharedApplication] canOpenURL:
   [NSURL URLWithString:@"comgooglemapsurl://"]];

Ví dụ

Ví dụ về URL chung trên Google Maps:

URL gốc trên Google Maps:

https://www.google.com/maps/preview/@42.585444,13.007813,6z

Sử dụng lược đồ URL:

comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z

Ví dụ về URL chung trên Google Maps:

URL gốc trên Google Maps:

https://maps.google.com/?q=@37.3161,-122.1836

Sử dụng lược đồ URL:

comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836

Ví dụ về yêu cầu chỉ đường đến Tháp Tokyo bằng lệnh gọi lại x:

URL gốc trên 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

Ví dụ sau đây sẽ khởi chạy ứng dụng Google Maps cho iOS và hiển thị bản đồ có đường đi đến Tháp Tokyo, như được chỉ định trong URL Google Maps ban đầu (ở trên). Ứng dụng cũng sẽ hiển thị một nút có nhãn "SourceApp". Khi người dùng nhấp vào nút "SourceApp" (Ứng dụng nguồn), ứng dụng Google Maps dành cho iOS sẽ thực hiện lệnh gọi lại đến một giao thức URL giả định, 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