Menentukan lokasi tanpa GPS: cara kerja Yandex.Locator. Mengapa tanpa GPS dan bagaimana lagi

Sekarang semakin banyak aplikasi seluler yang bergantung pada geografis. Beberapa tidak masuk akal tanpa mengetahui lokasi pengguna, yang lain menjadi lebih nyaman dengannya. Ini adalah apa yang disebut Layanan Berbasis Lokasi (LBS): navigator, forsquares, foto yang diberi tag geo Instagram, dan bahkan aplikasi pengingat yang dipicu di dekat tempat tertentu, misalnya, di dekat kantor atau toko.

Untuk layanan dan aplikasi Yandex, kami telah membuat implementasi metode penentuan lokasi kami sendiri tanpa GPS - Yandex.Locator. Ini menghemat waktu pengguna dan membuat aplikasi kami sedikit lebih pintar. Di Navigator dan Maps, ini menghilangkan kebutuhan untuk memasukkan titik awal rute, bahkan jika Anda berada di tempat parkir tertutup. Dan ketika memilih film di Poster Film atau produk di Pasar seluler, ada baiknya untuk segera menunjukkan di mana menemukannya di wilayah kota Anda. Dan, tentu saja, ketika mencari kafe dan ATM - ini memungkinkan Anda untuk menunjukkan yang terdekat, bahkan ketika Anda berada di kereta bawah tanah.

Kami membuka teknologi sejak lama sebagai API gratis. Hari ini kami ingin memberi tahu Anda cara kerjanya.

Mengapa tanpa GPS dan bagaimana lagi

Sistem navigasi satelit (GNSS), dalam kasus kami GPS dan GLONASS, adalah metode penentuan-geo paling akurat saat ini. Modul yang sesuai ditemukan di hampir semua smartphone modern. Tapi tidak selalu dan tidak di mana-mana dia bisa memecahkan masalah LBS.

Pertama, pencarian satelit terkadang memakan waktu beberapa menit, dan ada situasi di mana kecepatan penentuan penting bahkan dengan hilangnya akurasi. Misalnya, ketika Anda perlu membuat rute awal di navigator atau check-in. Kedua, satelit biasanya tidak "terlihat" di dalam ruangan atau di bawah tanah. Ketiga, modul GPS tidak ditemukan di setiap ponsel atau tablet, dan hampir tidak ada di laptop. Jadi LBS membutuhkan alternatif.

Dan, tentu saja, ada alternatif - Anda dapat menentukan lokasi dengan menara GSM terdekat, jaringan Wi-Fi, dan bahkan dengan alamat IP. Keakuratan masing-masing metode ini jauh lebih buruk daripada GPS. Tetapi jika Anda menggabungkannya, mereka akan memberikan kualitas yang dapat diterima bersama. Pada saat yang sama, beberapa kelemahan dari satu dinetralkan oleh kemampuan yang lain. Menara GSM hampir ada di mana-mana, tetapi jaringan Wi-Fi tidak. Pada saat yang sama, akurasi deteksi lebih baik melalui Wi-Fi. Oleh karena itu, metode gabungan lebih baik dalam hal kelengkapan dan akurasi daripada masing-masing secara terpisah. Kurang terkenal adalah kenyataan bahwa dua router di bagian kota yang berbeda mungkin memiliki alamat MAC yang sama. Menggabungkan GSM dan Wi-Fi memecahkan tabrakan tersebut. Router ini, kemungkinan besar, akan memiliki menara dengan pengidentifikasi berbeda di dekatnya - lagi pula, kemungkinan kecocokan dalam satu blok jauh lebih kecil daripada di seluruh kota.

Ada beberapa implementasi metode penentuan-geo gabungan semacam itu di dunia. Dan tampaknya pertanyaan pertama yang dihadapi semua pengembang adalah - di mana mendapatkan informasi tentang lokasi jaringan Wi-Fi dan menara seluler?

