• 15-01-2023, 10:07:14
    #1
    Selamlar,

    php ile gps konumu almak istiyorum tarayıcıdan.

    Google maps api olmadan alabilir miyim? Maps api kullanmak zorundamıyız?
  • 15-01-2023, 10:23:48
    #2
    Google Maps API’a ihtiyaç yok Latitude ve Longitude değerlerini istiyorsan. Detaylı bilgi için Geolocation API’ı araştırın.
  • 15-01-2023, 10:39:07
    #3
    Merhabalar, imzamdaki whatsapp hattına yazarsanız yardımcı olabilirim
  • 15-01-2023, 10:44:39
    #4
    Developer adlı üyeden alıntı: mesajı görüntüle
    Google Maps API’a ihtiyaç yok Latitude ve Longitude değerlerini istiyorsan. Detaylı bilgi için Geolocation API’ı araştırın.


    Latitude ve Longtiude değerleri yeterli hocam.
    Aldığım değerleri harita üzerinde işaretleyebiliyorsam..

    https://www.w3schools.com/html/html5_geolocation.asp

    buradakini deniyorum fakat olmuyor. aşağıdaki hatayı veriyor.

    "User denied the request for Geolocation."
  • 15-01-2023, 12:11:25
    #5
    buddy adlı üyeden alıntı: mesajı görüntüle
    Latitude ve Longtiude değerleri yeterli hocam.
    Aldığım değerleri harita üzerinde işaretleyebiliyorsam..

    https://www.w3schools.com/html/html5_geolocation.asp

    buradakini deniyorum fakat olmuyor. aşağıdaki hatayı veriyor.

    "User denied the request for Geolocation."
    JS kullandığı için tarayıcıdan konum için izin vermeniz gerekiyor. PHP ile server side taraflı ip ve location bilgilerini alabilirsiniz. Her sunucuda bu mümkün mü bilmiyorum ama şuan kullandığım nginx kurulu sunucuda ip, enlem, boylam ve ülke kodunu $_SERVER ile alabiliyorum.
  • 15-01-2023, 12:25:08
    #6
    HTML5 Geolocation API'sini kullanmanız gerekir.

    PHP:
    <?php
    session_start();
    if (!isset($_SESSION['latitude']) && !isset($_SESSION['longitude'])) {
    ?>
    <script>
    navigator.geolocation.getCurrentPosition(success);
    function success(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    window.location = "index.php?latitude=" + latitude + "&longitude=" + longitude;
    }
    </script>
    <?php
    } else {
    $latitude = $_SESSION['latitude'];
    $longitude = $_SESSION['longitude'];
    echo "Latitude: " . $latitude . "<br>Longitude: " . $longitude;
    }

    if (isset($_GET['latitude']) && isset($_GET['longitude'])) {
    $_SESSION['latitude'] = $_GET['latitude'];
    $_SESSION['longitude'] = $_GET['longitude'];
    }
    ?>

    JS

    <script>
    window.onload = function() {
    navigator.geolocation.getCurrentPosition(success);
    function success(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    console.log("Latitude: " + latitude);
    console.log("Longitude: " + longitude);
    }
    }
    </script>
  • 28-01-2023, 11:15:11
    #7
    Tarayıcıdan GPS konumu almak için HTML5 geolocation özelliğini kullanabilirsiniz. Bu özellik, JavaScript kodu kullanarak kullanıcının tarayıcısından konum bilgilerini almasına izin verir. Google Maps API'yi kullanmanıza gerek yoktur, ancak konum bilgilerinizi haritalarda görüntülemek için kullanabilirsiniz.

    Aşağıda kullanıcının konum bilgilerini almak için kullanabileceğiniz bir örnek kod bulunmaktadır:

    <script>
    if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosit ion);
    } else {
    x.innerHTML = "Bu tarayıcı geolocation özelliğini desteklemiyor.";
    }
    function showPosition(position) {
    x.innerHTML = "Enlem: " + position.coords.latitude +
    "<br>Boylam: " + position.coords.longitude;
    }
    </script>


    Bu kod, kullanıcının tarayıcısında geolocation özelliği varsa, kullanıcının konum bilgilerini alır ve 'showPosition' adlı fonksiyon ile ekrana yazdırır. Eğer tarayıcıda geolocation özelliği yoksa, "Bu tarayıcı geolocation özelliğini desteklemiyor" yazısı ekrana yazdırılır.


    Veritabanına kaydetmek için daha fazla kod eklemeniz gerekecektir. Örneğin, kullanıcının konum bilgilerini alıp PHP tarafında bir veritabanına kaydetmek için aşağıdaki gibi bir kod ekleyebilirsiniz:

    <?php
    if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function( position) {
    // kullanıcının konum bilgileri
    $latitude = position.coords.latitude;
    $longitude = position.coords.longitude;

    // veritabanına kaydet
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";

    // veritabanına bağlan
    $conn = new mysqli($servername, $username, $password, $dbname);
    // bağlantı kontrol
    if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
    }

    $sql = "INSERT INTO konumlar (latitude, longitude)
    VALUES ('$latitude', '$longitude')";

    if ($conn->query($sql) === TRUE) {
    echo "Konum bilgisi veritabanına kaydedildi";
    } else {
    echo "Error: " . $sql . "<br>" . $conn->error;
    }

    $conn->close();
    });
    } else {
    echo "Bu tarayıcı geolocation özelliğini desteklemiyor.";
    }
    ?>


    Bu kod, kullanıcının konum bilgilerini alır ve PHP tarafında bir veritabanına kaydeder. Bu örnekte, veritabanı adı "myDB" ve tablo adı "konumlar" olarak kullanılmıştır. Ayrıca, veritabanına bağlanmak için servername, username ve password bilgilerini kullanır. Bu bilgileri kendi veritabanınız için güncellemelisiniz.