Как получить долготу и широту из искомого местоположения с помощью окна поиска google maps place api.
Im, используя тот же код, что и демо Google - https://developers.google.com/maps/documentation/javascript/examples/places-searchbox
Как получить долготу и широту из искомого местоположения с помощью окна поиска google maps place api.
Im, используя тот же код, что и демо Google - https://developers.google.com/maps/documentation/javascript/examples/places-searchbox
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();
}
});
Вы можете использовать указанную выше функцию, которая даст вам широту и долготу для области, введенной пользователем.
Код в предоставляемой ссылке показывает функцию, которая будет выполняться при вводе поиска. Во-первых, он создает пустой массив маркеров (контакты, которые вы видите на карте, как только вы выполняете поиск).
Итак, проверьте функцию, начиная с:
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()
.
Также проверьте здесь: fooobar.com/questions/448226/...
Из документов:
// Autocomplete Options
var defaultBounds = new google.maps.LatLngBounds();
var options = {
types: ['(cities)'],
bounds: defaultBounds
};
// get DOM 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
navigator.geolocation.getCurrentPosition(success => {
console.log(success) // 'have the lat and long'
}, failure =>{
//'enter code here if failed'
});