Ý định của Google Maps dành cho Android

Ứng dụng Google Maps dành cho Android hiển thị một số ý định mà bạn có thể sử dụng để chạy Google Maps ở chế độ hiển thị, tìm kiếm, chỉ đường hoặc Chế độ xem đường phố. Nếu bạn muốn nhúng bản đồ vào ứng dụng của mình, vui lòng tham khảo Hướng dẫn bắt đầu sử dụng API Google Maps dành cho Android.

Tổng quan

Ý định cho phép bạn bắt đầu hoạt động trong một ứng dụng khác bằng cách mô tả một hành động đơn giản bạn muốn thực hiện (chẳng hạn như "hiển thị bản đồ" hoặc "chỉ đường đến sân bay") trong đối tượng Intent. Ứng dụng Google Maps dành cho Android hỗ trợ một số ý định, cho phép bạn chạy ứng dụng Google Maps và thực hiện một trong 4 thao tác sau:

  1. Hiển thị bản đồ ở một vị trí và mức thu phóng được chỉ định.
  2. Tìm kiếm vị trí hoặc địa điểm và hiển thị chúng trên bản đồ.
  3. 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 3 phương thức di chuyển: lái xe, đi bộ, đi xe đạp.
  4. Hiển thị hình ảnh toàn cảnh trong Chế độ xem đường phố của Google.

Trang này mô tả các ý định mà bạn có thể dùng trong ứng dụng Google Maps dành cho Android. Để biết thêm thông tin về Ý định và bộ lọc ý định hoặc Ý định phổ biến trên nền tảng Android, hãy tham khảo tài liệu dành cho nhà phát triển Android.

Yêu cầu ý định

Để chạy Google Maps bằng ý định, trước tiên, bạn phải tạo đối tượng Intent, chỉ định thao tác, URI và gói của đối tượng đó.

  • Hành động: Tất cả các ý định trên Google Maps đều được gọi là một Hành động xem – ACTION_VIEW.
  • URI: Ý định của Google Maps sử dụng URL được mã hoá để chỉ định một hành động mong muốn, cùng với một số dữ liệu để thực hiện hành động đó.
  • Package (Gói): Việc gọi setPackage("com.google.android.apps.maps") sẽ đảm bảo rằng ứng dụng Google Maps dành cho Android sẽ xử lý Intent. Nếu bạn chưa đặt gói, hệ thống sẽ xác định ứng dụng nào có thể xử lý Intent. Nếu có nhiều ứng dụng, người dùng có thể được hỏi xem họ muốn sử dụng ứng dụng nào.

Sau khi tạo Intent, bạn có thể yêu cầu hệ thống chạy ứng dụng liên quan theo một số cách. Một phương thức phổ biến là chuyển Intent đến phương thức startActivity(). Hệ thống sẽ khởi chạy ứng dụng cần thiết – trong trường hợp này là Google Maps – và khởi động Activity tương ứng.

Java

// Create a Uri from an intent string. Use the result to create an Intent.
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988");

// Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");

// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);

Kotlin

// Create a Uri from an intent string. Use the result to create an Intent.
val gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988")

// Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps")

// Attempt to start an activity that can handle the Intent
startActivity(mapIntent)

Nếu hệ thống không thể xác định một ứng dụng có thể phản hồi ý định, thì ứng dụng của bạn có thể gặp sự cố. Vì lý do này, trước tiên bạn nên xác minh rằng một ứng dụng nhận được cài đặt trước khi hiển thị một trong các ý định này cho người dùng.

Để xác minh rằng một ứng dụng có thể nhận ý định, hãy gọi resolveActivity() trên đối tượng Intent. Nếu kết quả không rỗng, thì có ít nhất một ứng dụng có thể xử lý ý định và có thể gọi startActivity(). Nếu kết quả là null, bạn không nên sử dụng ý định và nếu có thể, bạn nên tắt tính năng gọi ý định.

Java

if (mapIntent.resolveActivity(getPackageManager()) != null) {
  ...
}

Kotlin

mapIntent.resolveActivity(packageManager)?.let {
  ...
}

Ví dụ: để hiển thị bản đồ của San Francisco, bạn có thể sử dụng mã sau:

