Halo semuanya! Kami sedang mengembangkan
Okdesk , Helpdesk berbasis cloud untuk layanan purna jual untuk pelanggan b2b. Di antara pengguna produk kami adalah pusat pemanas dan pusat otomatisasi untuk register kas, integrator untuk otomasi perdagangan, layanan operasi jaringan ritel, perusahaan yang melayani real estat komersial dan banyak perusahaan layanan lainnya. Kekhasan layanan di perusahaan tersebut adalah sejumlah besar pekerjaan "di ladang": bekerja dengan peralatan, pemeliharaan infrastruktur, pekerjaan pemeliharaan terjadwal - semua ini membutuhkan kehadiran fisik spesialis di fasilitas tersebut. Keadaan ini memberlakukan sejumlah persyaratan tambahan untuk solusi Helpdesk, yaitu: stasiun kerja seluler insinyur dan visualisasi pekerjaan yang direncanakan pada peta dengan tampilan karyawan terdekat. Aplikasi seluler Okdesk untuk para insinyur (untuk iOS dan Android) sudah lama muncul dan kami terus mengembangkannya secara aktif. Tetapi tampilan aplikasi dan karyawan terdekat di peta kami dirilis beberapa hari yang lalu.

Tetapi artikel itu tidak akan fokus pada fungsionalitas baru - mereka yang tertarik bisa mendapatkan akun uji coba gratis selama 14 hari di
situs dan mengenal sistemnya sendiri. Ini akan mengenai pilihan layanan pemetaan untuk implementasi fungsionalitas dan persyaratan produk apa yang harus disajikan kepada mereka. Jika untuk proyek Anda tugas memilih solusi untuk modul kartografi relevan - selamat datang di cat.
Isu dan kriteria pemilihan keputusan
Jadi apa yang kita inginkan? Kami ingin mentransfer alamat ke layanan peta, dan menampilkan tampilan alamat ini di peta. Tetapi tidak berfungsi seperti itu. Hanya koordinat yang dapat ditampilkan di peta. Jadi, Anda harus terlebih dahulu menerjemahkan representasi string dari alamat di koordinat. Dalam jargon GIS, ini disebut "geocoding."
Bagaimana cara melakukannya? Penyimpangan kecil harus dilakukan di sini. Faktanya adalah bahwa dalam spesifikasi layanan b2b, permintaan layanan terkait dengan alamat pra-perbaikan (objek layanan). Aplikasi tidak dapat memiliki alamat yang sewenang-wenang dan sebelumnya tidak dikenal. Semua alamat ditetapkan pada akhir kontrak layanan, dan penambahan alamat baru tidak terjadi secara tiba-tiba dalam proses permintaan baru. Oleh karena itu, opsi bisa cocok untuk kita, ketika administrator, ketika memasukkan alamat ke dalam database, melihat koordinat struktur yang sesuai pada peta Yandex publik dan secara manual memasukkannya ke dalam kartu objek layanan:

Tetapi pendekatan ini tidak menyebabkan kami antusias - pengguna akan merasa tidak nyaman (walaupun, saya ulangi, dalam kasus kami ini akan menjadi operasi satu kali ketika objek layanan dimasukkan ke dalam sistem). Dan kami memutuskan untuk mencari cara untuk secara otomatis mengisi koordinat di alamat. Ada layanan seperti itu, tetap hanya untuk memilih. Dan untuk ini, Anda perlu mengatur kriteria pemilihan. Kami melanjutkan dari persyaratan berikut:
- Geocoding harus bekerja di alamat Rusia dan bekas USSR berbahasa Rusia (pasar utama untuk Okdesk hari ini). Akan ideal untuk menemukan layanan geocoding tunggal yang berfungsi dengan baik di seluruh dunia, tetapi melihat ke depan saya akan mengatakan bahwa kami tidak menemukannya;
- Geocoding harus menyediakan kemampuan untuk menyimpan koordinat dalam basis data kami tanpa batasan apa pun. Kami tidak ingin melakukan geocoding setiap kali kami perlu menampilkan alamat ini di peta (persyaratan ini mungkin aneh, tetapi tidak semua layanan mengizinkan ini);
- Biaya dan ketentuan penggunaan yang wajar (geocoding adalah salah satu fungsi tambahan Okdesk, dan hari ini kami tidak siap membayar ratusan ribu rubel per tahun untuk itu);
- Geocoding harus menawarkan saran saat memasukkan alamat (ketika pengguna memasukkan karakter alamat, pengguna ditawarkan opsi secara dinamis untuk pemilihan yang sesuai dengan karakter yang dimasukkan):

