使用Javascript从Google Places搜索api获取纬度和经度

Pro*_*mit 27 javascript google-maps

如何使用谷歌地图搜索框api从搜索到的位置获取经度和纬度.

我使用与谷歌演示相同的代码 - https://developers.google.com/maps/documentation/javascript/examples/places-searchbox

Piy*_*ahu 44

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();

            }
        });
Run Code Online (Sandbox Code Playgroud)

您可以使用上述功能,该功能将为您提供用户输入区域的纬度和经度.


Pat*_*nio 15

您提供的链接上的代码显示了输入搜索时要执行的功能.首先,它创建一个空的标记数组(一旦执行搜索,您在地图上看到的引脚).

因此,检查以下开头的函数:

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
});
Run Code Online (Sandbox Code Playgroud)

所以,place.geometry.location你有一个谷歌地图位置对象.你可以使用place.geometry.location.lat()place.geometry.location.lng().

点击这里:https://stackoverflow.com/a/15315483/1012139


Sei*_*eif 6

文档

// 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());
});
Run Code Online (Sandbox Code Playgroud)