Setelah pengguna menekan tombol di aplikasi saya, saya ingin membuka aplikasi Google Map standar dan untuk menunjukkan lokasi tertentu. Bagaimana saya bisa melakukannya? (tanpa menggunakan com.google.android.maps.MapView
)
android
google-maps
LA_
sumber
sumber
lat: 59.915494, lng: 30.409456
itu mengembalikan posisi yang salah.String.format("geo:%f,%f", latitude, longitude)
kembali string dengan koma:geo:59,915494,30,409456
.Anda juga dapat menggunakan http://maps.google.com/maps sebagai URI Anda
atau Anda dapat memastikan bahwa aplikasi Google Maps hanya digunakan, ini menghentikan filter maksud (dialog) agar tidak muncul, dengan menggunakan
seperti itu:
atau Anda dapat menambahkan label ke lokasi dengan menambahkan string di dalam tanda kurung setelah setiap set koordinat seperti:
Untuk menggunakan lokasi saat ini pengguna sebagai titik awal (sayangnya saya belum menemukan cara untuk memberi label lokasi saat ini) maka cukup turunkan
saddr
parameter sebagai berikut:Untuk kelengkapan, jika pengguna tidak memiliki aplikasi peta yang diinstal maka itu akan menjadi ide yang baik untuk menangkap ActivityNotFoundException, seperti yang dinyatakan oleh @TonyQ, maka kita dapat memulai aktivitas lagi tanpa pembatasan aplikasi peta, kita bisa yakin bahwa kita tidak akan pernah sampai ke Toast pada akhirnya karena browser internet adalah aplikasi yang valid untuk meluncurkan skema url ini juga.
EDIT:
Untuk petunjuk arah, maksud navigasi sekarang didukung dengan google.navigation
sumber
Menggunakan format String akan membantu tetapi Anda harus berhati-hati dengan lokal. Di Jerman float akan dipisahkan dengan koma, bukan titik.
Menggunakan
String.format("geo:%f,%f",5.1,2.1);
bahasa Inggris lokal hasilnya akan"geo:5.1,2.1"
tetapi dengan lokal Jerman Anda akan mendapatkan"geo:5,1,2,1"
Anda harus menggunakan bahasa Inggris untuk mencegah perilaku ini.
Untuk mengatur label ke titik geografis Anda dapat memperluas geografi Anda dengan menggunakan:
!!! tapi hati-hati dengan ini geo-uri masih dalam pengembangan http://tools.ietf.org/html/draft-mayrhofer-geo-uri-00
sumber
Periksa halaman ini dari google:
http://developer.android.com/guide/appendix/g-app-intents.html
Anda dapat menggunakan URI formulir
untuk membuka penampil peta Google dan mengarahkannya ke lokasi.
sumber
Terkadang jika tidak ada aplikasi yang terkait dengan geo: protocal, Anda bisa menggunakan try-catch untuk mendapatkan ActivityNotFoundException untuk menanganinya.
Ini terjadi ketika Anda menggunakan beberapa emulator seperti androVM yang tidak diinstal google map secara default.
sumber
Anda juga dapat menggunakan cuplikan kode di bawah ini, dengan cara ini keberadaan google maps diperiksa sebelum niat dimulai.
Referensi: https://developers.google.com/maps/documentation/android-api/intents
sumber
Untuk menuju ke lokasi DENGAN PIN di atasnya, gunakan:
untuk tanpa pin, gunakan ini di uri:
sumber
Saya memiliki contoh aplikasi tempat saya menyiapkan maksud dan hanya meneruskan CITY_NAME dalam maksud ke aktivitas penanda peta yang akhirnya menghitung garis bujur dan garis lintang oleh Geocoder menggunakan CITY_NAME.
Di bawah ini adalah potongan kode memulai aktivitas penanda peta dan MapsMarkerActivity lengkap.
Tautan kedaluwarsa jadi saya telah menyisipkan kode lengkap di atas tetapi untuk berjaga-jaga jika Anda ingin melihat kode lengkap maka tersedia di: https://github.com/gosaliajigar/CSC519/tree/master/CSC519_HW4_89753
sumber
Ini ditulis di Kotlin, itu akan membuka aplikasi peta jika ditemukan dan menempatkan titik dan membiarkan Anda memulai perjalanan:
Ganti
requireActivity()
dengan AndaContext
.sumber