Cara belajar HERE API dalam waktu singkat

alt gambar
-Dimana kamu?
-Saya disini

Pada akhir September, hackathon terbesar di dunia terjadi di Kazan. Acara ini, sesuai dengan jumlah peserta, dimasukkan dalam Guinness Book of Records.


Selama 48 jam ini, kami ditugaskan untuk:

Kembangkan aplikasi seluler prototipe yang memungkinkan penumpang memesan pengiriman makanan dari restoran yang berlokasi di kota-kota di sepanjang rute kereta.

Lirik


Tentu saja, sepanjang acara, kami terlibat dalam menyelesaikan subtugas heterogen pada topik kami. Kami tidak menghabiskan 48 jam mempelajari HERE API dan menulis tiga pertanyaan di atas.


Dalam artikel ini saya ingin berbagi pengalaman menggunakan API HERE yang diperoleh selama 48 jam tanpa tidur ini, lebih tepatnya, sebagai pengembang junior Python dan sistem terdistribusi di jaringan untuk berinteraksi dengan sistem lain di jaringan. Artikel ini tidak berpura-pura sebagai terjemahan dari semua dokumentasi API DI SINI, artikel ini hanya menjelaskan aplikasi praktis dalam menyelesaikan masalah kita.


Pendahuluan


Untuk mengoptimalkan pengiriman pesanan dan pelaksanaannya tepat waktu, kurir harus tiba di platform tepat pada saat kereta tiba di stasiun. Dalam hal ini, setiap kurir harus mengetahui waktu minimum yang diperlukan untuk pengiriman pesanan. Untuk mengatasi masalah ini, perlu untuk menghitung waktu perjalanan minimum antara dua titik (dari restoran ke stasiun kereta api). Jalur dihitung di desa, sehubungan dengan ini, diputuskan untuk mempertimbangkan berbagai pilihan, yaitu, penggunaan transportasi umum, mobil pribadi dan kaki Anda untuk berjalan.


Analisis API publik menunjukkan bahwa permintaan REST berikut paling sesuai untuk menyelesaikan masalah:



Menggunakan API dimulai dengan mendaftar di bagian pengembang situs web resmi untuk menghasilkan dan menerima ID APP dan kunci KODE APP. Kunci API gratis memungkinkan Anda untuk melakukan hingga 250 ribu permintaan per bulan. Percayalah, ini mencakup semua kebutuhan akan hackathon.


Statistik penggunaan API HERE oleh aplikasi kami selama 48 jam menunjukkan angka-angka berikut:



Berlatih


Setiap permintaan berisi bidang-bidang berikut:


deplocation = A #   arrlocation = B #   # ,      app_id = os.getenv('HERE_APP_ID') app_code = os.getenv('HERE_APP_CODE') 

Mencari waktu perjalanan menggunakan transportasi umum


 url = f"https://transit.api.here.com/v3/route.json" query = { 'dep': deplocation, 'arr': arrlocation, 'time': datetime.now().strftime('%Y-%m-%dT%H:%M:%S'), # ,     'app_id': app_id, 'app_code': app_code, 'routing': 'tt' #    } response = requests.get(url, params=query) data = response.json() status = data["Res"] if "Message" in status: print(status["Message"]) exit(-1) if "Connections" in status: route_dut_time = iso8601toSec( status["Connections"]["Connection"][0]["duration"] ) 

Saya ingin mencatat bahwa dalam permintaan ini, waktu diberikan menggunakan ISO 8601. Fungsi mengubah durasi waktu yang diterima menjadi detik iso8601toSec ​​diimplementasikan.



Mencari waktu perjalanan menggunakan kendaraan pribadi


 url = f"https://route.api.here.com/routing/7.2/calculateroute.json" query = { 'waypoint0': deplocation, 'waypoint1': arrlocation, 'mode': 'fastest;car;traffic:enabled', #       'app_id': app_id, 'app_code': app_code, 'departure': 'now' #   } response = requests.get(url, params=query) data = response.json() route_dur_time = data['response']['route'][0]['summary']['trafficTime'] 

Tidak ada masalah dengan permintaan ini dari waktu ke waktu, itu kembali dalam hitungan detik.



Menemukan waktu perjalanan menggunakan kaki Anda sendiri (berjalan)


 url = f"https://route.api.here.com/routing/7.2/calculateroute.json" query = { 'waypoint0': deplocation, 'waypoint1': arrlocation, 'mode': 'fastest;pedestrian', #   'app_id': app_id, 'app_code': app_code } response = requests.get(url, params=query) data = response.json() route_dur_time = data['response']['route'][0]['summary']['travelTime'] 

Dalam permintaan ini, seperti pada contoh sebelumnya, tidak ada masalah dengan waktu, ia kembali dalam hitungan detik.


Kesimpulan


Berdasarkan permintaan ini, kami mendapat tiga kali diperlukan untuk bergerak dari titik A ke titik B. Setelah menghitung waktu minimum dan jenis gerakan dari mereka, kami menentukan berapa lama untuk keluar sebelum kami dapat mencapai titik B pada waktu yang ditunjukkan.

Source: https://habr.com/ru/post/id470347/


All Articles