Ketika koordinat alamat sudah diketahui, itu dapat ditampilkan di peta. Kami memiliki persyaratan minimum untuk layanan peta):
- Relevansi informasi di peta;
- Biaya dan ketentuan penggunaan yang wajar.
Jadi, kami memutuskan alat apa yang kami butuhkan dan dengan kriteria apa kami akan memilihnya. Jadi sudah waktunya untuk menganalisis layanan yang tersedia dan memilih konfigurasi yang sesuai untuk menyelesaikan masalah.
Calon
Untuk memilih solusi, kami mengidentifikasi daftar kandidat potensial. Mereka menjadi:
- Layanan dadata.ru (geocoding);
- Layanan Geoservice 2GIS (geocoding dan peta);
- Layanan geo Google (geocoding dan peta);
- Layanan geo Yandex (geocoding dan peta);
- Layanan proyek OpenStreetMaps (geocoding dan peta).
Seleksi Geocoding
Dadata.ru
Dadata.ru memiliki banyak layanan berguna untuk bekerja dengan data. Dalam kasus kami, kami berbicara tentang layanan
"Tip di alamat .
" Dadata memiliki banyak keunggulan. Kiat bekerja “out of the box” dan secara teknis dibangun menjadi produk pihak ketiga. Tidak hanya koordinat, tetapi juga informasi lain dikembalikan ke alamat (dalam kasus kami ini tidak relevan, tetapi mungkin berguna bagi seseorang). Data tersebut "segar" dan dapat disimpan di rumah. Ada tarif gratis, yang dibatasi hingga 10.000 permintaan per hari, tetapi tarif yang dibayar memiliki lebih dari harga yang terjangkau (dari 7.000 rubel per tahun untuk organisasi dan 5.000 rubel per tahun untuk individu).
Tetapi ada satu minusnya: layanan hanya bekerja di alamat Rusia.
Layanan Geoservice 2GIS
2GIS memiliki sejumlah besar layanan referensi geo, dan geocoding adalah salah satunya. Menurut data resmi, layanan geo beroperasi di 370 kota di 9 negara di dunia. Ini memberikan cakupan yang baik (tetapi lebih buruk daripada Dadata) untuk Rusia (kami secara selektif melihat - di kota-kota dari 100k penduduk semuanya baik-baik saja, tetapi di kota-kota lebih kecil - oleh 50k penduduk, lebih sering ada detail hanya ke jalan) dan cakupan yang agak lemah untuk orang lain negara-negara bekas Uni Soviet yang berbahasa Rusia (misalnya, kota Ekibastuz Kazakhstan yang relatif besar dengan 130k + penduduk tidak ada dalam direktori 2GIS). Di luar ex-USSR, layanannya adalah pointwise.
Ada kerugian signifikan. Pertama, ada larangan menyimpan data yang diterima. Yaitu bila perlu, tampilkan alamat di peta, Anda harus membuat permintaan koordinat. Juga tidak ada tarif gratis dalam layanan: paket minimum biaya 5.000 rubel per bulan dan termasuk 5.000 permintaan ke geocoding API (mis., Untuk rubel per permintaan). Dengan peningkatan jumlah permintaan, biaya per 1 permintaan berkurang. Misalnya, jika Anda membuat lebih dari 5.000.000 permintaan per bulan, biaya satu permintaan akan turun menjadi 5 kopecks. Menariknya, permintaan dianggap sebagai permintaan petunjuk ketika memasukkan alamat, dan permintaan untuk koordinat alamat saat memilih dari petunjuk (yaitu jumlah minimum permintaan untuk mendapatkan koordinat di alamat adalah 2 buah). Sehubungan dengan fakta bahwa data geocoding tidak dapat disimpan di rumah dan setiap kali Anda menggambar objek di peta, Anda perlu membuat permintaan untuk geocoding, penggunaan geocoding dari 2GIS akan menghasilkan jumlah yang signifikan dalam kasus kami.
Ya, selain ini ada juga "biaya masuk" - biaya satu kali 15.000 rubel saat menghubungkan. Sepertinya ada semacam kerusakan :)
(Informasi tentang biaya relevan untuk paruh pertama 2019, tetapi saya tidak berpikir bahwa semuanya telah berubah secara dramatis sejak pencelupan kami dalam kemungkinan dan kondisi layanan).
Layanan Google Geo
Layanan geo Google digabungkan di bawah merek
Google Maps Platform . Di antara mereka ada juga geocoding dengan petunjuk. Situs ini mengklaim cakupan di 99% dari alamat planet kita. Kami tidak memeriksa 99%, tetapi kami hanya memeriksa Rusia. Dan, saya katakan kepada Anda, kualitas dan relevansi data di Rusia meninggalkan banyak hal yang diinginkan. Misalnya, menurut Google, kompleks perumahan tempat saya tinggal tidak ada (Moskwa, lebih dari 10 juta penduduk), meskipun rumah pertama dibangun lebih dari 3 tahun yang lalu. Tetapi "kompleks perumahan" tempat saya dilahirkan dan dibesarkan (Penza, lebih dari 500 ribu jiwa) masih ada, meskipun pada kenyataannya telah dikirim untuk pembongkaran selama 4 tahun. Sebagai alasan kecil untuk Google Maps Platform, Anda dapat menambahkan bahwa data dalam panorama jauh lebih relevan - mereka memiliki rumah saya saat ini dan rumah "orang tua" saya terlihat seperti ini:

