Javascript Google放置api不返回几何体

Javascript Google放置api不返回几何体,javascript,google-maps,google-places-api,Javascript,Google Maps,Google Places Api,我正在使用“google places autocomplete API”获取关于不同城市的数据,使用javascript如下: var service = new google.maps.places.Autocomplete(document.getElementById('search-btn')); service.addListener('place_changed', function () { var place = service.getPlace(); con

我正在使用“google places autocomplete API”获取关于不同城市的数据,使用javascript如下:

var service = new google.maps.places.Autocomplete(document.getElementById('search-btn'));
service.addListener('place_changed', function () { 
    var place = service.getPlace();
    console.log(place.geometry.location);
});
问题:对象没有(lat,lng),但它有以下消息

TypeError:“调用方”和“参数”是受限函数 属性,无法在此上下文中访问

at Function.remoteFunction(:3:14)

位于Object.InjectedScript.callFunctionOn(:750:66)


我似乎也有同样的问题。地图运行良好,昨天返回了几何图形,今天只是空白,没有纬度/经度,还有同样的错误

看来他们更新了API,有些东西坏了

编辑:

对我来说,它是可以修复的,它采用的是标记坐标,而不是试图将其地理编码到地址,然后采用地址的坐标

我的代码如下(工作时间为12.10.15):

这一个停止工作,但能够通过从标记获取坐标来修复它。在我的例子中,Pos变量是marker.getPosition()

                        if (status == google.maps.GeocoderStatus.OK) 
                        {
                            $("#address").val(results[0].formatted_address);
                            $("#id_location_0").val(marker.position.lat());
                            $("#id_location_1").val(marker.position.lng());
                        } 
似乎有报道

你可以试试:

var service = new google.maps.places.Autocomplete(document.getElementById('search-btn'));
service.addListener('place_changed', function () { 
    var place = service.getPlace();
    console.log(place.geometry.location.lat(), place.geometry.location.lng());
});
临时解决办法:

var lat = results[0]['geometry']['location'].lat();
var lng = results[0]['geometry']['location'].lng();

我也有同样的问题。我的Lat和Lng似乎是功能性的,但也有错误。 为了获得实际值,您必须实际调用lat和longas函数,并将其分配给回调中的一个变量

  geocoder = new google.maps.Geocoder();
  geocoder.geocode({'address' : addressString}, function(results, status){
    if(status == google.maps.GeocoderStatus.OK){

         ///~~~~~~~~~The part you care about ~~~~~~~~~~///
          var lat = results[0].geometry.location.lat();
          var lng = results[0].geometry.location.lng();

      console.log(lat); // --> 37.7603726
      console.log(lng); // --> -122.47157
    }
  });

您的
搜索btn
是一个按钮?@MrNeo它是一个文本框:
我临时找到了一个解决方案,在我将json对象放入“place”变量后,我使用如下地址从google geocode api请求(lat,lng):
$.getJSON(“https://maps.googleapis.com/maps/api/geocode/json?address=“+place.u地址+“&key=myKey”,函数(data,state){var geometry_arr=[data['results'][0]。geometry.location['lat'],data['results'][0]。geometry.location['lng']];})
谢谢,这对我的控制台非常有效。log(place.geometry.location.lat(),place.geometry.location.lng();
  geocoder = new google.maps.Geocoder();
  geocoder.geocode({'address' : addressString}, function(results, status){
    if(status == google.maps.GeocoderStatus.OK){

         ///~~~~~~~~~The part you care about ~~~~~~~~~~///
          var lat = results[0].geometry.location.lat();
          var lng = results[0].geometry.location.lng();

      console.log(lat); // --> 37.7603726
      console.log(lng); // --> -122.47157
    }
  });