Cara mencari lokasi dengan php

Salah satu kelompok software web server yang umum digunakan adalah jenis LAMP (Linux, Apache, MySQL, dan PHP) karena memang sudah sangat populer di dunia hosting. Untuk mengatur pengaturan mesin dari PHP, kita perlu mengedit file php.ini. Soalnya letak filenya bisa beda tergantung cara kita install dan sistem operasi apa

Jadi saya akan menulis kemungkinan di mana saja di lokasi file php. Ini ada di server Anda

  • /etc/php.ini
  • /etc/php5/apache2/php.ini
  • /etc/php5/cli/php.ini
  • /usr/local/lib/php.ini
  • C:\xampp\php\php.ini untuk XAMPP (Windows)
  • C:\wamp\bin\apache\Apache2.4.4\bin\php.ini untuk WAMP (Windows) yang berada di lokasi Apache untuk website sedangkan di folder PHP untuk versi command prompt

Bagaimana jika Anda tidak dapat menemukan php. apakah ini di salah satu lokasi di atas?

Lokasi GEO. Oke, ini yang akan penulis coba jelaskan tentang geolokasi menggunakan php. Mungkin ada beberapa pertanyaan bagus tentang bagaimana situs asing seperti media sosial dapat mengubah bahasa, mata uang, atau hal lain yang berkaitan dengan lokasi. Ya. bahwa dengan memanfaatkan geolocation

Cara mencari lokasi dengan php



Dengan menggunakan geolokasi, informasi pengakses situs dapat diketahui IP-nya, yang nantinya dapat memberikan informasi tentang pengakses situs.

Oke, tidak terlalu panjang untuk menjelaskan. Ada plugin geolokasi yang disebut geoplugin. tentunya dengan menggunakan bahasa pemrograman PHP

untuk menggunakannya Anda dapat mengunduh plugin kelas DI SINI

Setelah mengunduh kelas, salin saja ke notepad dan simpan dengan nama Anda sendiri. dalam hal ini misalnya. geoplugin. kelas. php

Kemudian buat file php lain dan salin file di bawah ini

<?php
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
// If we wanted to change the base currency, we would uncomment the following line
// $geoplugin->currency = 'EUR';
 
$geoplugin->locate();
 
echo "Geolocation results for {$geoplugin->ip}: 
\n".
 "City: {$geoplugin->city} 
\n".
 "Region: {$geoplugin->region} 
\n".
 "Area Code: {$geoplugin->areaCode} 
\n".
 "DMA Code: {$geoplugin->dmaCode} 
\n".
 "Country Name: {$geoplugin->countryName} 
\n".
 "Country Code: {$geoplugin->countryCode} 
\n".
 "Longitude: {$geoplugin->longitude} 
\n".
 "Latitude: {$geoplugin->latitude} 
\n".
 "Currency Code: {$geoplugin->currencyCode} 
\n".
 "Currency Symbol: {$geoplugin->currencySymbol} 
\n".
 "Exchange Rate: {$geoplugin->currencyConverter} 
\n";
 
if ( $geoplugin->currency != $geoplugin->currencyCode ) {
 //our visitor is not using the same currency as the base currency
 echo "At todays rate, US$100 will cost you " . $geoplugin->convert(100) ." 

\n";
}
 
