Janardhanam Julapalli Ответов: 1

Как получить текущие lat и lang в javascript?


<input type="button" data-toggle="modal" data-target="#myModal" onclick="getGeoLocation();" class="form-button form-button-submit btn btn-theme btn-theme-dark" value="Get Location" />

function getGeoLocation(){
    var map;
var latitude = 13.0547712; // I need to replace this with current location lat
var longitude = 80.2578432;// I need to replace this with current location lang
      var myLatlng = new google.maps.LatLng(latitude,longitude);
      var myOptions = {
      zoom: 17,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.SATELLITE
    };
    map = new google.maps.Map(document.getElementById('map_div'),
        myOptions);

    // marker STARTS    
    var marker = new google.maps.Marker({
    position: myLatlng, 
    title:"Click to view info!"
});  
    marker.setMap(map);
    // marker ENDS
google.maps.event.addListener(map, "click", function (e) {

    //lat and lng is available in e object
    var latLng = e.latLng;
    var lat = e.latLng.lat();
    var lang = e.latLng.lng();
$('#latitude').val(lat);
$('#longitude').val(lang);
});
  // google.maps.event.addDomListener(window, 'load', initialize);
  }


Что я уже пробовал:

<pre>navigator.geolocation.getCurrentPosition(function(position) {

                    var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
                    console.log(position.coords.latitude);

                });


getCurrentPosition
это не дает мне лат и Ланг

1 Ответов

Рейтинг:
10

Nirav Prabtani

1) Создайте одну функцию javascript, которая будет возвращать текущую позицию по широте и долготе.
2) Эта функция вызывается по нажатию кнопки
3) после получения позиции вы можете вызвать функцию getGeoLocation с положением



var map, infoWindow;
      
        infoWindow = new google.maps.InfoWindow;

        // Try HTML5 geolocation.
        if (navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(function(position) {
          
          var Lat = position.coords.latitude,
          var Long = position.coords.longitude
           getGeoLocation(Lat,Long)

          }, function() {
             //error
          });
        } else {

          // Browser doesn't support Geolocation
         
        }
      }


function getGeoLocation(_lat,_long){
    var map;
var latitude = _lat;   
var longitude = _long; 
// do your remaining code


Janardhanam Julapalli

Я пробовал нечто подобное тому, о чем вы упомянули выше. Теперь я воспользовался кодом, который вы мне дали.

функция getCurrentLatLang(){
var map, infoWindow;

infoWindow = новый google.maps.InfoWindow;

// Попробуйте геолокацию HTML5.
если (навигатор.геолокация) {
navigator.geolocation.getCurrentPosition(функция(позиция) {

ВАР широта = позиция.координаты.широта;
ВАР долго = позиция.координаты.долготы;
getGeoLocation(лат,длинный)

}, функция() {
console.log('error');//эта строка выполняется
});
} еще {

// Браузер не поддерживает геолокацию

}
}

функция getGeoLocation(широта,долгота){
var карта;
// широта var = 13.0547712;
// var долгота = 80.2578432;
var myLatlng = новый google.maps.LatLng(широта,долгота);
var myOptions = {
масштаб: 17,
центр: myLatlng,
mapTypeId: google.maps.MapTypeId.СПУТНИК
};


карта = новый Google.карты.Карта(документ.метода getElementById('map_div'),
myOptions);

// отметки начинается
var marker = новый google.maps.Маркер({
должность: myLatlng,
название:"Нажмите, чтобы просмотреть информацию!"
});
marker.setMap(карта);
// маркер заканчивается
google.maps.event.addListener(карта, "клик", функция (e) {

//lat и lng доступны в объекте e
расчет var latlng С = Е.latlng с;
ВАР широта = е.latlng с.широта();
var lang = e.latLng.lng();
$('#latitude').val(лат);
$('#долгота').val(lang);
});
// гугле.карты.событие.addDomListener(окно, "загрузить", и инициализации);
}

Janardhanam Julapalli

если (навигатор.геолокация) {
console.log('in');//это печать
navigator.geolocation.getCurrentPosition(функция(позиция) {
console.log('in in');//это не печать

Это и есть настоящая проблема. Ранее я читал, что getCurrentPosition() не будет работать с http. Теперь у меня есть https, но он все еще не работает.

Nirav Prabtani

Убедитесь, что вы разрешили текущее местоположение для браузера, Похоже, вы отрицали то же самое.

Если нет, то не могли бы вы увидеть консоль, осмотрев элемент ?

Janardhanam Julapalli

Он работает в хроме. Огромное спасибо!.

Janardhanam Julapalli

Я дал разрешение. Также ничего в консоли, кроме сообщений журнала, которые я дал. Проблема, связанная с браузером? Теперь я использую safari.

Nirav Prabtani

Вам нужно проверить, как включить разрешение location в safari

Janardhanam Julapalli

конечно. Я так и сделаю.

Nirav Prabtani

https://apple.stackexchange.com/questions/247300/how-do-i-enable-location-services-for-a-specific-website-on-safari-for-os-x