1

地理位置情報を使用して現在の場所を取得したいのですが、それが機能し、自分の場所である必要があるxmlを解析したいとlat考えlonています。しかし、ここで私のコードに問題があるようです:

url: "http://**/festivalapi.php? method=getPhotos&returntype=xml&lat=" + mylat + "&lon="+ mylong ",

しかし、緯度と経度を直接使用すれば大丈夫です。このような:

url: http://**/festivalapi.php? method=getPhotos&returntype=xml&lat=54.911859&lon=-1.343404` 

だから私はそれがここでいくつかの構文ミスに違いないと思う..

jquery全体は次のとおりです。

$(document).ready(function () {

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(displayPosition, errorFunction, { enableHighAccuracy: true, maximumAge: 30000, timeout: 27000 });
} else {
    alert('It seems like Geolocation, which is required for this page, is not enabled in your browser. Please use a browser which supports it.');
}

function displayPosition(pos) {
    var mylat = pos.coords.latitude;
    var mylong = pos.coords.longitude;
    var thediv = document.getElementById('locationinfo');
    thediv.innerHTML = '<p>Your latitide is :' +
        mylat + ' and your longitude is ' + mylong + '</p>';
}

// Error callback function
function errorFunction(pos) {
    alert('Error!');
}



$.ajax({
    type: "GET",
    url: "http://**/festivalapi.php? method=getPhotos&returntype=xml&lat=" + mylat + "&lon="+ mylong ",
    dataType: "xml",
    success: function (xml) {
        $(xml).find('photo').each(function () {
            var name = $(this).find('name').text();
            var url = $(this).find('url').text();

            $('<li></li>').append("<img src='" + url + "'/>").appendTo('#photos');


        });
    },
    error: function () {
        alert('Sorry, an error occured loading the XML file');
    }
});

});

4

1 に答える 1

1

あなたmylatmylong変数は関数var内で宣言されてdisplayPosition()いますが、AJAX呼び出しでその関数の外でそれらを使用しています。それらはその時点では設定されていないため、AJAX 呼び出しに渡しません。

AJAX 呼び出しを に移動して、問題が解決displayPosition()するかどうかを確認してください。

于 2013-02-27T00:57:01.080 に答える