地理位置多次定位相同的位置

时间:2015-12-03 15:14:14

标签: javascript jquery geolocation

SCRIPT

/*get geo location*/

var x = document.getElementById("demo");
var y = document.getElementById("demo2");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
   /* x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude;  */
    x.innerHTML = position.coords.latitude;
    y.innerHTML = position.coords.longitude;

    var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng="+position.coords.latitude+","+position.coords.longitude+"&sensor=false";

$.getJSON(url, function (json) {
    $(".place").empty();
    $(".place").css("display","block");
    //console.log("JSON Data: " + json.results);
    $.each(json.results, function (index, value) {
        $.each(value.address_components, function (index, value) {
            console.log(index + ': ' + value.long_name);
            //alert(value.long_name);
            localStorage.long_name = value.long_name;
            console.log(localStorage.long_name);
            $(".place").append(localStorage.long_name+", ");
           //this line runs query to fetch users matching the places above
            displayTutor(value.long_name);

        });
    });
});
}   
  

//此行显示按地理位置

检索的地点列表
 $(".place").append(localStorage.long_name+", ");

这是检索到的地方

enter image description here

看到几次返回的相同地方,如'雪兰莪','马来西亚'等等。我认为,这导致下面的查询从这几个地方返回同一个用户。

查询

$sql="SELECT * FROM usrinfo, posts WHERE usrinfo.UUID = posts.UUID AND posts.location LIKE '%$this->place%' GROUP BY usrinfo.UUID";

可能是这个,让这个函数在$ each循环中调用displayTutor(value.long_name); 导致一次又一次地获取相同的结果。

该函数对查询进行ajax调用

function displayTutor(param){   
    $('#contents').empty();
    $("#titleBox_content > p").text("Tutors > "+param);
    $('#contents').append("<table><tr>");
    var globalStore = {};
    globalStore.data = [];
    var data;
    var getUrl;
    getUrl = '/search/getLocation.php?place='+param,
    $.when(
    // 1st query
    $.get(getUrl,function(data){globalStore.data = globalStore.data.concat(data);console.log(data)},"json")
).then(function() {
    console.log(globalStore.data);
................................
.................................

现在,我不需要重复相同的结果。请问怎么做?

  

修改

     

我发现我的查询在我尝试时没有返回任何错误   phpmyadmin控制台,它不会返回任何重复的条目。在   事实上在浏览器中,前2秒左右,它显示了   正确的结果没有重复,但在那之后相同的结果   加起来。这就像ajax调用超过四次   函数放在$ .each循环中,如上所述。

     

有人可以帮我这个吗?

0 个答案:

没有答案