• 30-11-2018, 09:22:31
    #1
    Merhaba arkadaşlar. Ziyaretçinin konum bilgilerinden faydalanarak veritabanında bulunan Latitude ve Longitude şehir ve ilçe kayıtlarına bakarak ziyaretçiyi bulunan lokasyon sayfasına yönlendirmek istiyorum. Daha kısa anlatım ile latitude ve logitude değerleri ile php mysql de nasıl arama yapabilirim?
    Konum bilgisini aldığım kod aşağıdadır.
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
      <title>HTML5Geolocation Sample</title>
      
      <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDsGjCZ7iNKM1ZdNMMZA9iUPUzB6-pi-LY&sensor=true">
    </script>
      
      <link rel="stylesheet" href="jquery.mobile-1.2.0.min.css" />
      <script src="jquery-1.7.2.min.js"></script>
      <script src="jquerymobile.js"></script>
      <script>
    
      window.onload = function geoFindMe() {
        var output = document.getElementById('lat');
        var output2 = document.getElementById('long');
    
        if (!navigator.geolocation){
            output.innerHTML = '<p>Geolocation is not supported by your browser</p>';
       
    	 output2.innerHTML = '<p>Geolocation is not supported by your browser</p>';
        return;
        }
    
        function success(position) {
            var latitude  = position.coords.latitude;
            var longitude = position.coords.longitude;
     document.getElementById("lat").value = position.coords.latitude;
        document.getElementById("long").value = position.coords.longitude;
    
            //window.location.href = '?latitude=' + latitude + '&longitude=' + longitude; 
            output.innerHTML = latitude;
    		output2.innerHTML = longitude;
    		
    		<?/*$SearchResult=mysql_query("SELECT * FROM ilce WHERE lat LIKE '% '") or die(mysql_error()); 
    While($row = mysql_fetch_object($SearchResult)) { 
    $ilce_id = $row->ilce_id ;
    $ilce_adi = $row->ilce_ad ;
    echo $ilce_adi;
    
    }
    */?>
    
        };
    
        function error() {
            output.innerHTML = 'Unable to retrieve your location';
    		output2.innerHTML = 'Unable to retrieve your location';
        };
    
        //output.innerHTML = '<p>Locating…</p>';
    
        // $.getJSON(elgg.get_site_url() +'ajax/view/output/geo/distance',{phplatitude: latitude},function success(position));
        //   $.getJSON(elgg.get_site_url() +'ajax/view/output/geo/distance',{phplongitude: longitude}, function success(position));
    
        navigator.geolocation.getCurrentPosition(success, error);
        }
    	//document.write(output.innerHTML);
        </script>
    
        
    </head>
        <body>
    
    
    <div id="lat"></div>
    <div id="long"></div>
    
    
        </body>
    </html>
  • 02-12-2018, 23:00:37
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Sanırım şöyle bir şey yapabilirsiniz hocam

        function redirectUserByLocation() {
            if (navigator.geolocation) {
    
                navigator.geolocation.getCurrentPosition((positions) => {
                    let baseUrl = "",
                        coords = {
                            lat: positions.coords.latitude,
                            long: positions.coords.longitude
                        },
                        city = getCurrentCity(coords);
    
                    if (city) window.location.replace(baseUrl + "/" + city);
                });
    
                function getCurrentCity(coords) {
                    let xhr = new XMLHttpRequest,
                        url = "",
                        data = new FormData;
    
                    data.append("getCityByCoords");
                    data.append("lat", coords.lat);
                    data.append("long".coords.long)
    
                    xhr.open("POST", url,false);
                    xhr.onload = () => { return xhr.responseText }
                    xhr.send(data);
    
                    return xhr.onload()
                }
    
            } else {
                window.alert("Geolocation tarayıcınız tarafından desteklenmiyor.");
            }
        }
  • 03-12-2018, 22:43:29
    #3
    TEOVyazilim adlı üyeden alıntı: mesajı görüntüle
    Sanırım şöyle bir şey yapabilirsiniz hocam

        function redirectUserByLocation() {
            if (navigator.geolocation) {
    
                navigator.geolocation.getCurrentPosition((positions) => {
                    let baseUrl = "",
                        coords = {
                            lat: positions.coords.latitude,
                            long: positions.coords.longitude
                        },
                        city = getCurrentCity(coords);
    
                    if (city) window.location.replace(baseUrl + "/" + city);
                });
    
                function getCurrentCity(coords) {
                    let xhr = new XMLHttpRequest,
                        url = "",
                        data = new FormData;
    
                    data.append("getCityByCoords");
                    data.append("lat", coords.lat);
                    data.append("long".coords.long)
    
                    xhr.open("POST", url,false);
                    xhr.onload = () => { return xhr.responseText }
                    xhr.send(data);
    
                    return xhr.onload()
                }
    
            } else {
                window.alert("Geolocation tarayıcınız tarafından desteklenmiyor.");
            }
        }
    Yanıt için teşekkürler. Ancak bu kodlar ile ekranda sadece loading yazısı var. başka birşey çıkmıyor.
  • 03-12-2018, 23:36:42
    #4
    kommagene adlı üyeden alıntı: mesajı görüntüle
    Yanıt için teşekkürler. Ancak bu kodlar ile ekranda sadece loading yazısı var. başka birşey çıkmıyor.
    Kodları düzenlendiniz değil mi ?
  • 04-12-2018, 11:53:01
    #5
    TEOVyazilim adlı üyeden alıntı: mesajı görüntüle
    Sanırım şöyle bir şey yapabilirsiniz hocam

        function redirectUserByLocation() {
            if (navigator.geolocation) {
    
                navigator.geolocation.getCurrentPosition((positions) => {
                    let baseUrl = "",
                        coords = {
                            lat: positions.coords.latitude,
                            long: positions.coords.longitude
                        },
                        city = getCurrentCity(coords);
    
                    if (city) window.location.replace(baseUrl + "/" + city);
                });
    
                function getCurrentCity(coords) {
                    let xhr = new XMLHttpRequest,
                        url = "",
                        data = new FormData;
    
                    data.append("getCityByCoords");
                    data.append("lat", coords.lat);
                    data.append("long".coords.long)
    
                    xhr.open("POST", url,false);
                    xhr.onload = () => { return xhr.responseText }
                    xhr.send(data);
    
                    return xhr.onload()
                }
    
            } else {
                window.alert("Geolocation tarayıcınız tarafından desteklenmiyor.");
            }
        }
    TEOVyazilim adlı üyeden alıntı: mesajı görüntüle
    Kodları düzenlendiniz değil mi ?
    Kodlar şu şekilde:
    <!DOCTYPE html>
    <html>
    <head><?include "fonc.php"?>
      <meta charset="utf-8">
      <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
      <title>HTML5Geolocation Sample</title>
      <script  src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDsGjCZ7iNKM1ZdNMMZA9iUPUzB6-pi-LY&sensor=false">
    </script>
      
      <link rel="stylesheet" href="jquery.mobile-1.2.0.min.css" />
      <script src="jquery-1.7.2.min.js"></script>
      <!-- <script src="jquerymobile.js"></script> -->
      <script>
    
     function redirectUserByLocation() {
        if (navigator.geolocation) {
     
            navigator.geolocation.getCurrentPosition((position) => {
                let baseUrl = "test.php",
                    coords = {
                        lat: position.coords.latitude,
                        long: position.coords.longitude
                    },
                    city = getCurrentCity(coords);
     
                if (city) window.location.replace(baseUrl + "?city=" + city);
            });
     
            function getCurrentCity(coords) {
                let xhr = new XMLHttpRequest,
                    url = "",
                    data = new FormData;
     
                data.append("getCityByCoords");
                data.append("lat", coords.lat);
                data.append("long".coords.long)
     
                xhr.open("POST", url,false);
                xhr.onload = () => { return xhr.responseText }
                xhr.send(data);
     
                return xhr.onload()
            }
     
        } else {
            window.alert("Geolocation tarayıcınız tarafından desteklenmiyor.");
        }
    }
        </script>
      
    </head>
    
    <body>
    <div id="getCityByCoords"></div>
        </body>
    </html>
  • 04-12-2018, 12:54:12
    #6
    Hocam öncelikle baseUrl kısmını düzenlenmeniz lazım.

    ************let baseUrl = "test.php",

    Burada sizin domain adresiniz olacak. Ondan sonra

    baseUrl + "?city=" + city

    Sonrada burada gelen sehire göre yönlendirme yapacaksınız. Url yapınızı bilmediğim için örnek bir url yazdım oraya

    ************let xhr = new XMLHttpRequest,
    ****************url = "", Burada ajax isteğinin karşılanacağı urli/dosyayı girmeniz lazım.

    Response sadece şehir ismini içermeli bu arada.

    Dediğim ayarları yapın tekrar deneyin. Bir hata alırsanız consoldan ss alın bana atın
  • 06-12-2018, 00:33:38
    #7
    hocam captcahta hatasından dolayı jsfiddle attım hem js hem de php kısmını oradan alırsınız
    https://jsfiddle.net/xqv1ps2o/
  • 06-12-2018, 10:38:49
    #8
    TEOVyazilim adlı üyeden alıntı: mesajı görüntüle
    hocam captcahta hatasından dolayı jsfiddle attım hem js hem de php kısmını oradan alırsınız
    https://jsfiddle.net/xqv1ps2o/
    Elinize sağlık, teşekkür ettim. POST olayında sorun vardı. Onu da ufak bir değişiklik yaparak çözdüm.
    Tekrardan teşekkür ederim.
  • 06-12-2018, 11:18:00
    #9
    kommagene adlı üyeden alıntı: mesajı görüntüle
    Elinize sağlık, teşekkür ettim. POST olayında sorun vardı. Onu da ufak bir değişiklik yaparak çözdüm.
    Tekrardan teşekkür ederim.
    Hocam ben notepad++ yazdım ide de yazmadım, o yüzdn hızlı olsun diye es5 yazmadım dzeltirsin onu, bazı tarayıcılarda sorun çıkartabilir. Yada babel kullanıyorsanız otomtik düzeltir zaten