Google Map V3 - получение данных геопостанции в скрытое поле - PullRequest
0 голосов
/ 06 января 2011

У меня есть карта Google, которая использует W3C geoLocation для определения местоположения людей. Я хотел бы знать, как получить широту и долготу их исходного положения в скрытом поле.

        // Try W3C Geolocation (Preferred)
        if(navigator.geolocation) {
            browserSupportFlag = true;
            navigator.geolocation.getCurrentPosition(function(position) {
                initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
                map.setCenter(initialLocation);
            }, function() {
                handleNoGeolocation(browserSupportFlag);
            });
            // Try Google Gears Geolocation
        } else if (google.gears) {
            browserSupportFlag = true;
            var geo = google.gears.factory.create('beta.geolocation');
            geo.getCurrentPosition(function(position) {
                initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
                map.setCenter(initialLocation);
            }, function() {
                handleNoGeoLocation(browserSupportFlag);
            });
            // Browser doesn't support Geolocation
        } else {
            browserSupportFlag = false;
            handleNoGeolocation(browserSupportFlag);
        }

        function handleNoGeolocation(errorFlag) {
            if (errorFlag === true) {
                alert("Geolocation service failed.");
                initialLocation = newyork;
            } else {
                alert("Your browser doesn't support geolocation. We've placed you in beautiful Minneapolis.");
                initialLocation = siberia;
            }
                map.setCenter(initialLocation);

}

Ответы [ 2 ]

1 голос
/ 06 января 2011

Так же, как подход, который я использовал в этом вопросе :
В методе getCurrentPosition:

populateInputs(initialLocation);

Где функция выглядит так:

function populateInputs(pos) {
    document.getElementById("t1").value=pos.lat()
    document.getElementById("t2").value=pos.lng();
}

Где t1 и t2 - ваши скрытые поля

0 голосов
/ 06 января 2011

Непосредственно перед тем (в двух местах) вы получаете initialLocation, вам задаются широта и долгота (как: position.coords.latitude, position.coords.longitude или position.latitude, position.longitude).
Вызовите функцию, чтобы установить скрытое поле в этой точке (передавая значения в лат и лонг).Что-то вроде:

var setHiddenField = function(lat, long) {
    document.forms[0].hiddenLatField.value = lat;
    document.forms[0].hiddenLongField.value = long;
}

... Я предполагаю, что на вашей странице только 1 форма, но вы легко сможете ее настроить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...