Basis lokasi jaringan

Dalam dilema beli atau bangun, kami akhirnya memilih yang terakhir. Alasan utamanya adalah bahwa dengan data dan algoritme Anda sendiri, jauh lebih mudah untuk mengontrol kualitas hasil. Pengguna Yandex.Maps seluler membantu kami mengumpulkan informasi.

Ketika kami mulai mengembangkan Locator, sudah ada ratusan ribu orang di jalan-jalan kota dengan Yandex.Maps dihidupkan di ponsel mereka. Dengan persetujuan pengguna, aplikasi terus-menerus mentransmisikan koordinat GPS - Yandex.Traffic dibangun berdasarkan informasi ini. Kami berpikir bahwa bersama dengan ini, aplikasi dapat menandai stasiun pangkalan mana yang dilayani ponsel dalam koordinat ini, jaringan Wi-Fi mana yang terlihat (sementara, tentu saja, tanpa menghubungkan ke jaringan itu sendiri - agar tidak menimbulkan risiko privasi) .

Seseorang tidak perlu melakukan apa pun untuk berpartisipasi dalam crowdsourcing semacam itu - cukup gunakan aplikasinya. Seperti halnya koordinat, data di jaringan Wi-Fi dan stasiun GSM di sekitarnya tidak dipersonalisasi. Mereka praktis tidak "menimbang" apa pun, dan baterai dari transmisi mereka, karenanya, tidak terkuras lebih cepat.

Dengan demikian, pengguna mulai saling membantu:


Beberapa, dengan penerima GPS di telepon mereka, mengetahui lokasi jaringan yang tepat dan mengirimkan informasi ke Yandex. Lainnya, yang tidak memiliki modul GPS, mengirim daftar jaringan yang mereka lihat saat ini, dan menerima sebagai tanggapan perkiraan lokasi mereka di peta.

Basis data telah dikumpulkan dan diperbarui secara berkala. Dan di sini kita dihadapkan pada masalah berikutnya.

Jaringan "Bergerak"

Pengalaman menunjukkan bahwa pengidentifikasi menara seluler terus berubah - nomor yang ada di pusat kota kemarin mungkin ada di pinggiran besok. Router Wi-Fi juga dapat bergerak - bersama pemiliknya. Dan ternyata dengan setiap gerakan, Anda perlu membatalkan sebagian data yang terlihat.

Ini adalah bagaimana kami berhasil memecahkan masalah dengan memindahkan kedua menara dan router secara bersamaan. Pengguna menerima permintaan untuk menentukan lokasi beserta data tentang jaringan mana yang dilihatnya. Jika daftar jaringan berisi satu yang terlihat di berbagai bagian kota, algoritme memperhitungkan berapa banyak sinyal darinya yang terakumulasi di setiap distrik dan usia yang terakhir. Kami menyebut setiap akumulasi padat sinyal dari jaringan Wi-Fi atau menara seluler sebagai "awan". Semakin banyak sinyal yang ada di cloud dan semakin segar sinyal tersebut, semakin dapat dipercaya. Jawabannya masing-masing akan menjadi yang terbesar dan paling segar. Dan awan di mana tidak ada sinyal selama lebih dari sebulan dianggap usang - bahkan jika awan yang lebih baru belum muncul untuk jaringan ini di area lain.

radius awan

Karena posisi ditentukan kira-kira, Anda tidak dapat menunjukkan titik - Anda perlu menggambar lingkaran (setelah semua, sinyal radio didistribusikan secara merata ke segala arah tanpa adanya gangguan). Meskipun, jika Anda melihat gambar sebenarnya dari sinyal, paling sering itu adalah elips. Lagi pula, pengendara paling sering menggunakan Kartu seluler. Jejak GPS mereka tetap berada di jalan, dan praktis tidak ada sinyal yang diterima dari halaman dan, terlebih lagi, dari gedung.

