скачать Получение широты и долготы из API поиска Google Адресов с помощью JavaScript




google maps marker label (4)

Как я могу получить долготу и широту от искомого местоположения с помощью окна поиска места Google Maps API.

Я использую тот же код, что и в демонстрационной версии Google - https://developers.google.com/maps/documentation/javascript/examples/places-searchbox



Код по указанной вами ссылке показывает функцию, которую нужно выполнять при вводе поиска. Во-первых, он создает пустой массив маркеров (пины, которые вы видите на карте после выполнения поиска).

Итак, проверьте функцию, начиная с:

google.maps.event.addListener(searchBox, 'places_changed', function() {

Позже вы увидите, что маркер был создан (есть даже комментарий):

// Create a marker for each place.
var marker = new google.maps.Marker({
    map: map,
    icon: image,
    title: place.name,
    position: place.geometry.location
});

Итак, на place.geometry.location вас есть объект Google Maps Location. Вы можете использовать place.geometry.location.lat() и place.geometry.location.lng() .

Проверьте здесь тоже: https://.com/a/15315483/1012139


function GetLatlong()
    {
        var geocoder = new google.maps.Geocoder();
        var address = document.getElementById('textboxid').value;

        geocoder.geocode({ 'address': address }, function (results, status) {

            if (status == google.maps.GeocoderStatus.OK) {
                var latitude = results[0].geometry.location.lat();
                var longitude = results[0].geometry.location.lng();

            }
        });

Вы можете использовать вышеупомянутую функцию, которая даст вам широту и долготу для области, введенной пользователем.


Из docs :

                // Autocomplete Options
                var defaultBounds = new google.maps.LatLngBounds();
                var options = {
                types: ['(cities)'],
                bounds: defaultBounds
                };

                // get DOM's input element
                var input = document.getElementById('location_address');

                // Make Autocomplete instance
                var autocomplete = new google.maps.places.Autocomplete(input, options);

                // Listener for whenever input value changes            
                autocomplete.addListener('place_changed', function() {

                    // Get place info
                    var place = autocomplete.getPlace();

                    // Do whatever with the value!
                    console.log(place.geometry.location.lat());
                });




google-maps