javascript - 如何使用 Google Places API Web 服务从地点详细信息请求中获取所有地点详细信息?

标签 javascript angularjs google-places-api

我正在尝试使用 Google Places API 网络服务从地点详细信息请求中获取数据,例如电话号码。我无法获得类似于此 guide 中显示的响应数据,即使我从同一地址获取地点 id。

我得到的地点 ID 与指南中的不一样。我的地点 ID 是“ChIJ8UadyjeuEmsRDt5QbiDg720”,他们的地点 ID 是“ChIJN1t_tDeuEmsRUsoyG83frY4”。如果我使用他们的地点 ID,我就能获得所需的所有数据。

我可以获得的唯一数据是:address_components、adr_address、formatted_address、几何图形、图标、id、名称、place_id、引用、范围、类型、url 和邻近区域。如何从请求中获取电话号码等数据?

var placesRequest = $http({
  method: "post",
  url: "https://maps.googleapis.com/maps/api/place/details/json?placeid=" + <my place id>+"&key=<my key>"
});

placesRequest.success(function (data) {
  console.log("data", data);
});

使用此代码的 Google Maps JavaScript API 存在同样的问题。

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: -33.866, lng: 151.196},
      zoom: 15
  });

  google.maps.InfoWindow();
  var service = new google.maps.places.PlacesService(map);

  service.getDetails({
     placeId: $scope.newUserData.address.place_id
  }, function(place, status) {
     if (status === google.maps.places.PlacesServiceStatus.OK) {
       if(place) {
         console.log("place", place);

        }
     }
  });
}
initMap();

最佳答案

Google Places API 中缺少电话号码,因为 Google map 没有该特定地点的电话号码。如果您请求提供 Google map 上包含电话号码的地点的详细信息,系统将返回该信息。

仔细看看 ChIJ8UadyjeuEmsRDt5QbiDg720。这是一座名为“Workplace 6”的办公楼 - 请注意,详细信息表明它属于前提类型。如果您访问 url 字段中的 Google map URL ( https://maps.google.com/?q=Workplace+6&ftid=0x6b12ae37ca9d46f1:0x6defe0206e50de0e ),您会发现那里也没有列出电话号码。

另一个地点 ID ChIJN1t_tDeuEmsRUsoyG83frY4 适用于位于该大楼内的其中一家企业 (Google)。如果您比较 address_componentsformatted_address,您会发现它们的地址并不完全相同(Google 的地址是该大楼的 5 楼)。

一般来说,一个地方的任何字段都可能不存在。如果 Google map 不知道这一点,或者它根本不适用(例如,您在法国找不到 opening_hours),就会发生这种情况。作为 Place Details Results 的文档说:

Each result may contain the following fields:

[强调我的。]

关于javascript - 如何使用 Google Places API Web 服务从地点详细信息请求中获取所有地点详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713520/

相关文章:

javascript - 将一个 Angular 工厂注入(inject)另一个工厂

angularjs - 任何实例的 Angular UI Bootstrap 模式关闭事件

ios - 我们可以使用 Google 的 place autocomplete api 在 swift 上填充 tableview 单元格吗?

javascript - 如何将我的数据转换成适合 d3.js sunburst 的格式?

javascript - 在 Javascript 中获取坐标下的内容

javascript - Node.js 从 do while 循环中调用异步函数

javascript - 我如何请求 Google Place API 返回地点的 ID?

javascript - 使用 AJAX、Javascript/jQuery、DOM 和 Facebook Like 按钮进行无限滚动

javascript - 确定用户在应用程序中的位置并加载不同的 Angular 脚本

ios - 如何生成 Google Place API session token ?