Agar jawaban seakurat mungkin, jari-jari lingkaran harus sekecil mungkin. Jika Anda hanya menggambar lingkaran di sekitar semua titik sinyal dari jaringan tertentu, radiusnya akan terlalu besar. Mate membantu menguranginya. statistik. Kepadatan sinyal tunduk pada distribusi normal, yaitu aturan tiga sigma berlaku. 99,7% poin jatuh di sekitar radius ini.

Kami memutuskan untuk melangkah lebih jauh dan secara eksperimental memilih faktor sigma yang meminimalkan radius sebanyak mungkin, tetapi mempertahankan akurasi yang dapat diterima. Ini berhasil karena dalam banyak kasus pengguna melihat beberapa jaringan. Artinya, area "terbuka" dengan menurunkan koefisien kemungkinan besar akan tumpang tindih dengan awan lain.

Sinyal non-awan

Sayangnya, tidak semua sinyal GPS dari pengguna dapat dengan mudah dikompilasi ke dalam awan. Ternyata jika Anda menempatkan pada peta semua sinyal dari satu jaringan, selain "elips", itu akan berisi titik dan garis. Oleh karena itu, ini adalah sinyal tunggal yang sangat jauh dari akumulasi sinyal dari jaringan yang sama, dan trek GPS yang sangat panjang (yaitu, rantai sinyal GPS).

"Penyendiri" muncul, misalnya, ketika seseorang bergerak di kereta bawah tanah. Telepon kehilangan kontak dengan sel di satu stasiun, dan ketika keluar ke stasiun lain, telepon masih berpikir bahwa itu dilayani oleh sel itu. Locator menyaring sinyal tersebut. Selain itu, kami telah menetapkan ambang batas minimum untuk awan agar tidak bergantung pada kluster sinyal yang terlalu sedikit.

Trek GPS yang panjang muncul, misalnya, ketika seseorang mengendarai mobil melintasi kota. Telepon "menyeret" pengidentifikasi menara dari awal rute dan melaporkan bahwa ia diduga melihatnya sepanjang jalan. Diketahui bahwa BTS memiliki jangkauan terbatas, sehingga Locator juga menyaring trek GPS tersebut. Trek, yang panjangnya sesuai dengan jangkauan menara, tetap ada. Mereka biasanya terlihat di daerah di mana ada sedikit data. Di sana mereka menjadi rantai awan kecil.

Kami menganggap sinyal tunggal, awan kecil, dan trek panjang sebagai "kebisingan". Ketika pengguna melihat satu jaringan tunggal yang hanya kita ketahui sinyalnya, ia menerima respons bahwa lokasinya tidak dapat ditentukan. Kami menganggap ini lebih benar daripada memberikan hasil yang salah, menurut perkiraan kami.

Ketika data langka, ada kesulitan lain dengan menggabungkan semua sinyal menjadi satu awan. Kebetulan sinyal dari menara dari satu kota juga datang dari kota lain. Kehadiran pengidentifikasi jaringan GSM dari kode area lokasi - LAC (Kode Area Lokasi) membantu kami. Karena menara dengan kode yang sama harus berdekatan sesuai standar, Locator mulai memberikan bobot yang diremehkan pada awan yang "di kota yang salah" (yaitu di antara awan dengan LAC yang berbeda).

Meningkatkan akurasi definisi...