Java

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
  startActivity(mapIntent);
}

Kotlin

val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
mapIntent.resolveActivity(packageManager)?.let {
  startActivity(mapIntent)
}

Chuỗi truy vấn được mã hoá URL

Tất cả các chuỗi được chuyển đến Ý định của Google Maps phải được mã hoá URI. Ví dụ: chuỗi "1st & Pike, Seattle" sẽ trở thành 1st%20%26%20Pike%2C%20Seattle. Bạn có thể mã hoá dấu cách trong chuỗi bằng %20 hoặc thay thế bằng dấu cộng (+).

Bạn có thể sử dụng phương thức android.net.Uri parse() để mã hoá các chuỗi của mình. Ví dụ:

Java

Uri gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"));

Kotlin

val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"))

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

Sử dụng ý định geo: để cho thấy bản đồ ở một vị trí và mức thu phóng cụ thể.

geo:latitude,longitude?z=zoom

Thông số

  • latitudelongitude đã đặt điểm trung tâm của bản đồ.
  • z tuỳ ý đặt mức thu phóng ban đầu của bản đồ. Các giá trị được chấp nhận nằm trong khoảng từ 0 (toàn thế giới) đến 21 (các toà nhà riêng lẻ). Giới hạn trên có thể thay đổi tuỳ thuộc vào dữ liệu bản đồ có sẵn tại vị trí đã chọn.

Ví dụ

Java

// Creates an Intent that will load a map of San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Creates an Intent that will load a map of San Francisco
val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Tìm kiếm vị trí

Sử dụng ý định này để hiển thị các truy vấn tìm kiếm trong một khung nhìn được chỉ định. Khi truy vấn có một kết quả duy nhất, bạn có thể sử dụng ý định này để hiển thị ghim tại một địa điểm hoặc địa chỉ cụ thể, chẳng hạn như địa danh, doanh nghiệp, đối tượng địa lý hoặc thị trấn.

geo:latitude,longitude?q=query
geo:0,0?q=my+street+address
geo:0,0?q=latitude,longitude(label)

Thông số

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

  • q xác định(các) địa điểm cần làm nổi bật trên bản đồ. Tham số q là bắt buộc cho tất cả các yêu cầu Tìm kiếm. Công cụ này chấp nhận vị trí dưới dạng tên hoặc địa chỉ của địa điểm. Chuỗi này phải được mã hoá URL, do đó, bạn nên chuyển đổi một địa chỉ như "City Hall, New York, NY" thành Thành phố+Hall,New+New York,NY.

  • label cho phép bạn đặt nhãn tùy chỉnh tại một địa điểm được xác định trên bản đồ. Bạn phải chỉ định label ở dạng Chuỗi.

Nếu bạn đáp ứng một cụm từ tìm kiếm chung chung, Google Maps sẽ cố gắng tìm một vị trí gần vĩ độ/lng mà bạn đã chỉ định phù hợp với tiêu chí của bạn. Nếu không có vị trí nào được chỉ định, Google Maps sẽ cố gắng tìm các danh sách ở gần đó. Ví dụ:

Java

