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 để chạy Google Maps khi có URL Google Maps.

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

Bạn không cần khoá API của Google để sử dụng lược đồ URL của Google Maps.

Google Maps dành 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, thì 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 ứng dụng iOS gốc từ một ứng dụng iOS khác hoặc ứng dụng web. Bạn có thể đặt các tuỳ chọn trong URL sẽ được chuyển đến ứng dụng đã khởi chạy. Ứng dụng Google Maps dành cho iOS hỗ trợ các lược đồ URL sau:

  • comgooglemaps://comgooglemaps-x-callback:// – Các lượ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 số các thao tác sau:

    • Hiển thị bản đồ ở một vị trí và mức thu phóng được chỉ định.
    • 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ừ vị trí này đến vị trí khác. Bạn có thể trả về đường đi cho 4 phương thức di chuyển: lái xe, đi bộ, đi xe đạp và phương tiện công cộng.
    • Thêm tính năng điều hướng vào ứng dụng của bạn.
    • Thông qua iOS 8, hãy thực hiện 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 dành 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 "Back to" (Quay lại) ở góc bên 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 dành cho iOS bằng cách sử dụng 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ể cung cấp 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 gốc có thể dành cho maps.google.com hoặc google.com/maps hoặc sử dụng miền quốc gia cấp cao nhất hợp lệ thay vì com. Bạn cũng có thể chuyển URL chuyển hướng goo.gl/maps.
    • Bạn có thể thực hiện lệnh gọi lại bằng cách sử dụng tham số x-sourcex-success với lược đồ URL comgooglemapsurl://.

Khởi 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 dành 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 lược đồ URL có dạng sau:

comgooglemaps://?parameters

hoặc:

comgooglemaps-x-callback://?parameters

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

Kiểm tra phạm vi cung cấp ứng dụng Google Maps trên thiết bị

Trước khi hiển thị một trong các 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 lược đồ URL có dùng được bằng mã sau đây hay không:

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

Đang hiển thị bản đồ

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

Thông số

Tất cả các tham số sau đây là không bắt buộc. Nếu không có tham số nào được đặt, lược đồ URL sẽ khởi chạy ứng dụng Google Maps dành 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 một chuỗi latitude,longitude được phân tách bằng dấu phẩy.
  • mapmode: Đặt loại bản đồ được hiển thị. Có thể đặt thành: standard hoặc streetview. Nếu không được chỉ định, chế độ cài đặt hiện tại của ứng dụng sẽ được sử dụng.
  • views: Bật/tắt các chế độ xem 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ân cách dấu phẩy. Nếu tham số được chỉ định mà không có giá trị, thì tham số sẽ xoá tất cả khung hiển thị.
  • zoom: Chỉ định mức thu phóng của bản đồ.

URL ví dụ này hiển thị bản đồ ở giữa New York ở mức thu phóng 14 với chế độ xem giao thông trên:

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

Bản đồ giao thông New York

Một số ví dụ bổ sung là:

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ác truy vấn tìm kiếm trong một vị trí khung nhìn được chỉ định.

Thông 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 bạn tìm kiếm.

URL ví dụ này để tìm kiếm “Pizza” xung quanh vị trí được chỉ định:

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

Pizza gần đây

Một số ví dụ bổ sung là:

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

Đang hiển thị đường đi

Hãy sử dụng giao thức này để yêu cầu và hiển thị chỉ đường giữa hai vị trí. Bạn cũng có thể chỉ định phương tiện đi lại.

Thông số

  • saddr: Đặt điểm bắt đầu cho lượt tìm kiếm đường đi. Đó 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 để 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 kết thúc cho lượt tìm kiếm đường đi. Có cùng định dạng và hành vi với saddr.
  • directionsmode: Phương thức di chuyển. Có thể đặt thành: driving, transit, bicycling hoặc walking.

URL ví dụ hiển thị chỉ đường phương tiện 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

Một số ví dụ bổ sung là:

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 một 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 lược đồ URL comgooglemaps-x-callback://. Giao thức này tuân thủ quy cách x-callback-url. Khi bạn gọi ứng dụng Google Maps dành cho iOS bằng lượ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 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

Thông số

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

  • x-source — Tên của ứng dụng gửi yêu cầu x-callback. Bạn nên ưu tiên 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 chính 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 của lệnh gọi lại.

  1. Đảm bảo rằng ứng dụng của bạn đã đăng ký một giao thứ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 vào tham số x-success.

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

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

Tương tự như với lược đồ URL comgooglemaps://, trước tiên bạn phải xác minh rằng ứng dụng Google Maps dành cho iOS có sẵn trên thiết bị và hỗ trợ lược đồ URL x-callback. Ứng dụng của bạn có thể kiểm tra để đảm bảo rằng lược đồ URL có sẵn 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ề URL cho phép người dùng quay lại ứ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 tính năng điều hướng vào ứng dụng của bạn

Việc khởi chạy ứng dụng Google Maps dành cho iOS với yêu cầu chỉ đường là một cách dễ dàng để cấp cho người dùng quyền 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 lượ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. Hãy xác minh rằng lược đồ URL comgooglemaps-x-callback:// đang hoạt động.
  2. Chạy ứ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ỉ xuất phát để yêu cầu chỉ đường từ vị trí hiện tại của người dùng.
  3. Thêm nút có nhãn "AirApp" vào ứng dụng Google Maps dành cho iOS. Nhãn nút do tham số x-source xác định.
  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.");
}

Khởi chạy ứng dụng Google Maps dành cho iOS từ URL Google Maps dành cho máy tính để bàn

Nếu ứng dụng của bạn có quyền truy cập vào một URL có sẵn trên Google Maps, chẳng hạn như trên trang web hoặc trong cơ sở dữ liệu, thì 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 lại cho người dùng trải nghiệm gốc tốt nhất.

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

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

Giao thức comgooglemapsurl:// hỗ trợ các URL khớp với biểu thức chính quy này, trong đó {TLD} đề cập đến mọi miền quốc gia cấp cao nhất hợp lệ. Dấu ngắt dòng được thêm vào để đảm bảo sự rõ ràng:

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

Kiểm tra phạm vi cung cấp ứng dụng Google Maps

Trước tiên, hãy xác minh rằng ứng dụng Google Maps dành cho iOS có sẵn trên thiết bị và hỗ trợ lượ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 chung trên Google Maps:

URL gốc của 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 chung trên Google Maps:

URL gốc của 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 của 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 sẽ khởi chạy ứng dụng Google Maps dành cho iOS và hiển thị bản đồ có thông tin chỉ đường đến Tháp Tokyo, như được chỉ định trong URL Google Maps gốc (ở trên). Ứng dụng này 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 Google Maps dành cho iOS sẽ thực hiện lệnh gọi lại đến lượ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