... melalui jaringan GSM
Sekali waktu, aplikasi hanya memiliki akses ke informasi tentang satu stasiun pangkalan, meskipun telepon paling sering melihat beberapa. Setelah platform Android muncul, aplikasi dapat belajar melihat semuanya (kecuali untuk koneksi dalam standar 3G, yang memungkinkan hanya satu menara seluler yang dikenali). Lokasi mulai ditentukan dengan lebih akurat - tidak lagi oleh satu awan, tetapi oleh kumpulan beberapa awan. Ternyata untuk banyak awan, Anda dapat menggunakan pendekatan yang sama seperti untuk satu. Jari-jari dihitung dari deviasi akar-rata-rata-kuadrat dari sinyal yang termasuk dalam kumpulan awan, dan pusatnya dihitung dari rata-rata koordinatnya.
... melalui jaringan Wi-Fi
Saat ponsel cerdas berada dalam jangkauan beberapa jaringan Wi-Fi, ia tidak hanya dapat melaporkan daftarnya, tetapi juga kekuatan sinyal masing-masing. Kami menggunakan pengetahuan tentang kekuatan ini untuk memperbaiki pusat lingkaran di mana pengguna berada. Kami mulai menangguhkan mata air imajiner ke pusat-pusat awan yang diamati - semakin kuat sinyalnya, semakin kencang. Dan ujung bebasnya adalah untuk terhubung. Titik di mana mata air ini seimbang adalah pusat yang halus.

Kualitas yang dihasilkan

Pertama, beberapa patah kata tentang bagaimana kami menilai kualitas solusi kami. Seperti yang telah disebutkan, dari pengguna yang memiliki modul GPS di perangkat mereka, Latitude menerima koordinat dan daftar jaringan yang dilihat perangkat. Untuk menilai kualitas, pertama-tama ia menentukan perkiraan lokasi, dengan fokus hanya pada jaringan ini. Dan kemudian memeriksa apakah koordinat sebenarnya dari pengguna berada dalam lingkaran yang disarankan oleh Locator.

Dengan menggunakan teknik ini, kami mendapatkan angka-angka berikut:

  • untuk 83% permintaan per hari, lokasi ditentukan dengan benar - koordinat GPS perangkat jatuh ke area yang dinamai oleh Pencari Lokasi
  • 14% sinyal - dengan kesalahan:
    • 7% - kesalahan kurang dari 100 meter
    • 5,6% - dari 100 meter hingga beberapa kilometer
    • 1,4% - Pencari salah menurut kota
  • sisa 3% permintaan menerima tanggapan "Lokasi tidak ditemukan"


Bisakah Anda mendapatkan kualitas yang lebih baik? Ya. Keuntungan dari metode ini adalah bahwa dengan kematangan algoritma tertentu, cukup mengumpulkan lebih banyak data untuk menentukan lokasi dengan lebih akurat. Dan ini cukup mudah, karena jumlah jaringan Wi-Fi bertambah, dan jumlah pengguna aplikasi kami bertambah.

Tetapi ada batasan teknologi:

  • jika telepon hanya melaporkan sekitar satu menara GSM - radius minimum adalah beberapa ratus meter di dalam kota, dan beberapa kilometer di luar kota
  • jika ponsel melihat beberapa menara, pusatnya dapat ditentukan lebih akurat, tetapi radiusnya hampir tidak dapat dikurangi
  • jika jaringan Wi-Fi terlihat - radius minimum adalah 10 meter

Banyaknya perhitungan

Untuk merespons pengguna dengan cepat, Anda perlu mempersiapkan seluruh respons terlebih dahulu, atau setidaknya sebagian besar. Setiap malam, sebuah cluster berdasarkan sistem komputasi terdistribusi YAMR kami mengumpulkan sinyal yang diterima hingga kemarin, menerima "awan" yang siap untuk ditanggapi. Pada saat permintaan, Pencari Lokasi hanya perlu menggabungkannya dengan benar. Jadi terabyte "sinyal mentah" dikompresi menjadi 1,5-2 GB jawaban siap pakai, yang dapat dengan mudah masuk ke dalam memori. Dan persiapan respons hampir selalu sesuai dengan 1 ms, dan setiap server di cluster dapat menahan 10 ribu RPS.

Dan agar durasi perhitungan harian tidak tumbuh secara linier dengan pertumbuhan sejarah sinyal GPS, kami telah mencapai "additivitas" awan. Sekarang cukup menyimpan hanya beberapa indikator untuk setiap cloud, dan tidak perlu memproses ulang seluruh riwayat lama setiap hari.

