Lebih
Bagaimana untuk memohon iPhone Maps untuk Arah dengan Lokasi Saat ini sebagai Alamat Awal
Aku tahu itu's mungkin untuk memulai iPhone aplikasi peta dengan memanggil openURL
pada google maps URL dengan parameter saddr
dan daddr
dengan lokasi string atau Lat/Panjang (lihat contoh di bawah).
Tapi aku'm-tanya apakah itu's mungkin untuk membuat alamat mulai menjadi "Saat ini Lokasi" peta penunjuk sehingga saya dapat menggunakan Maps aplikasi's lokasi penanganan kode. Pencarian Google saya telah cukup sia-sia.
Misalnya:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@", myLatLong, latlong]]];
Kecuali dengan sesuatu untuk memanggil lokasi saat ini bookmark di tempat myLatLong
.
72
16
Pra iOS 6
Anda perlu menggunakan Inti Lokasi untuk mendapatkan lokasi saat ini, tapi dengan lat/panjang pasangan, anda bisa mendapatkan Peta rute anda dari sana, ke alamat jalan atau lokasi. Seperti:
Akhirnya, jika anda ingin menghindari menggunakan CoreLocation secara eksplisit menemukan lokasi saat ini, dan ingin menggunakan
@"http://maps.google.com/maps?saddr=Current+Lokasi&daddr=%@"
url sebaliknya, maka lihat ini link yang saya berikan di komentar di bawah ini untuk cara melokalisasi Saat ini+Lokasi string. Namun, anda mengambil keuntungan dari orang lain yang tidak berdokumen fitur, dan sebagai Jason McCreary poin di bawah ini, hal itu mungkin tidak bekerja andal di masa depan pers.Update untuk iOS 6
Awalnya, Maps digunakan Google maps, tapi sekarang, Apple dan Google memiliki aplikasi peta.
1) Jika anda ingin rute menggunakan Google Maps app, penggunaan yang comgooglemaps skema URL:
2) Untuk menggunakan Apple Maps, anda dapat menggunakan
MKMapItem
kelas untuk iOS 6. Lihat Apel API docs di siniPada dasarnya, anda akan menggunakan sesuatu seperti ini, jika routing ke tujuan koordinat (
latlong
):Dalam rangka mendukung iOS 6+ dan pra iOS 6 di kode yang sama, saya'd sarankan menggunakan sesuatu seperti ini kode bahwa Apple telah di
MKMapItem
API doc halaman:Ini akan berasumsi bahwa anda Xcode Dasar SDK iOS 6 (atau iOS Terbaru).
Ini bekerja, tapi hanya ketika iPhone/iPod bahasa diatur dalam inggris. Jika anda ingin mendukung bahasa lain, anda'll harus menggunakan string lokal untuk mencocokkan Peta penunjuk nama.
Ini bekerja pada iPhone:
Anda dapat menggunakan preprocessor #define seperti:
untuk memahami versi iOS anda. Kemudian, saya dapat menggunakan kode ini untuk mendukung iOS 6, terlalu:
Karena sandboxing, anda don't memiliki akses ke aplikasi Peta's bookmark.
Sebaliknya, gunakan Core Location untuk menentukan lokasi saat ini pada diri sendiri. Kemudian menggunakan lokasi (lat dan panjang) dalam URL anda membangun untuk membuka Peta.
Saya sarankan memeriksa CMMapLauncher, sebuah perpustakaan mini yang saya dibangun untuk meluncurkan Apple, Google, dan lain iOS aplikasi pemetaan dengan spesifik pemetaan permintaan. Dengan CMMapLauncher, kode untuk mendapatkan petunjuk dalam pertanyaan anda akan sama:
Seperti yang anda lihat, hal ini juga merangkum memeriksa versi yang diperlukan antara iOS 6 & lain-lain.
Hei sejak iOS6 adalah keluar!
Apple melakukan sesuatu yang luar biasa dalam cara yang buruk (dari sudut pandang saya).
Apple's maps yang diluncurkan dan untuk perangkat yang menjalankan iOS 6 anda tidak harus menggunakan
maps.google.com/?q=
jika anda ingin iDevice untuk membuka native app Rencana. Sekarang itu akan menjadimaps.apple.com/?q=
.Sehingga pengembang don't harus banyak bekerja, ramah maps.apple.com server mengarahkan semua non-perangkat Apple untuk maps.google.com sehingga perubahan transparan.
Dengan cara ini kita developpers hanya perlu mengganti semua google query string untuk apple yang. Ini adalah apa yang saya suka banyak.
Saya harus menerapkan bahwa functionnality hari ini jadi aku melakukannya. Tapi aku merasa aku seharusnya tidak hanya menulis ulang setiap url berbaring di situs mobile untuk target Apple's maps server jadi saya pikir saya'd hanya mendeteksi iDevices server-side dan melayani apple url hanya untuk mereka. Saya pikir saya'd share.
I'm menggunakan PHP jadi saya menggunakan opensource Ponsel Mendeteksi perpustakaan : http://code.google.com/p/php-mobile-detect/
Hanya menggunakan
isiPad
pseudo metode boolean getter dan anda're dilakukan, anda tidak akan mengkonversi google ke apple ;-)Cheers!
Jika anda don't ingin meminta izin lokasi dan don't memiliki lat dan lng, menggunakan berikut.
Untuk ios5, Lokasi Saat ini harus dalam bahasa yang benar. Saya menggunakan LocalizedCurrentLocation dari posting ini http://www.martip.net/blog/localized-current-location-string-for-iphone-apps
Untuk ios6, saya menggunakan CLGeocoder untuk mendapatkan letak dan kemudian membuka peta dengan lokasi saat ini.
Ingat untuk menambahkan CoreLocation.kerangka dan MapKit.kerangka
Untuk iOS6, apple docs merekomendasikan menggunakan setara maps.apple.com Skema URL
jadi gunakan
bukan
untuk menjadi kompatibel kode akan
ada seluruh beban yang didukung lainnya parameter untuk Apple Maps skema URL : Apple Skema URL Referensi
anda dapat menggunakan versi iOS deteksi macro jika anda memiliki kode kondisional di bagian lain dari kode anda. iOS versi macro
Solusi nyata dapat ditemukan di sini. Z5 Konsep Pengembangan iOS Code Snippet
Ini hanya membutuhkan sedikit pengkodean.
Anda dapat melakukan ini sekarang html dari url pada perangkat mobile anda hanya. Berikut ini's contoh. Hal yang keren adalah jika anda mengubah ini menjadi sebuah qr code anda memiliki cara seseorang mendapatkan petunjuk arah ke anda dari mana pun mereka berada hanya dengan pemindaian itu pada ponsel mereka.
Untuk iOS6 Maps App, anda hanya dapat menggunakan URL yang sama diposting di atas
http://maps.google.com/maps?saddr=%f,%f&daddr=%@
tapi bukan URL Google maps, anda menggunakan url dengan
maps://
yang mengakibatkan URL berikut:maps://saddr=%f,%f&daddr=%@.
Menggunakan 'Saat ini Lokasi' doesn't tampaknya bekerja, jadi saya tinggal dengan koordinat.
Antother hal yang baik:'s kompatibel: Pada iOS5, meluncurkan aplikasi Google Maps.
Dengan versi terbaru dari Google Maps, hanya menghilangkan
sadr
parameter:https://developers.google.com/maps/documentation/ios/urlscheme
Saran saya akan menggunakan OpenInGoogleMaps-iOS ini adalah aplikasi yang up-to-date pilihan (bulan November 2015), mendukung kakao instalasi dan anda siap untuk pergi dalam beberapa klik.
Menginstal menggunakan:
pod "OpenInGoogleMaps"
Memerlukan dalam header file menggunakan:
#import "OpenInGoogleMapsController.h"
Sampel kode di bawah ini:
Jika anda don't memberikan lokasi sumber, itu akan mengambil lokasi saat ini sebagai sumber. Coba kode di bawah ini-
mari urlString = "http://maps.apple.com/maps?daddr=\(destinationLocation.latitude),\(destinationLocation.longitude)&dirflg=d" }
UIApplication.bersama.openURL(URL(string: urlString)!)
Saya menjawab ini di thread yang berbeda. (Lokasi saat ini doesn't bekerja dengan Apple Maps IOS 6). Anda perlu untuk mendapatkan koordinat lokasi saat ini pertama, kemudian menggunakannya untuk membuat peta url.