Saya berhasil mendapatkan garis lintang dan bujur pengguna menggunakan geolokasi berbasis HTML.
//Check if browser supports W3C Geolocation API
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
}
//Get latitude and longitude;
function successFunction(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
}
Saya ingin menampilkan nama kota, sepertinya satu-satunya cara untuk mendapatkannya adalah dengan menggunakan API geolokasi terbalik. Saya membaca dokumentasi Google untuk geolokasi terbalik, tetapi saya tidak tahu bagaimana mendapatkan output di situs saya.
Saya tidak tahu bagaimana cara menggunakan ini: "http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+long+'&sensor=true"
untuk menampilkan nama kota pada halaman.
Bagaimana saya bisa mencapai ini?
javascript
html
geolocation
lisovaccaro
sumber
sumber
Jawaban:
Anda akan melakukan hal seperti itu menggunakan Google API.
Harap perhatikan bahwa Anda harus menyertakan pustaka google maps agar ini berfungsi. Google geocoder mengembalikan banyak komponen alamat sehingga Anda harus menebak siapa yang akan memiliki kota tersebut.
"administrative_area_level_1" biasanya apa yang Anda cari, tetapi terkadang lokalitas adalah kota yang Anda cari.
Bagaimanapun - detail lebih lanjut tentang tipe respons google dapat ditemukan di sini dan di sini .
Di bawah ini adalah kode yang harus melakukan trik:
sumber
Pendekatan lain untuk ini adalah dengan menggunakan layanan saya, http://ipinfo.io , yang mengembalikan nama kota, wilayah, dan negara berdasarkan alamat IP pengguna saat ini. Berikut ini contoh sederhana:
Berikut adalah contoh JSFiddle yang lebih terperinci yang juga mencetak informasi respons lengkap, sehingga Anda dapat melihat semua detail yang tersedia: http://jsfiddle.net/zK5FN/2/
sumber
Menggunakan geolokasi html5 membutuhkan izin pengguna. Jika Anda tidak menginginkan ini, cari pelacak eksternal seperti https://geolocation-db.com IPv6 didukung. Tidak ada batasan dan permintaan tidak terbatas diizinkan.
Contoh
Untuk contoh javascript murni, tanpa menggunakan jQuery, lihat jawaban ini .
sumber
Anda bisa mendapatkan nama kota, negara, nama jalan, dan geodata lainnya menggunakan Google Maps Geocoding API
dan untuk menampilkan data ini pada halaman menggunakan jQuery
sumber
Berikut adalah versi kerja yang diperbarui untuk saya yang akan mendapatkan Kota / Kota, Sepertinya beberapa bidang dimodifikasi dalam respons json. Merujuk jawaban sebelumnya untuk pertanyaan ini. (Terima kasih kepada Michal & satu referensi lagi: Tautan
sumber
geolocator.js dapat melakukannya. (Saya penulisnya).
Mendapatkan Nama Kota (Alamat Terbatas)
Mendapatkan Informasi Alamat Lengkap
Contoh di bawah ini akan terlebih dahulu mencoba API Geolokasi HTML5 untuk mendapatkan koordinat yang tepat. Jika gagal atau ditolak, itu akan mundur ke Geo-IP look-up. Setelah mendapat koordinat, itu akan membalikkan geocode koordinat ke alamat.
Ini menggunakan Google API secara internal (untuk pencarian alamat). Jadi sebelum panggilan ini, Anda harus mengonfigurasi geolocator dengan kunci Google API Anda.
Geolocator mendukung geo-location (via HTML5 atau pencarian IP), geocoding, pencarian alamat (reverse geocoding), jarak & durasi, informasi zona waktu dan banyak lagi fitur ...
sumber
Setelah beberapa pencarian dan penyatuan beberapa solusi berbeda bersama dengan barang-barang saya sendiri, saya datang dengan fungsi ini:
sumber
Anda dapat menggunakan https://ip-api.io/ untuk mendapatkan Nama kota. Ini mendukung IPv6.
Sebagai bonus, ini memungkinkan untuk memeriksa apakah alamat ip adalah node, proxy publik, atau spammer.
Kode Javascript:
Kode HTML
Output JSON
sumber
Seperti @PirateApp disebutkan dalam komentarnya, itu secara eksplisit bertentangan dengan Google Maps API Licensing untuk menggunakan Maps API seperti yang Anda inginkan.
Anda memiliki sejumlah alternatif, termasuk mengunduh basis data Geoip dan menanyakannya secara lokal atau menggunakan layanan API pihak ketiga, seperti ipdata.co layanan saya .
ipdata memberi Anda geolokasi, organisasi, mata uang, zona waktu, kode panggilan, bendera, dan data status Tor Exit Node dari alamat IPv4 atau IPv6.
Dan dapat diukur dengan 10 titik akhir global yang masing-masing mampu menangani> 10.000 permintaan per detik!
Biola; https://jsfiddle.net/ipdata/6wtf0q4g/922/
sumber
Ini adalah satu lagi jalannya .. Menambahkan lebih banyak ke jawaban yang diterima mungkin lebih komprehensif .. tentu saja beralih-tas akan membuatnya terlihat elegan.
sumber
Inilah fungsi mudah yang bisa Anda gunakan untuk mendapatkannya. Saya menggunakan aksioma untuk membuat permintaan API, tetapi Anda dapat menggunakan hal lain.
sumber