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 bạn 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 lượt tìm kiếm, nhận yêu cầu chỉ đường và hiển thị chế độ xem bản đồ. Khi bạn chạy Google Maps, mã nhận dạng gói của bạn sẽ tự động được gửi theo yêu cầu.

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, 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 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 các thao tác:

    • Hiển thị bản đồ tại một vị trí và mức thu phóng đã 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ề thông tin đườ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 thành phần điều hướng vào ứng dụng.
    • 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 quay 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 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 cách sử dụng URL được lấy 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ể là của 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ệ bất kỳ thay cho com. Bạn cũng có thể chuyển vào goo.gl/maps URL chuyển hướng.
    • 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://.

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ể

Để khởi 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ố đượ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 của ứ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 của mình, 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 để đảm bảo rằng lược đồ URL có sử dụng được bằng đoạn mã sau 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 đoạn 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ột vị trí và mức thu phóng được chỉ định. Bạn cũng có thể phủ các chế độ xem khác lên trên bản đồ của mình hoặc hiển thị hình ảnh trong Chế độ xem đường phố.

Tham số

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

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

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

Một số ví dụ khác 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 ở một vị trí cụ thể trong khung nhìn.

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 ví dụ này cho việc tìm kiếm "Pizza" xung quanh vị trí được chỉ định:

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

Pizza lân cận

Một số ví dụ khác 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

Hiển thị chỉ đường

Sử dụng lượ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 thức di chuyển.

Tham số

  • saddr: Đặt điểm bắt đầu cho các lượt tìm kiếm chỉ đường. Đây có thể là vĩ độ,kinh độ hoặc địa chỉ được định dạng truy vấn. Nếu đó là 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 giá trị này được để trống, 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 chỉ đường. 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 chuyển tuyế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ụ khác 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 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 bạn đã chỉ định.

Yêu cầu đối với comgooglemaps-x-callback:// phải ở dạng:

comgooglemaps-x-callback://?parameters

Tham số

Giao thức URL gọi lại x 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 đây. Bạn phải cung cấp cả hai thông số.

  • x-source – Tên của ứng dụng đang gửi yêu cầu gọi lại x. Ư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 riêng bạn, cho phép người dùng quay lại ứng dụng gốc.

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 vào tham số x-success.

Ví dụ sau sẽ khởi chạy ứng dụng Google Maps dành cho iOS và hiển thị một bản đồ tập trung tại New York. Ứng dụng cũng sẽ hiển thị một nút được gắn 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 một 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

Cũng giống như với lược đồ URL comgooglemaps://, trước tiên, bạn cần xác minh rằng ứng dụng Google Maps dành cho iOS đã có sẵn trên thiết bị và có hỗ trợ lược đồ URL gọi lại x. Ứng dụng của bạn có thể kiểm tra để đảm bảo rằng lược đồ URL đang hoạt động bằng đoạn 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

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 để cho phép người dùng chỉ đường từng chặng trong ứng dụng của bạn. Bạn có thể sử dụng giao thứ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 và 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 có thể sử dụng lược đồ URL comgooglemaps-x-callback://.
  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. Hãy để 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 một nút được gắn nhãn "AirApp" vào ứng dụng Google Maps dành cho iOS. Nhãn của nút này đượ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.");
}

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

Nếu ứng dụng của bạn có quyền truy cập vào 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, từ đó mang lại 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. Giao thức này tuân thủ quy cách x-callback-url.

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

Giao thứ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 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 để cho rõ ràng:

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

Kiểm tra phạm vi cung cấp của ứ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ó 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 trên Google Maps:

URL Google Maps gốc:

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 Google Maps gốc:

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:

URL Google Maps gốc:

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ị một bản đồ có chỉ đường đến Tháp Tokyo, như đã chỉ định trong URL gốc của Google Maps (ở trên). Ứng dụng cũng sẽ hiển thị một nút được gắn 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ẽ gửi lệnh gọi lại đến một 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