【问题标题】:Getting Latitude and Longitude from Google Places Autocomplete API从 Google Places Autocomplete API 获取纬度和经度
【发布时间】:2017-10-04 03:04:13
【问题描述】:

我正在使用 Google Places Autocomplete API 来获得输入,用户可以在其中输入城市并获得他们正在搜索的地点的建议。

我需要不仅获取该地点的名称,还需要获取该地点的纬度和经度,然后将谷歌地图居中放置。

问题在于,Google Places Autocomplete API 只返回该地点的描述,但不是坐标,至少我尝试过的是这样。

有人知道是否有办法在 same 请求中获取纬度和经度?

非常感谢任何帮助:')

【问题讨论】:

  • 在同一个请求号中,您可以从自动完成请求中获取place_id,并在地点详细信息请求中使用它来获取坐标。
  • 你知道这让我很难过...感谢@xomena 的评论!

标签: google-maps google-places-api google-places


【解决方案1】:

您要查找的所有信息都可以在Place Result 中找到。这就是您的代码的样子:

var input        = document.getElementById("address");
var autocomplete = new google.maps.places.Autocomplete(input, {types: ["geocode"]});

autocomplete.addListener("place_changed", function() {
    var placeResult = autocomplete.getPlace();
    var name        = placeResult.name;

    // The selected place's position
    var location    = placeResult.geometry.location;

    // The preferred viewport when displaying this Place on a map. 
    // This property will be null if the preferred viewport for the Place is not known.
    var viewport    = placeResult.geometry.viewport;

    // This is assuming your google map is saved in a variable called myMap
    if (viewport) {
       myMap.fitBounds(viewport)
    }
    else if (location) {
       myMap.setCenter(location)
    }
});

我最近创建了一个jQuery plugin,让与 Google 地图自动完成的交互变得轻而易举。这将是每次选择一个地点时使地图居中的代码:

$("#address").geocomplete({
    map: myMap
});

该插件还允许您自动填写地址表单、添加自定义样式、提供回调并修复烦人的scrolling issue

【讨论】:

    猜你喜欢
    • 2015-02-26
    • 2019-09-12
    • 2022-07-15
    • 1970-01-01
    • 2017-11-20
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多