Ini bisa menjadi akhir dari tinjauan geocoding dari Google - dengan cakupan dan relevansi yang dijelaskan, ini tidak berlaku untuk tujuan kami. Tapi, jujur saja, kami memulai studi layanan dari ujung lain: dengan kondisi dan harga. Karena itu, kami akan tetap menulis tentang mereka.
Jadi, kondisinya cukup manusiawi. Semua permintaan ditagih: dari 4 hingga 5 dolar per 1000 permintaan untuk geocoding, dan tip secara terpisah ditagih - 2,83 dolar per 1.000 permintaan. Selain itu, Google setiap bulan membebankan 200 dolar virtual ke akun, yang dapat digunakan untuk membayar layanan platform.
Google bahkan memungkinkan Anda untuk menyimpan hasil geocoding di rumah. Tetapi Anda hanya dapat menampilkannya di peta jika peta itu adalah Google Maps, seperti yang dinyatakan secara eksplisit di bagian pertama dokumen
Geocoding API Policy :
Menampilkan hasil Geocoding API
Anda dapat menampilkan hasil Geocoding API di Google Map, atau tanpa peta. Jika Anda ingin menampilkan hasil Geocoding API pada peta, maka hasil ini harus ditampilkan pada Google Map. Dilarang menggunakan data Geocoding API pada peta yang bukan peta Google.
Sangat disayangkan bahwa tidak semua rekan kerja dalam proses membaca keputusan membaca informasi hukum. Dengan pendekatan ini, Anda dapat dengan mudah mengganti pelanggan Anda, memberi mereka kesempatan untuk menerima hasil geocoding dari Google, tetapi menampilkan objek pada, misalnya, OpenStreetMaps.
Layanan geo Yandex
Layanan Yandex untuk geocoding disebut
Geocoder . Cakupan luar biasa di Rusia - ada alamat bahkan untuk permukiman dengan beberapa ribu penduduk. Untuk negara-negara bekas Uni Soviet yang berbahasa Rusia, cakupannya tidak lebih buruk. Cakupan global bersifat simbolis. Relevansi data tinggi.
Secara umum, semuanya akan bagus jika bukan karena ketentuan penggunaan untuk proyek komersial (untuk yang non-komersial - gratis dengan sejumlah batasan).
Ketentuan penggunaan untuk proyek komersial adalah sebagai berikut. Biaya minimum adalah 120.000 rubel per tahun, dan pada tingkat ini batas harian adalah 1.000 permintaan. Dengan peningkatan jumlah permintaan harian, biaya per 1 permintaan turun. Secara umum, biayanya tidak mengejutkan jika tidak akan ada satu NAMUN: jika Anda ingin menyimpan data geocoding di rumah, 500.000 rubel lainnya akan ditambahkan ke biaya tarif tahunan (saya tekankan: tidak hanya sekali, tetapi setiap tahun). Akibatnya, "ambang masuk" untuk kami dimulai dengan 620.000 rubel per tahun dengan batas 1000 permintaan per hari. Hal-hal seperti itu.
OpenStreetMaps Layanan Geo
OpenStreetMaps (OSM) adalah proyek pemetaan web nirlaba yang bertujuan untuk membuat peta geografis dunia yang bebas dan gratis secara terperinci oleh komunitas peserta - pengguna internet. (c) Wikipedia.
OSM memiliki layanan geocoding yang disebut
Nominatim . Data dipelihara dan diperbarui "oleh seluruh dunia." Secara umum, data relevan, tetapi cakupannya tidak dalam - di Rusia di kota-kota dengan populasi 20-30 ribu orang, perincian ke nomor rumah sering tidak tersedia.
Ketentuan penggunaan - gratis. Data dapat disimpan di rumah, data dapat digunakan dengan cara apa pun yang legal. Secara umum, sebagai sumber tambahan untuk geocoding - itu akan dilakukan! (spoiler: kami memutuskan untuk menggunakannya dalam status ini).
Tabel Pivot Geocoding
Dan sekarang semuanya sama, tetapi singkat di atas meja:
Pilihan layanan peta
Sedikit lebih tinggi, kami memeriksa pro dan kontra dari berbagai geocoding. Ketika memilih kartu, kami dipandu oleh fakta bahwa kartu harus relevan, cakupannya baik dan biaya serta ketentuan penggunaan - pengangkatan. Karena relevansi dan cakupan peta sepenuhnya sesuai dengan relevansi geocoding (dan tidak ada gunanya menggandakan informasi ini), dalam ikhtisar peta kami hanya akan fokus pada biaya dan ketentuan.
Peta 2GIS
Kondisi untuk menggunakan kartu dari 2GIS cukup loyal. Tagihan tidak didasarkan pada jumlah permintaan / render kartu, tetapi dengan biaya tetap. Biaya terdiri dari “biaya masuk” - biaya satu kali 15.000 rubel - dan biaya berlangganan tahunan 60.000 rubel.
Google maps
Seperti dalam kasus geocoding, penggunaan peta dari Google didasarkan pada jumlah permintaan (request = tampilan peta). Tetapi biaya permintaan tergantung pada peta mana yang ingin Anda tampilkan dan di mana.
Misalnya, jika Anda perlu menampilkan peta statis dengan karakteristik dan label yang ditentukan (mis., Ketika Anda meminta peta, Google akan mengembalikan gambar bagian yang diberikan dengan label yang ditentukan) - ini akan menelan biaya $ 2 per 1000 permintaan. Jika Anda menggunakan format yang sama untuk aplikasi di Android - gratis. Ngomong-ngomong, untuk aplikasi seluler Google maps secara luas gratis. Tapi jangan menyanjung diri sendiri - Google sewaktu-waktu dapat mengubah ketentuan penggunaan secara sepihak. Misalnya, pada 2018, Google menaikkan biaya menggunakan peta di antarmuka web sebanyak 14 kali.
Untuk skenario penggunaan kami (peta dinamis di antarmuka web), biaya per 1000 tayangan kartu adalah $ 7. Ketika melebihi jumlah tayangan 100.000.000 (seratus juta) per bulan, biaya "turun" menjadi $ 5,6 per 1000 tayangan.
Karena "akun pribadi" perusahaan itu sama untuk semua layanan Platform Google Maps, Anda dapat membayar untuk penggunaan kartu Google dari virtual $ 200 yang sama dengan yang dibebankan Google ke akun Anda setiap bulan.
Yandex Maps
Jika Anda memiliki proyek gratis, akses ke peta tidak memerlukan pendaftaran pengguna dalam proyek, dan Anda membuat kurang dari 25.000 panggilan ke kartu per hari, maka Anda dapat menggunakan Yandex.Maps secara gratis. Jika tidak, hanya penggunaan komersial yang tersedia untuk proyek Anda. Permintaan yang ke geocoder, ke kartu - dikenakan biaya yang sama. Langganan tahunan dimulai dari 120 000 rubel per tahun (1000 permintaan per hari disertakan, 120 rubel untuk setiap 1000 permintaan berikutnya yang melebihi batas harian). Batas permintaan untuk geocoder dan peta bersifat umum.
Dan jika Anda ingin menyimpan hasil kueri di rumah - Anda perlu membayar ekstra dari di atas 500.000 rubel per tahun.
Buka peta jalan
Saya akan singkat: gratis dan gratis. Tetapi ada nuansa - kadang-kadang kartu di Rusia melambat.
upd: ada satu lagi nuansa - jika Anda menggunakan layanan online OSM (dan tidak menyebarkannya di server Anda), ada batasan informal yang dinyatakan dalam kata-kata:
Penggunaan berat (mis. Mendistribusikan aplikasi yang menggunakan ubin dari openstreetmap.org) dilarang tanpa izin sebelumnya dari Administrator Sistem. Lihat di bawah untuk alternatif.
Yaitu Layanan OSM tidak cocok untuk proyek-proyek besar dengan penggunaan intensif peta, tetapi Anda dapat menggunakan mereka di server Anda dan menggunakannya tanpa batasan.
Tabel ringkasan
Apa yang kami pilih?
Geocoding
Untuk geocoding, kami memilih solusi hybrid dari layanan Dadata.ru dan layanan Nominatim dari OpenStreetMaps. Geocoding berfungsi sebagai berikut.
Saat Anda memasukkan alamat, pengguna menampilkan konfirmasi dari layanan Dadata.ru. Jika prompt berisi apa yang dicari pengguna, ia mengklik prompt, alamat yang dipilih ditampilkan di peta dan koordinat ditampilkan di bawah representasi teks dari alamat (diterima dari Dadata.ru).
Video Youtube .
Jika alamat yang dimasukkan oleh pengguna di layanan Dadata.ru tidak ada, pengguna dapat menekan Enter dan permintaan untuk alamat tersebut akan pergi ke layanan Nominatim. Jika alamat ditemukan dalam hasil pencarian, pengguna mengklik alamat, alamat ditampilkan di peta, dan koordinat ditampilkan di bawah representasi string dari alamat.
Video Youtube .
Dan akhirnya, jika alamat tidak ditemukan di Dadata.ru atau di Nominatim, pengguna dapat mengambil dan menunjukkan titik pada peta - dan koordinat titik yang ditentukan akan ditambahkan ke representasi string yang dimasukkan dari alamat. Video Youtube .Kartu
Saya akan singkat. Kami memilih OpenStreetMaps. Ada banyak plus, tidak ada minus yang signifikan.Video bonus: cara kerja kartu di Okdesk
Namun dalam video ini Anda dapat melihat bagaimana tampilan aplikasi pada peta bekerja dengan penugasan tanggung jawab kepada karyawan terdekat di Okdesk:Ngomong-ngomong, daftarkan akun uji di situs dan coba selama 14 hari secara gratis.