/* find places nearby */
$nearby = $geoplugin->nearby();
if ( isset($nearby[0]['geoplugin_place']) ) {
 echo "
Some places you may wish to visit near " . $geoplugin->city . ": 

\n";
 foreach ( $nearby as $key => $array ) {
 
  echo ($key + 1) .":
";
  echo "\t Place: " . $array['geoplugin_place'] . "
";
  echo "\t Country Code: " . $array['geoplugin_countryCode'] . "
";
  echo "\t Region: " . $array['geoplugin_region'] . "
";
  echo "\t County: " . $array['geoplugin_county'] . "
";
  echo "\t Latitude: " . $array['geoplugin_latitude'] . "
";
  echo "\t Longitude: " . $array['geoplugin_longitude'] . "
";
  echo "\t Distance (miles): " . $array['geoplugin_distanceMiles'] . "
";
  echo "\t Distance (km): " . $array['geoplugin_distanceKilometers'] . "
";
 
 }
 echo "
\n"; . Sumber referensi. http. // www. geoplugin. com

Pos terkait. geolokasi, geoplugin, pemrograman, php

Halo semuanya, kembali lagi di sahretech. Kali ini kita akan membahas tutorial yang tidak kalah seru yaitu cara membuat peta, menginput data lokasi, dan menampilkan lokasi menggunakan library leaflet js. Tutorial ini merupakan lanjutan dari tutorial basic leaflet js library yang sudah saya buat sebelumnya, bagi anda yang masih baru dan ingin mengetahui cara menggunakan library ini silahkan menuju link berikut https. // www. sahretech. com/2020/09/how-to-make-a-digital-map-with. html


Apa yang akan kita lakukan?

Pada tutorial kali ini kita akan membuat aplikasi sederhana dengan menggunakan bahasa pemrograman php, database mysql dan library leaflet js. Nantinya akan ada 2 kolom di halaman web yang kita buat. Kolom kiri berisi formulir input data dan kolom kanan berisi peta. Di peta akan ada penanda yang jika diklik akan muncul data yang kita input sebelumnya.


Cara Membuat Aplikasi Input Data dan Menampilkan Data Lokasi

Siapkan php dan mysql anda terlebih dahulu, gunakan web service package seperti xampp untuk mulai mengerjakan tutorial ini


1. Buat file indeks. php

Buat folder baru dengan nama training_input_location di dalam folder htdocs. lalu buat file dengan nama index. php di dalamnya. Salin skrip di bawah ini dan tempel di file indeks. php. Untuk penjelasannya saya lampirkan script dibawah ini




<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Latihan Membuat Peta</title> <style> /* ukuran peta */ #mapid { height: 100%; } .jumbotron{ height: 100%; border-radius: 0; } body{ background-color: #ebe7e1; } </style> </head> <body> <div class="row"> <!-- class row digunakan sebelum membuat column --> <div class="col-4"> <!-- ukuruan layar dengan bootstrap adalah 12 kolom, bagian kiri dibuat sebesar 4 kolom--> <div class="jumbotron"> <!-- untuk membuat semacam container berwarna abu --> <h1>Add Location</h1> <hr> <form action="proses.php" method="post"> <div class="form-group"> <label for="exampleFormControlInput1">Latitude, Longitude</label> <input type="text" class="form-control" id="latlong" name="latlong"> </div> <div class="form-group"> <label for="exampleFormControlInput1">Nama Tempat</label> <input type="text" class="form-control" name="nama_tempat"> </div> <div class="form-group"> <label for="exampleFormControlInput1">Kategori Tempat</label> <select class="form-control" name="kategori" id=""> <option value="">--Kategori Tempat--</option> <option value="rumah makan">Rumah Makan</option> <option value="pom bensin">Pom Bensin</option> <option value="Fasilitas Umum">Fasilitas Umum</option> <option value="Pasar/Mall">Pasar/Mall</option> <option value="rumah sakit">Rumah Sakit</option> <option value="Sekolah">Sekolah</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">Keterangan</label> <textarea class="form-control" name="keterangan" cols="30" rows="5"></textarea> </div> <div class="form-group"> <button type="submit" class="btn btn-info">Add</button> </div> </form> </div> </div> <div class="col-8"> <!-- ukuruan layar dengan bootstrap adalah 12 kolom, bagian kiri dibuat sebesar 4 kolom--> <!-- peta akan ditampilkan dengan id = mapid --> <div id="mapid"></div> </div> </div> </body> </html>


Jika Anda menjalankan halaman index di atas, maka Anda akan melihat tampilan web yang berantakan. Mengapa berantakan?, karena kami belum mengimpor bootsrap CDN. Bootstrap cdn akan diimpor pada tahap selanjutnya


2. Impor CDN Perpustakaan

Selanjutnya kita akan import bootstrap resource dan leaflet js menggunakan cdn. Untuk menggunakan cdn harus terkoneksi dengan internet karena resource library yang akan kita gunakan tidak tersimpan di komputer lokal


Salin skrip di bawah ini dan tempelkan sebelum tag . Skrip dibawah ini berisi bootstrap style css dan js leaflet untuk mempercantik tampilan web yang akan kita boot




<!-- leaflet css --> <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin="" /> <!-- bootstrap cdn --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
_


Salin skrip di bawah ini dan tempelkan sebelum tag di file indeks. php. Skrip di bawah ini berisi fungsi javascript dari leaflet js




<!-- leaflet js --> <script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script>



3. Membuat Database dan Tabel

Selanjutnya buat database dengan nama pelatihan dan buat tabel di dalamnya dengan nama lokasi. Anda dapat melihat struktur tabel pada gambar di bawah ini

Cara mencari lokasi dengan php
Tabel lokasi




4. Buat Fungsi untuk Menampilkan Peta

Selanjutnya, untuk dapat menampilkan peta kita perlu menambahkan beberapa skrip di bawah ini ke dalam file indeks. php. Salin skrip di bawah ini dan tempel di bawah pustaka cdn sebelumnya. Untuk penjelasannya saya cantumkan di bagian atas dan kanan script




<script> // set lokasi latitude dan longitude, lokasinya kota palembang var mymap = L.map('mapid').setView([-2.9547949, 104.6929233], 13); //setting maps menggunakan api mapbox bukan google maps, daftar dan dapatkan token L.tileLayer( 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibmFiaWxjaGVuIiwiYSI6ImNrOWZzeXh5bzA1eTQzZGxpZTQ0cjIxZ2UifQ.1YMI-9pZhxALpQ_7x2MxHw', { attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>', maxZoom: 20, id: 'mapbox/streets-v11', //menggunakan peta model streets-v11 kalian bisa melihat jenis-jenis peta lainnnya di web resmi mapbox tileSize: 512, zoomOffset: -1, accessToken: 'your.mapbox.access.token' }).addTo(mymap); </script>
_


Kemudian simpan project tersebut dan coba jalankan di browser, maka hasilnya akan terlihat seperti gambar di bawah ini. Selanjutnya kita akan membuat fungsi popup ketika map diklik dan untuk form input di sisi kiri halaman belum bisa bekerja karena kita belum membuat file prosesnya.


Cara mencari lokasi dengan php
Tampilan peta





5. Buat Fungsi untuk Memunculkan Lintang dan Bujur

Salin skrip di bawah ini dan tempel tepat sebelum tag terakhir di file indeks. php


        


// buat variabel berisi fugnsi L.popup var popup = L.popup(); // buat fungsi popup saat map diklik function onMapClick(e) { popup .setLatLng(e.latlng) .setContent("koordinatnya adalah " + e.latlng .toString() ) //set isi konten yang ingin ditampilkan, kali ini kita akan menampilkan latitude dan longitude .openOn(mymap); document.getElementById('latlong').value = e.latlng //value pada form latitde, longitude akan berganti secara otomatis } mymap.on('click', onMapClick); //jalankan fungsi


Kemudian simpan proyek Anda dan coba jalankan di browser, maka hasilnya akan terlihat seperti gambar di bawah ini. Coba klik di mana saja di peta dan sembulan dengan informasi lintang dan bujur akan muncul.  


Anda juga harus mencoba memperhatikan formulir input di sisi halaman, formulir akan berubah secara dinamis ketika kita mengklik di suatu tempat di peta. Kami akan menggunakan data nanti untuk memberikan penanda pada peta


Cara mencari lokasi dengan php
Tes munculan yang menunjukkan lintang, bujur




Dan untuk form input di halaman sebelah kiri belum bisa jalan karena file prosesnya belum kita buat. Kami akan membuat file proses di level 7



6. Buat Fungsi untuk Mengambil Data Lokasi dari Database

Selanjutnya untuk dapat menampilkan data lokasi seperti nama tempat, kategori tempat, dan deskripsi tempat, kita perlu menambahkan script berikut tepat sebelum tag terakhir pada file index. php




<?php $mysqli = mysqli_connect('localhost', 'root', '', 'latihan'); //koneksi ke database $tampil = mysqli_query($mysqli, "select * from lokasi"); //ambil data dari tabel lokasi while($hasil = mysqli_fetch_array($tampil)){ ?> //melooping data menggunakan while //menggunakan fungsi L.marker(lat, long) untuk menampilkan latitude dan longitude //menggunakan fungsi str_replace() untuk menghilankan karakter yang tidak dibutuhkan L.marker([<?php echo str_replace(['[', ']', 'LatLng', '(', ')'], '', $hasil['lat_long']); ?>]).addTo(mymap) //data ditampilkan di dalam bindPopup( data ) dan dapat dikustomisasi dengan html .bindPopup(`<?php echo 'nama tempat:'.$hasil['nama_tempat'].'|kategori:'.$hasil['kategori'].'|keteragan:'.$hasil['keterangan']; ?>`) <?php } ?>
_



Jika dijalankan, maka hasilnya akan sama dengan proses sebelumnya. Penambahan fungsi pada langkah ini akan menampilkan data yang diperoleh dari database, namun karena data tersebut belum tersedia maka peta tidak menampilkan penanda apapun.




7. Terakhir. , Buat file proses. php

Tahap terakhir dari tutorial ini adalah membuat file proses dan isinya. File proses ini berfungsi untuk menyimpan data yang kita kirim dari form. Buat file baru dengan nama proses. php dan isi file tersebut dengan script di bawah ini




<?php //koneksi $connect = mysqli_connect('localhost', 'root', '', 'latihan'); //set variabel $lat_long = $_POST['latlong']; $nama_tempat = $_POST['nama_tempat']; $kategori = $_POST['kategori']; $keterangan = $_POST['keterangan']; //input data $insert = mysqli_query($connect, "insert into lokasi set lat_long='$lat_long', nama_tempat='$nama_tempat', kategori='$kategori', keterangan='$keterangan' "); //kembali header("Location: index.php"); ?>
_


Simpan proyek Anda dan coba jalankan di browser. Pengujian mengisi data dengan mengklik sembarang tempat pada peta, kemudian mengisi nama tempat, kategori tempat, dan deskripsi tempat dan klik add untuk menambahkan data. Jika berhasil maka tampilan demo akan seperti gambar di bawah ini


Cara mencari lokasi dengan php
Masukkan data lokasi




Skrip Lengkap

Bagi yang merasa kesulitan mengikuti langkah-langkah penulisan script di atas, saya berikan koding lengkapnya agar bisa dibandingkan. Dalam tutorial ini ada dua file yang saya gunakan


indeks. php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Latihan Membuat Peta</title>

    <!-- leaflet css  -->
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css"
        integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
        crossorigin="" />

    <!-- bootstrap cdn  -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
        integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
    <style>
        /* ukuran peta */
        #mapid {
            height: 100%;
        }
        .jumbotron{
            height: 100%;
            border-radius: 0;
        }
        body{
            background-color: #ebe7e1;
        }
    </style>
