需要帮助以获取价值Google Maps API .pac-container类

时间:2019-04-13 23:05:45

标签: javascript jquery api

在用户点击时,当用户使用Google Maps API输入位置时,我试图从“ .pac-item”类中提取值。

我已阅读以下内容

https://developers.google.com/maps/documentation/javascript/places-autocomplete

由于.pac-container类是动态生成的,因此我尝试使用事件处理程序来监听.pac-container类,但无法获得用户单击console.log或单击的名称或位置。事件日志什么。

$(document).on("click", ".pac-container", function(event) {

  var selected = $(this).val().trim();

  console.log(event);

  console.log("selected: " + selected);

});

I've also tried

$(document).on("click", ".pac-item", function(event) {

  var selected = $(this).val().trim();

  console.log(event);

  console.log("selected: " + selected);

});

我希望用户点击,无论点击任何地方的值。例如,如果用户键入portland和.pac-container项目列表:

波特兰,或者我们 波特兰国际机场站 波特兰国际机场

如果用户单击波特兰,或者,我们希望将该字符串保存到所选变量中。

现在,console.log不会有任何事件,console.log也没有事件。

1 个答案:

答案 0 :(得分:0)

好的,找到解决方案。

在Google地图代码的这一部分:

searchBox.addListener('places_changed', function () {

    var places = searchBox.getPlaces();

    googleLng = searchBox.bounds.ga.j;

    //give the lng some precision, as the open weather map api doesn't like 
    floating point numbers too long
    googleLng = googleLng.toPrecision(5);

    googleLat = searchBox.bounds.ma.j;

    //give the lat some precision, as the open weather map api doesn't like 
    floating point numbers too long
    googleLat = googleLat.toPrecision(5);

    console.log(googleLng);
    console.log(googleLat);

    clicktoCoord(googleLat, googleLng);


    if (places.length == 0) {
        return;
    }

    // Clear out the old markers.
    markers.forEach(function (marker) {
    marker.setMap(null);
    });

console.log(searchBox)返回一个对象,该对象包含“ .pac-item”列表上我需要的数据(纬度和经度)。有了纬度和经度,我就可以将其放入一个开放的天气地图ajax api调用中,并且可以在用户单击的任何“ pac-item”列表上获取天气情况。

希望这对某人有帮助。