Persyaratan: Konversi koordinat Baidu ke koordinat WGS84 Implementasi: Pertama-tama, izinkan saya memperkenalkan banyak sistem koordinat yang rumit di Tiongkok, seperti yang kita semua tahu, GPS Amerika Serikat menggunakan koordinat WGS84, tetapi di Tiongkok, untuk alasan keamanan, ketika peta dirilis dan diterbitkan, 84 koordinat tersebut tidak linier dan bias, dan koordinat yang diperoleh disebut sistem koordinat GCJ02, umumnya dikenal sebagai koordinat Mars. Selain itu, banyak perusahaan peta domestik, mungkin karena kebutuhan bisnis atau beberapa alasan persaingan bisnis, telah melakukan penyimpangan nonlinier berdasarkan koordinat Mars dan memperoleh sistem koordinat mereka sendiri. Baidu adalah perusahaan seperti itu. Baidu melakukan bias nonlinier sekunder BD-09 berdasarkan GCJ02 dan memperoleh sistem koordinat Baidu sendiri. Ini mungkin bermanfaat bagi perusahaan Baidu sendiri, tetapi bagi kami pengembang, ini sangat menjengkelkan. Berikut ini adalah pengantar singkat tentang sistem koordinat yang digunakan oleh beberapa penyedia layanan peta di Cina:
Saat ini, Baidu menyediakan API untuk konversi koordinat, http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude ke dalamnya • dari: Sistem koordinat sumber (0 untuk koordinat GPS asli, 2 untuk koordinat Google) • ke: Koordinat yang dikonversi (4 adalah milik Baidu, seolah-olah ini harus 4) • x: Presisi • y: Garis lintang Hasil yang dikembalikan adalah string json: {"error":0,"x":"MTIxLjUwMDIyODIxNDk2","y":"MzEuMjM1ODUwMjYwMTE3"} • kesalahan: adalah tanda kesalahan bit, dan "0" menunjukkan OK • x: Akurasi sistem koordinat Baidu (enkripsi Base64) y: Garis lintang sistem koordinat Baidu (enkripsi Base64); Saya mengumpulkan arti dari dua angka ini secara online:
http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude 1: Koordinat sudut yang diperoleh oleh peralatan GPS; 2: Koordinat metrik yang diperoleh dengan GPS, koordinat yang digunakan dalam peta sogou; 3: Koordinat yang digunakan untuk Google Maps, SOSO Maps, Aliyun Maps, MapABC Maps, dan AMAP Maps 4:3 Koordinat meter yang sesuai dengan koordinat peta dalam daftar 5: Koordinat bujur dan lintang yang digunakan oleh Baidu Maps 6: Koordinat metrik yang digunakan oleh Baidu Maps 7: koordinat peta bilah peta; 8:51 Koordinat peta Tidak ada default adalah 1, yang merupakan koordinat yang diperoleh oleh perangkat GPS Untuk jenis koordinat tujuan ada dua opsi: 5, 6. 5: BD09LL (koordinat lintang dan bujur Baidu), 6: BD09MC (koordinat lintang dan bujur dalam 100 derajat meter); Tidak Defaultnya adalah 5, yaitu bd09ll (koordinat Baidu)
Semua di atas digunakan untuk mengonversi 84 koordinat menjadi koordinat Baidu, di bawah ini, mari kita bicara tentang cara mencapai konversi koordinat terbalik, yaitu koordinat Baidu dikonversi menjadi 84 koordinat. Saya menemukan banyak algoritma di Internet, dan kebanyakan dari mereka terbatas pada satu offset, yaitu pertukaran antara koordinat Baidu dan koordinat Mars, pertukaran antara koordinat Mars dan koordinat Bumi, dll., dan hanya ada sedikit penyebutan koordinat Baidu menjadi 84 koordinat. Dalam hal ini, saya mencoba mengubah koordinat Baidu ke koordinat Mars terlebih dahulu, dan kemudian mengubah koordinat Mars ke koordinat Bumi, tetapi hasilnya tidak memuaskan, kesalahan terendah adalah 60 meter, dan yang paling banyak bahkan lebih dari 600 meter kesalahan, jadi saya harus menyerah. Saya tidak akan memposting algoritma lagi, siswa yang tertarik dapat pergi ke Internet untuk menemukannya sendiri. Di sini, saya menggunakan metode yang cerdas, metode spesifiknya adalah sebagai berikut: Koordinat Baidu dan konversi koordinat GPS sangat dekat pada jarak dekat. Misalkan Anda memiliki koordinat Baidu: x1=116.397428, y1=39.90923 Ambil koordinat ini sebagai koordinat GPS dan dapatkan koordinat Baidu-nya melalui antarmuka: x2=116.41004950566, y2=39.916979519873
Koordinat GPS dapat diperoleh dengan perhitungan: x = 2*x1-x2,y = 2*y1-y2 x=116.38480649434001 y=39.901480480127。 Untuk memverifikasi keakuratan metode ini, saya mengambil koordinat 14 kota besar di Cina, tenggara, barat laut, dan barat laut Tiongkok untuk pengujian, dan hasilnya memperoleh hasilnya dengan penyimpangan 13 meter dan minimal 0,x meter. Kesalahan komprehensif adalah 6 meter. Hasil tes spesifik akan diposting nanti. Izinkan saya menggambar diagram sederhana untuk mengilustrasikan masalah ini.
G mewakili koordinat Bumi asli yang belum dikonversi; B mewakili koordinat Baidu setelah G dikonversi melalui api Baidu; G' mewakili koordinat setelah titik B dikonversi melalui API Baidu; Dengan asumsi bahwa nilai offset setelah mengonversi koordinat Google ke koordinat Baidu kecil, maka koordinat titik-G sangat sama dengan 2B-G'。 Setelah verifikasi, nilai offset setelah mengonversi koordinat Google ke koordinat Baidu adalah sekitar beberapa ratus meter, yang sebenarnya dapat diabaikan, jadi gunakan metode ini untuk memecahkan masalah perpustakaan offset dengan API Baidu sendiri, dan kemudian abaikan dampak dari mengonversi nilai offset. Tentu saja, metode ini juga memiliki kelemahan besar, yaitu mengharuskan kedua titik ini berada di database offset yang sama, jika kebetulan terletak di dua pustaka offset yang berbeda, kesalahannya mungkin relatif besar. Selain itu, ada metode lain yang saat ini sedang disiapkan untuk penelitian lebih lanjut, yaitu mendirikan perpustakaan offset dan menggunakan perpustakaan offset ini untuk lebih menghilangkan dampak ini: masih harus dipelajari. Inilah kerugian dari konversi online: Alat konversi API online Baidu sebenarnya memiliki batasan jumlah data yang dikonversi, setiap kunci hanya dapat mengonversi sekitar 5.000 buah data, dan akun dapat mengajukan hingga 20 kunci, jadi jika jumlah datanya besar, sebenarnya tidak disarankan untuk menggunakan konversi online semacam ini, yang juga merupakan niat awal untuk mempelajari perpustakaan offset lokal. Selain itu, karena sisi web mungkin lebih terbatas, kecepatan jaringan, permintaan bersamaan, dll. dapat memengaruhi hasil dan memengaruhi pengalaman pengguna, sehingga metode di atas hanya untuk referensi.
|