</head>

<body>
     <div class="row"> <!-- class row digunakan sebelum membuat column  -->
        <div class="col-4"> <!-- ukuruan layar dengan bootstrap adalah 12 kolom, bagian kiri dibuat sebesar 4 kolom-->
            <div class="jumbotron"> <!-- untuk membuat semacam container berwarna abu -->
            <h1>Add Location</h1>
            <hr>
                <form action="proses.php" method="post">
                    <div class="form-group">
                        <label for="exampleFormControlInput1">Latitude, Longitude</label>
                        <input type="text" class="form-control" id="latlong" name="latlong">
                    </div>
                    <div class="form-group">
                        <label for="exampleFormControlInput1">Nama Tempat</label>
                        <input type="text" class="form-control" name="nama_tempat">
                    </div>
                    <div class="form-group">
                        <label for="exampleFormControlInput1">Kategori Tempat</label>
                        <select class="form-control" name="kategori" id="">
                            <option value="">--Kategori Tempat--</option>
                            <option value="rumah makan">Rumah Makan</option>
                            <option value="pom bensin">Pom Bensin</option>
                            <option value="Fasilitas Umum">Fasilitas Umum</option>
                            <option value="Pasar/Mall">Pasar/Mall</option>
                            <option value="rumah sakit">Rumah Sakit</option>
                            <option value="Sekolah">Sekolah</option>
                        </select>
                    </div>
                    <div class="form-group">
                        <label for="exampleFormControlInput1">Keterangan</label>
                        <textarea class="form-control" name="keterangan" cols="30" rows="5"></textarea>
                    </div>
                    <div class="form-group">
                        <button type="submit" class="btn btn-info">Add</button>
                    </div>
                </form>
            </div>
        </div>
        <div class="col-8"> <!-- ukuruan layar dengan bootstrap adalah 12 kolom, bagian kiri dibuat sebesar 4 kolom-->
            <!-- peta akan ditampilkan dengan id = mapid -->
            <div id="mapid"></div>
        </div>
    </div>



    <!-- leaflet js  -->
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"
        integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
        crossorigin=""></script>

    <script>
        // set lokasi latitude dan longitude, lokasinya kota palembang 
        var mymap = L.map('mapid').setView([-2.9547949, 104.6929233], 13);   
        //setting maps menggunakan api mapbox bukan google maps, daftar dan dapatkan token      
        L.tileLayer(
            'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibmFiaWxjaGVuIiwiYSI6ImNrOWZzeXh5bzA1eTQzZGxpZTQ0cjIxZ2UifQ.1YMI-9pZhxALpQ_7x2MxHw', {
                attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
                maxZoom: 20,
                id: 'mapbox/streets-v11', //menggunakan peta model streets-v11 kalian bisa melihat jenis-jenis peta lainnnya di web resmi mapbox
                tileSize: 512,
                zoomOffset: -1,
                accessToken: 'your.mapbox.access.token'
            }).addTo(mymap);


        // buat variabel berisi fugnsi L.popup 
        var popup = L.popup();

        // buat fungsi popup saat map diklik
        function onMapClick(e) {
            popup
                .setLatLng(e.latlng)
                .setContent("koordinatnya adalah " + e.latlng
                    .toString()
                    ) //set isi konten yang ingin ditampilkan, kali ini kita akan menampilkan latitude dan longitude
                .openOn(mymap);

            document.getElementById('latlong').value = e.latlng //value pada form latitde, longitude akan berganti secara otomatis
        }
        mymap.on('click', onMapClick); //jalankan fungsi

        

        <?php
        
        $mysqli = mysqli_connect('localhost', 'root', '', 'latihan');   //koneksi ke database
        $tampil = mysqli_query($mysqli, "select * from lokasi"); //ambil data dari tabel lokasi
        while($hasil = mysqli_fetch_array($tampil)){ ?> //melooping data menggunakan while

        //menggunakan fungsi L.marker(lat, long) untuk menampilkan latitude dan longitude
        //menggunakan fungsi str_replace() untuk menghilankan karakter yang tidak dibutuhkan
        L.marker([<?php echo str_replace(['[', ']', 'LatLng', '(', ')'], '', $hasil['lat_long']); ?>]).addTo(mymap)

                //data ditampilkan di dalam bindPopup( data ) dan dapat dikustomisasi dengan html
                .bindPopup(`<?php echo 'nama tempat:'.$hasil['nama_tempat'].'|kategori:'.$hasil['kategori'].'|keteragan:'.$hasil['keterangan']; ?>`)


        <?php } ?>

    </script>
</body>

</html>



proses. php



<?php //koneksi $connect = mysqli_connect('localhost', 'root', '', 'latihan'); //set variabel $lat_long = $_POST['latlong']; $nama_tempat = $_POST['nama_tempat']; $kategori = $_POST['kategori']; $keterangan = $_POST['keterangan']; //input data $insert = mysqli_query($connect, "insert into lokasi set lat_long='$lat_long', nama_tempat='$nama_tempat', kategori='$kategori', keterangan='$keterangan' "); //kembali header("Location: index.php"); ?>
_



Ini adalah tutorial cara membuat aplikasi input data dan menampilkan lokasi pada js leaflet map dengan php. Semoga artikel ini bermanfaat bagi pembaca sekalian, kurang lebihnya saya mohon maaf, dan jika ada script yang membingungkan silahkan bertanya pada kolom komentar dibawah. Sampai jumpa di tutorial menarik lainnya. Selamat Coding 😁