Archive Pages Design$type=blogging

GOOGLE MAP API SDK WITH LARAVEL 5.x

Selamat siang all, kali ini saya mau berbagi sedikit pengalaman dalam mengintegrasikan Google MAP API SDK dalam Framework Laravel Versi 5...


Selamat siang all, kali ini saya mau berbagi sedikit pengalaman dalam mengintegrasikan Google MAP API SDK dalam Framework Laravel Versi 5.X.

Tapi postingan ini untuk yang sudah mengerti laravel ya.

Pada Postingan ini saya hanya mau berbagi bagaimana menggunakan SDK tersebut untuk menghitung biaya pengiriman. Ya, ibaratnya kayak kang ojek online gitu, tapi disini lebih kearah logistik.

Yuk dimulai.

Backed :
1. Laravel 5.x.
2. Google Map API for PHP bisa di compose dari link : https://github.com/alexpechkarev/google-maps (Ini bukan untuk Laravel tapi untuk PHP global).
3. Klo mau pake JWT untuk optional.

Pertama buat project laravel pada localhost anda. terserah mau buat nama project dan foldernya apa. Setelah selesai, akses dulu untuk memastikan berhasil atau tidaknya. Jika berhasil maka saat diakses ke folder project public akan tampil welcome page ala laravel.

Install plugin vendor laravel menggunakan composer serta link pada point nomor 2 diatas. Setelah selesai, buatlah controller dan route baru pada masing-masing sub folder. app/Http/controller untuk controller dan /route untuk route (bisa gunakan web.php) untuk defaultnya.

Silahkan define route baru dibawah ini :

Route::get('/distance', 'Gmaps@index');

Route::post('calc', 'Gmaps@getCalculate');

pada file web.php. "distance" untuk tampilan awal dan "calc" untuk action form hitungannya. sedangkan Gmaps@ adalah controller yang dipanggil dan @xxxx adalah spesific function yang dipanggil dalam controller tersebut pada saat dipanggil menggunakan link yang telah didefinisikan pada route diatas.

Sekarang buatlah controller dengan nama Gmaps. kenapa ? karena saya harus sesuaikan nama controller nya dengan route diatas. klo saya buat Rhio itukan nama saya.

Jika sudah dibuat controllernya, salin script dibawah ini dan tempel pada controller :

 ------------------------------------------------------------------------------------------------------------------------
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class Gmaps extends Controller
{
    public function index()
    {
        return view('gmap');
    }

    public function getCalculate(Request $request)
    {   
        $ori = $request['oriLat'].', '.$request['oriLang'];
        $dest = $request['desLat'].', '.$request['desLang'];
        $trans = $request['jenisKendaraan'];

        $requestor = array('latitude' => $request['oriLat'], 'logitude' => $request['oriLang']);
        $requestdes = array('latitude' => $request['desLat'], 'logitude' => $request['desLang']);

        $requestData['origin'] = array('latitude' => $request['oriLat'], 'logitude' => $request['oriLang']);
        $requestData['destination'] = array('latitude' => $request['desLat'], 'logitude' => $request['desLang']);
        $response = \GoogleMaps::load('directions')
            ->setParam([
                'origin'          => $ori,
                'destination'     => $dest,
            ])
            ->get();

        // echo "</pre>";
        $news = json_decode($response);

        // print_r((array) $news->routes[0]->legs[0]->distance);
        // echo "<br/>";
        // print_r((array) $news->routes[0]->legs[0]->duration);
        $duration = $news->routes[0]->legs[0]->duration;
        $distance = $news->routes[0]->legs[0]->distance;
        if ($trans == "MOTOR") {
            $type = 'motorcicle';
            $distance_per_litre = 25;
            $price_per_litre = 6500;
        }
        if ($trans == "MOBIL") {
            $type = 'car';
            $distance_per_litre = 12;
            $price_per_litre = 6500;
        }
        if ($trans == "KENDARAAN_UMUM") {
            $type = 'TAXI';
            $distance_per_litre = 5;
            $price_per_litre = 6500;
        }

        $veh['type'] = $type;
        $veh['distance_per_litre'] = $distance_per_litre;
        $veh['price_per_litre'] = $price_per_litre;

        $cost = ($distance->value / ($distance_per_litre * 1000)) * $price_per_litre;

        $resp['requests']= array('origin' => $requestor, 'destination' => $requestdes, 'vehicle' => $veh);
        $resp['response']= array('distance' => $distance->text, 'duration' => $duration->text, 'cost' => 'Rp. '.round($cost));

        return json_encode($resp);
    }
}
------------------------------------------------------------------------------------------------------------------------

Jika sudah, silahkan akses pada browser anda menggunakan link dibawah :

http://localhost/laramap/public/distance

"localhost" adalah nama host atau bisa IP,
"laramap" adalah nama project / folder laravel yang kita buat

Jika agak rada malas bisa diunduh disini.

Semoga bermanfaat.............






KOMENTAR

Nama

Ex-Ordinary Graphic Design Others Review Tutorial Web Design
false
ltr
item
Rhio's Blog: GOOGLE MAP API SDK WITH LARAVEL 5.x
GOOGLE MAP API SDK WITH LARAVEL 5.x
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyAuRbMoCSB5g1LMaOarYSOyjo7qwZ5axl0i_NirST1NuMboJwHl4iPEkmzfF8Qz8bnbDf0pmk_Bet9BNMD1iysT2cct2w1AkSV2q2pHZ0S42NEDktWAhe5iOIB_4Tvf-HQGudgmRtejwk/s400/laramaps.PNG
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyAuRbMoCSB5g1LMaOarYSOyjo7qwZ5axl0i_NirST1NuMboJwHl4iPEkmzfF8Qz8bnbDf0pmk_Bet9BNMD1iysT2cct2w1AkSV2q2pHZ0S42NEDktWAhe5iOIB_4Tvf-HQGudgmRtejwk/s72-c/laramaps.PNG
Rhio's Blog
https://rhionair3.blogspot.com/2017/11/google-map-api-sdk-with-laravel-5x.html
https://rhionair3.blogspot.com/
http://rhionair3.blogspot.com/
http://rhionair3.blogspot.com/2017/11/google-map-api-sdk-with-laravel-5x.html
true
7283421898358931661
UTF-8
Tidak Menemukan Postingan TAMPILKAN SEMUANYA Selebihnya Balas Batalkan Balasan Hapus Oleh Beranda Halaman Postingan Tampilkan Semuanya DIREKOMENDASIKAN UNTUK ANDA LABEL POSTINGAN SEARCH Tidak Menemukan Posting Sesuai Permintaan Anda Back Home Minggu Senin Selasa Rabu Kamis Jum'at Sabtu Ming Sen Sel Rab Kam Jum Sab Januari Pebruari Maret April Mei Juni Juli Agustus September Oktober November Desember Jan Peb Mar Apr Mei Jun Jul Ags Sep Okt Nov Des Baru Saja 1 menit yang lalu $$1$$ minutes ago 1 jam yang lalu $$1$$ hours ago Kemarin $$1$$ days ago $$1$$ weeks ago lebih dari 5 minggu yang lalu