Ternyata tidak efektif menyiapkan jawaban yang lebih lengkap. Jika Anda mengelompokkan setiap kombinasi jaringan ke dalam awan terpisah, Anda mendapatkan ledakan kombinatorial. Volume jawaban yang sudah jadi bertambah beberapa kali lipat, dan jika jaringan tumpang tindih, lebih banyak perhitungan diperlukan untuk menyiapkan jawabannya.

Analogi

Layanan lokasi tanpa GPS, seperti yang telah kami katakan, tidak hanya tersedia dari Yandex. Pengembang dapat menghubungi penyedia komersial (seperti Altergeo di Rusia dan Skyhook Wireless di dunia), atau menggunakan API platform seluler atau browser.

Secara umum, database semacam itu dapat dirakit dengan tiga cara:

  • berkeliling kota-kota yang menarik dengan mobil, memindai jaringan, dan kemudian berkeliling lagi secara berkala untuk memperbarui basis data
  • buat aplikasi seluler massal (misalnya, Yandex.Maps)
  • buat platform seluler (seperti iOS atau Android)
Tetapi hanya pengembang aplikasi yang bergantung pada geo yang harus memilih di antara solusi yang berbeda, dan pengguna "hidup" dengan pilihan ini. Dengan tidak adanya metode perbandingan terpadu, seseorang harus memperhatikan akurasi penentuan (jari-jari "toleransi" dan persentase kesalahan) di wilayah yang diminati. Tambahkan tanda

Koordinat geografis adalah informasi paling berharga yang dapat diperoleh pengembang web dari pengunjung situs. Memiliki kecerdasan yang cepat dan mengetahui beberapa trik, Anda dapat mengetahui banyak tentang seseorang berdasarkan lokasinya: alamat, tempat apa yang dekat, foto yang diambil di daerahnya, apa yang dikeluhkan tetangga dan kedalaman sungai terdekat.

PERINGATAN

Semua informasi disediakan untuk tujuan informasi saja. Baik dewan redaksi maupun penulis tidak bertanggung jawab atas segala kemungkinan kerugian yang disebabkan oleh materi artikel ini.

PENDAHULUAN

Jika Anda masih belum mengumpulkan data lokasi dari pengguna Anda, berarti Anda belum membaca artikel ini dan tidak tahu bagaimana menggunakan informasi tersebut untuk keuntungan Anda. Mari kita lihat beberapa kasus penggunaan untuk menunjukkan bagaimana geodata dapat berguna, dan kemudian beralih ke praktik.

Usecase 1. "Saya akan mencari tahu berdasarkan IP"

Katakanlah Anda memiliki troll di blog Anda yang secara teratur meninggalkan komentar kasar. Jika Anda mengumpulkan informasi tentang pengunjung Yandex.Locator, maka Anda dapat dengan mudah mengetahui bahwa seseorang ini berada di ujung timur Lenin Street, tempat tinggal seorang pria yang tidak menyenangkan dari universitas Anda. Dan jika Anda beruntung, dengan mengajukan permintaan ke API Vkontakte, Anda akan menemukan foto terakhirnya.

Usecase 2. Geomarketing

Yandex.Direct telah lama menggunakan penargetan geografis bertarget untuk iklannya. Kesadaran mengabaikan pengumuman "Jaringan pizzeria di Moskow". Dan hampir tidak mungkin untuk melewati tautan "Jalan Pizza Rochdelskaya, rumah 14" (di seberang jalan dari Anda).
Anda dapat menggunakan geodata untuk mempromosikan produk dan layanan. Jika seseorang saat ini merasakan efek tekanan atmosfer rendah, maka ada kemungkinan dia ingin membeli pil untuk meningkatkan vitalitas.

Usecase 3. Fungsionalitas yang menyenangkan

