サーバーを起動した後、/driver/createにアクセスし、ドライバーを登録します。
/customer/createにアクセスし、顧客情報を10件登録します。 /delivery2にアクセスします。ページは以下のようになっています。(このページで削除や編集を行うと、/deliveryに移動します。) 「10件追加」をクリックすると、画像のような10件の情報を入力するページが表示されます。 driver_idは登録したドライバーのIDで、customer_idは登録した顧客情報のIDです。このページで登録する10件の住所の最短ルートを表示するには、customer_idを重複しないように選択し、全て同じ日付を選択して登録します。 現在はdriver_idとdeliveredを変更してもマップの表示に変化はありません。(ルートを表示するときは、driver_idが違っていても、日付が同じレコードの最新の10件が取得されます。)
登録すると/delivery2に戻ります。deliveryテーブルに登録されているデータの一覧の下にある、日付と送信ボタンがあるフォームで、先程のページ(/delivery2/register)で選択した日付と同じ日付を選択して送信ボタンを押すと、マップと入力した住所を通る最短ルートが表示されます。 DBから取得した住所をGeocoding APIに渡しているので、ページが移動するまで数秒時間がかかります。 マップを表示するページは以下の画像のようになっています。 取得した10件の住所の最初の住所を始点、最後の住所を終点としています。 マップの下にはGeocoding APIで取得した値の一部を表示しています。 2,3行目のように、同じ住所で複数の結果が取得できるものもありますが、今回の場合、最初の結果の方が入力した住所に近かったので、マップに表示するのは最初の結果の住所にしています。 今回の入力では、精度(レスポンスでは「location_type」という名前になっています)がAPPROXIMATEになっているか、部分一致がtrueになっている住所は、入力した住所と異なっていました。このどちらかの条件を満たす住所の位置は、実際の位置と異なる可能性があります。例えば、3行目の住所は精度はROOFTOPになっていますが、部分一致はtrueになっていて、実際の位置とは大きく離れています。 ステータスは1件も結果を取得できなかった場合、「ZERO_RESULTS」を返すようです。他にもいくつかのステータスを返しますが、リクエストに問題があることが原因のことがほとんどのようです。
Vibrant Ecosystem
Laravel's robust library of first-party tools and libraries, such as Forge, Vapor, Nova, and Envoyer help you take your projects to the next level. Pair them with powerful open source libraries like Cashier, Dusk, Echo, Horizon, Sanctum, Telescope, and more.
Laravel v8.83.27 (PHP v8.2.15)