// Search for restaurants nearby
Uri gmmIntentUri = Uri.parse("geo:0,0?q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

// Search for restaurants in San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Search for restaurants nearby
val gmmIntentUri = Uri.parse("geo:0,0?q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

// Search for restaurants in San Francisco
val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4194?q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Tìm kiếm nhà hàng ở San Francisco

Bạn có thể làm sai lệch kết quả tìm kiếm hơn nữa bằng cách chỉ định tham số thu phóng cùng với chuỗi truy vấn. Trong ví dụ dưới đây, việc thêm mức thu phóng 10 sẽ cố gắng tìm các nhà hàng ở cấp thành phố thay vì ở gần đó.

Java

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Nếu bạn tìm kiếm một địa chỉ cụ thể, một ghim tại vị trí đó sẽ xuất hiện.

Java

Uri gmmIntentUri = Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Ví dụ ở trên đặt vĩ độ/lng của 0,0, nhưng chuyển địa chỉ dưới dạng chuỗi truy vấn. Khi tìm kiếm một vị trí rất cụ thể, bạn không cần phải sử dụng vĩ độ và kinh độ. Tuy nhiên, nếu không biết địa chỉ chính xác, bạn có thể tìm cách làm sai lệch kết quả tìm kiếm bằng cách chỉ định một toạ độ. Ví dụ: việc tìm kiếm địa chỉ "Main Street" sẽ trả về quá nhiều kết quả.

Java

// Searching for 'Main Street' will return too many results
Uri gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street");

Kotlin

// Searching for 'Main Street' will return too many results
val gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street")

Việc thêm vĩ độ/lng vào URI ý định sẽ làm lệch kết quả theo một khu vực cụ thể:

Java

// Searches for 'Main Street' near San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=101+main+street");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Searches for 'Main Street' near San Francisco
val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4194?q=101+main+street")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Khi biết cụm từ tìm kiếm của mình sẽ trả về một giá trị duy nhất, có thể bạn sẽ muốn chuyển một nhãn không bắt buộc. Nhãn phải được chỉ định ở dạng Chuỗi và sẽ xuất hiện bên dưới điểm đánh dấu bản đồ. Lưu ý rằng nhãn chỉ có sẵn khi q được chỉ định làm toạ độ vĩ độ/lng.

Java

// Display a label at the location of Google's Sydney office
Uri gmmIntentUri = Uri.parse("geo:0,0?q=Google+Sydney@-33.8666,151.1957");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Display a label at the location of Google's Sydney office
val gmmIntentUri =
  Uri.parse("geo:0,0?q=-33.8666,151.1957(Google+Sydney)")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Thay vì sử dụng địa chỉ đường phố hoặc vĩ độ/kinh độ, bạn có thể hiển thị ghim tại một vị trí đã biết bằng cách sử dụng mã cộng.

Java

// Display the location of Google, San Francisco using a global plus code.
Uri gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX");
// Equivalently, define the same location using a local plus code
gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco");
// Construct and use the Intent as in the examples above

Kotlin

// Display the location of Google, San Francisco using a global plus code.
var gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX")
// Equivalently, define the same location using a local plus code
gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco")
// Construct and use the Intent as in the examples above

Chạy tính năng đi theo chỉ dẫn từng chặng

Hãy sử dụng ý định này để chạy tính năng chỉ đường của Google Maps theo thông tin đường đi từng chặng đến địa chỉ hoặc toạ độ đã chỉ định. Đường đi luôn được cung cấp từ vị trí hiện tại của người dùng.

google.navigation:q=a+street+address
google.navigation:q=latitude,longitude

Thông số

  • q: Đặt điểm cuối cho các lượt tìm kiếm điều hướng. Giá trị này có thể là vĩ độ, kinh độ hoặc địa chỉ theo định dạng của 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.

  • mode đặt phương thức di chuyển. Chế độ là không bắt buộc và có thể thiết lập thành một trong các chế độ sau:

    • d để lái xe (mặc định)
    • b để đi xe đạp
    • l cho xe mô tô hai bánh
    • w để đi bộ
  • avoid thiết lập các tính năng mà tuyến đường cần tránh. Bạn không bắt buộc phải tránh và có thể đặt thành một hoặc nhiều tuỳ chọn:

    • t cho phí cầu đường
    • h cho đường cao tốc
    • f cho phà

Ví dụ

Intent dưới đây sẽ yêu cầu chỉ đường từng chặng đến Vườn thú Taronga, ở Sydney, Úc:

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Đường đi đến Vườn thú Taronga

Nếu không muốn trả phí cầu đường hoặc đi phà, bạn có thể yêu cầu định tuyến để tránh những điều đó.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Nếu muốn tập thể dục, bạn có thể yêu cầu chỉ đường đi xe đạp.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Nếu muốn đi xe mô tô hai bánh có động cơ, bạn có thể yêu cầu chỉ đường bao gồm các đường hẹp và đường nhỏ không dành cho ô tô. intent dưới đây trả về một tuyến ở Ấn Độ.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Hiển thị ảnh toàn cảnh trong Chế độ xem đường phố

Sử dụng ý định google.streetview để chạy Chế độ xem đường phố của Google. Chế độ xem đường phố của Google cung cấp chế độ xem toàn cảnh từ các vị trí được chỉ định trong khu vực bao phủ. Ngoài ra, chúng tôi còn cung cấp Ảnh toàn cảnh do người dùng đóng gópBộ sưu tập đặc biệt của Chế độ xem đường phố.

google.streetview:cbll=latitude,longitude&cbp=0,bearing,0,zoom,tilt
google.streetview:panoid=id&cbp=0,bearing,0,zoom,tilt

Thông số

Tất cả URI google.streetview phải bao gồm một tham số cbll hoặc panoid.

  • cbll chấp nhận vĩ độ và kinh độ dưới dạng các giá trị được phân tách bằng dấu phẩy (46.414382,10.013988). Ứng dụng sẽ hiển thị ảnh toàn cảnh được chụp gần nhất với vị trí này. Vì hình ảnh trong Chế độ xem đường phố được làm mới định kỳ và ảnh có thể được chụp từ những vị trí hơi khác nhau mỗi lần, nên có thể vị trí của bạn sẽ chụp nhanh một ảnh toàn cảnh khác khi hình ảnh được cập nhật.

  • panoid là một mã ảnh toàn cảnh cụ thể. Google Maps sẽ sử dụng mã ảnh toàn cảnh nếu bạn chỉ định cả panoidcbll. Mã nhận dạng ảnh toàn cảnh có sẵn cho ứng dụng Android từ đối tượng StreetViewPanoramaLocation.

  • cbp là một tham số không bắt buộc, giúp điều chỉnh hướng ban đầu của máy ảnh. Tham số cbp nhận 5 giá trị được phân tách bằng dấu phẩy, tất cả đều là không bắt buộc. Các giá trị quan trọng nhất là giá trị thứ hai, thứ tư và thứ năm đặt góc phương vị, thu phóng và độ nghiêng tương ứng. Các giá trị đầu tiên và thứ ba không được hỗ trợ. Bạn nên đặt các giá trị này thành 0.

    • bearing: cho biết hướng la bàn của máy ảnh theo độ theo chiều kim đồng hồ tính từ Bắc. Đúng là phía bắc là 0, phía đông là 90, phía nam là 180, phía tây là 270. Các giá trị được truyền đến giá trị góc phương vị sẽ gói; tức là tất cả các điểm 0°, 360° và 720° theo cùng một hướng. Thuộc tính vòng bi được định nghĩa là giá trị thứ hai trong số 5 giá trị được phân tách bằng dấu phẩy.
    • zoom: Thiết lập mức thu phóng của máy ảnh. Mức thu phóng mặc định được đặt ở 0. Thu phóng 1 sẽ phóng to gấp đôi. Mức thu phóng bị giới hạn trong khoảng từ 0 đến mức thu phóng tối đa cho ảnh toàn cảnh hiện tại. Điều này có nghĩa là bất kỳ giá trị nào nằm ngoài phạm vi này sẽ được đặt thành giá trị gần nhất nằm trong phạm vi. Ví dụ: giá trị -1 sẽ được đặt thành 0. Thu phóng là giá trị thứ tư trong số năm giá trị được phân tách bằng dấu phẩy.
    • tilt: chỉ định góc lên hoặc xuống của máy ảnh. Phạm vi từ -90 đến 0 đến 90, trong đó 90 nhìn thẳng xuống, 0 0 ở giữa đường chân trời và -90 nhìn thẳng lên.

Ví dụ

Dưới đây là một số ví dụ về cách sử dụng ý định trong Chế độ xem đường phố.

Java

// Displays an image of the Swiss Alps
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

// Uses a PanoID to show an image from Maroubra beach in Sydney, Australia
Uri gmmIntentUri = Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

// Opens Street View between two Pyramids in Giza. The values passed to the
// cbp parameter will angle the camera slightly up, and towards the east.
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Displays an image of the Swiss Alps
val gmmIntentUri =
  Uri.parse("google.streetview:cbll=46.414382,10.013988")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

// Uses a PanoID to show an image from Maroubra beach in Sydney, Australia
val gmmIntentUri =
  Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

// Opens Street View between two Pyramids in Giza. The values passed to the
// cbp parameter will angle the camera slightly up, and towards the east.
val gmmIntentUri =
  Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Kim tự tháp trong Chế độ xem đường phố