Ada ruang lingkup yang sangat besar untuk kreativitas. Kami menempatkan tema desain "malam" di situs setelah matahari terbenam untuk pengguna. Kami menunjukkan padanya selfie terbaru dari gadis-gadis yang diambil sejauh 10 km. Berdasarkan iklim dan kedalaman badan air, kami menentukan jenis ikan apa yang ditemukan di daerah tersebut. Ada banyak pilihan.

Usecase 4. Riset audiens "Ilmiah"

Hasil survei online anonim dapat jauh lebih berguna jika, selain jawaban, lokasi geografis responden dicatat.

Menarik? Kemudian pergi ke depan.

Mendapatkan koordinat

Data GPS dapat diperoleh dengan menggunakan JavaScript dan HTML5 Geolocation API. Namun perlu diingat: Anda hanya dapat mengetahui lokasi pasti pengguna dengan persetujuannya. Dia harus mengungkapkannya dengan menjawab ya ke jendela pop-up, apakah mengizinkan situs saat ini untuk mengetahui lokasinya.

Contoh kode dalam JS asli:

// Masukkan alamat ke dalam variabel

untuk menampilkan teks var posText = document.getElementById("positionText"); function getLocation () (if (navigator.geolocation) (// Jika pengguna telah mengizinkan, tentukan lokasinya dan proses nilai yang dihasilkan menggunakan fungsi ShowPosition navigator.geolocation.getCurrentPosition (showPosition);) else (// Jika tidak, tampilkan pesan kesalahan posText.innerHTML = "Browser ini tidak dapat menentukan lokasi";)) fungsi showPosition (posisi) (// Menampilkan lintang dan bujur pada halaman posText.innerHTML = "Lintang:" + position.coords.latitude + "
Bujur: "+ position.coords.longitude;)

Yandex.Locator

Jika pengguna tidak ingin membagikan informasi GPS secara sukarela, maka semuanya tidak akan hilang. Ada alat keren Yandex.Locator. Keakuratan penentuan rata-rata adalah 300 m. Ini menghitung di mana orang tersebut berada, menurut informasi berikut:

  • sinyal jaringan seluler;
  • Sinyal jaringan akses Wi-Fi;
  • Alamat IP perangkat seluler.

Jauh lebih sulit untuk diimplementasikan ke dalam proyek daripada API Geolokasi HTML5. Sebelum mengirim permintaan ke Yandex.Locator API, situs atau aplikasi seluler harus menerima kunci akses dan mengetahui banyak detail tentang pengguna. Jika pengunjung menggunakan Internet melalui koneksi seluler, maka Anda perlu mengetahui ID seluler dan kekuatan sinyal, jika melalui Wi-Fi - kekuatan sinyal dan alamat MAC titik akses.

Lihat panduan pengembang untuk instruksi yang tepat.

Data foto exif

Anda juga dapat menemukan koordinat GPS dalam metadata gambar yang diambil dengan kamera digital. Informasi tentang foto dapat dibaca tanpa persetujuan pengguna. Anda hanya perlu membuatnya mengunduhnya. Kemudian perpustakaan exif-js atau alat sisi server untuk membaca exif-data datang untuk menyelamatkan:

  • PHP memiliki fungsi built-in read_exif_data();
  • ada perpustakaan exifr untuk Ruby;
  • Python memiliki Paket ExifRead 2.0;
  • untuk C ++ - easyexif.

Basis GeoIP

Anda dapat mencoba menemukan alamat IP pengguna di database GeoIP, tetapi ini murni seni ramal tapak tangan. Mahal dan ketinggalan jaman. Dalam pengalaman saya, database ini penuh dengan ketidakakuratan dan tidak dapat dipercaya. Dan persentase mereka yang menggunakan VPN cukup signifikan.

Kami menyusun berkas

Setelah menerima koordinat geografis di tangan, mari kita mulai mengumpulkan informasi. Untuk setiap item, kami akan membuat permintaan dengan parameter ke salah satu API dan mengurai respons XML / JSON yang dikembalikan.

Pertama, kami mengetahui alamat pengguna dengan akurasi jalan.

Cari tahu alamat pengguna

Ini dapat dilakukan oleh Yandex.Geocoder (Anda dapat bekerja dengannya tanpa otorisasi OAuth sebelumnya).

Sintaks kueri:

Http://geocode-maps.yandex.ru/1.x/?geocode=36.3630,56.0000

Itu mudah. Dua parameter diteruskan ke permintaan: garis lintang (56.000) dan garis bujur (36.3630).

Server akan mengembalikan respons dalam format XML (lihat tangkapan layar). Kami tertarik pada bidang-bidang berikut:

  • AdressDetails-> Country-> AdressLine - baris teks dengan alamat lengkap pengguna;
  • AdressDetails-> Country-> countryName - negara;
  • AdressDetails-> AdministrativeArea-> AdministrativeAreaName - wilayah;
  • AdressDetails-> SubAdministrativeArea-> SubAdministrativeAreaName - area;
  • AdressDetails-> Locality-> LocalityName - lokalitas;
  • AdressDetails-> ThoroughFare-> ThoroughFareName - jalan.

Yandex.Geocoder tidak mengungkapkan alamat dengan nomor rumah. Tetapi jika Anda sedikit tegang dan mengingat kurikulum sekolah, maka Anda dapat menghitungnya. Dalam satu derajat garis lintang 111 km 111 m. Dengan garis bujur, semuanya sedikit lebih rumit. Bagaimanapun, diameter Bumi bervariasi dengan garis lintang. Oleh karena itu, bujur dihitung menggunakan rumus berikut (6371 adalah jari-jari Bumi):

6371 * (Matematika :: PI / 180) * cos (lintang * Matematika :: PI / 180)

Bagaimana pengetahuan ini membantu menghitung alamat pasti pengguna? Begitulah:

  1. Menemukan jalan menggunakan Yandex.Geocoder.
  2. Kami mengirim permintaan untuk menerima koordinat geografis yang tepat dari sebuah rumah di jalan ini:
    http://geocode-maps.yandex.ru/1.x/?geocode=perm, jalan Yablochkova, 2
  3. Kami membaca nilai dari respons server.
  4. Mengetahui panjang derajat lintang dan bujur, kami menghitung jarak dari titik yang diinginkan ke rumah ini.
  5. Kami membuka Yandex.Maps dan menggunakan penggaris untuk mencari tahu rumah mana yang memiliki koordinat geografis pengguna.

Semua pengguna tidak dapat dideteksi dengan cara ini, tetapi beberapa sangat diperlukan. Hal utama adalah tidak membuat kesalahan dalam perhitungan.

Tampilan jalan Google

Koordinat dapat ditemukan di Google Maps dan mengaktifkan tampilan jalan. Lucu melihat rumah atau kantor seseorang yang secara terang-terangan mengkritik foto-foto pondok musim panas yang baru saja direnovasi di blog Anda.

Foto sekitar

Sekarang mari kita cari foto yang diambil di dekat tempat X. Bagaimana ini dilakukan, mari kita analisis menggunakan contoh VKontakte API:

Https://api.vk.com/method/photos.search.xml?lat=38.60000&long=35&count=100&radius=500

  • lintang - lintang;
  • panjang - bujur;
  • count - jumlah foto yang dikembalikan oleh permintaan;
  • radius - jari-jari lingkaran di sekitar titik tertentu di mana foto akan diambil.

Berikut adalah bidang respons yang kami minati:

  • src, src_big - tautan ke foto;
  • dibuat - tanggal foto dibuat di unixtimestamp;
  • owner_id - ID pemilik foto.

Mengetahui ID pemilik, Anda dapat membuka halamannya atau mengumpulkan informasi menggunakan VK API yang sama:

Https://api.vk.com/method/getProfiles.xml?uids=111111&fields=last_name,first_name,sex,age

  • uids - ID pemilik dipisahkan dengan koma;
  • field – field yang ingin kita terima di respon.

Daftar lengkap bidang

Yandex mengumumkan peluncuran antarmuka program (API) dari layanan geolokasi Yandex.Locator. API menjadi tersedia untuk pengembang pihak ketiga dalam mode pengujian pada tanggal 25 Februari 2011. Proyek mungkin keluar dari tahap pengujian "dalam beberapa bulan".

Menurut Yandex, API memungkinkan penentuan lokasi ponsel atau laptop yang tidak memiliki penerima GPS sendiri, yang membuka peluang bagi pengembang untuk membuat layanan dan aplikasi berdasarkan gagasan geolokasi. Sebagai contoh program semacam itu, Yandex mengutip penambahan geotag ke foto atau pesan yang dipublikasikan di jejaring sosial atau di Twitter.

Pekerjaan API geografis Yandex, seperti solusi serupa, didasarkan pada penggunaan data di lokasi stasiun pangkalan seluler terdekat dan titik akses Wi-Fi.

Alat tersebut, menurut Oleg Gerasimov, kepala departemen pengembangan layanan seluler Yandex, sekarang digunakan di beberapa produk mesin telusurnya sendiri (di Yandex.Maps seluler, Yandex seluler, dan Yandex.Bar untuk Firefox dan Internet Explorer). Proyek pihak ketiga berdasarkan API geografis Yandex belum ada, namun, ketika muncul, Yandex akan dapat menambah pengetahuannya tentang lokasi pengguna Yandex.Maps audiens pengguna aplikasi pihak ketiga.

Dalam perjanjian pengguna, Yandex memperingatkan pengguna API - pengembang aplikasi bahwa "syarat untuk menggunakan layanan dalam aplikasi seluler adalah transmisi trek GPS (data tentang pergerakan pengguna)" ke Yandex. Jika suatu aplikasi membuat lebih dari 1.000 permintaan per hari, kondisi ini menjadi tanggung jawab pengembangnya.

Dalam Panduan Pengembang untuk Pencari Lokasi, Yandex menyebut pemosisian berdasarkan sinyal hotspot Wi-Fi sebagai metode yang paling akurat. Dalam hal ini, posisi perangkat seluler dapat ditentukan dengan akurasi 150 meter.

Dokumen yang sama mencatat bahwa penentuan posisi menggunakan stasiun pangkalan komunikasi seluler tergantung pada kepadatannya: di pusat kota, di mana mereka berada dengan kepadatan maksimum, bisa 200-500 meter, di pinggiran - 1,5-2 ribu meter.

Menariknya, pada 2010, pesaing Yandex, Google, terlihat terlalu longgar di jaringan Wi-Fi orang lain ketika mobil Google Street View tertangkap mengumpulkan lalu lintas dari jaringan nirkabel terbuka di beberapa negara di Asia, Amerika, dan Eropa.

Oleg Gerasimov menjelaskan kepada CNews bahwa, tidak seperti Yandex, yang hanya menggunakan pengidentifikasi titik akses di alat geografisnya, Google memindai semua informasi yang dikirimkan melalui jaringan terbuka, yang tidak akan dilakukan Yandex. Meskipun sebagian besar jaringan pribadi menggunakan protokol enkripsi, pengidentifikasinya ditransmisikan dalam mode terbuka, yang cukup untuk tujuan pemosisian, kata Yandex.

Alat penentuan posisi, mirip dengan Yandex, memiliki pesaing langsung Google dan Mail.ru. Layanan Google Latitude (dilokalkan di Rusia sebagai "Google Locator") memiliki API terbuka dan digunakan secara luas di berbagai layanan web dan aplikasi.

Publikasi serupa