我正在尝试使用Google Places API网络服务从地方详情请求中获取数据,例如电话号码。我无法获得与此guide中显示的响应数据类似的响应数据,即使我从同一地址获取地点ID。
我获得的地点ID与指南中的地点不同。我的地方ID是'ChIJ8UadyjeuEmsRDt5QbiDg720',他们是'ChIJN1t_tDeuEmsRUsoyG83frY4'。如果我使用他们的地方ID,我会得到我需要的所有数据。
我能得到的唯一数据是:address_components,adr_address,formatted_address,geometry,icon,id,name,place_id,reference,scope,types,url和nearby。如何从请求中获取电话号码等数据?
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();
答案 0 :(得分:0)
Google Places API中缺少电话号码,因为Google地图没有该特定地点的电话号码。如果您在Google地图上请求包含电话号码的地点的详细信息,则会返回该信息。
仔细看看ChIJ8UadyjeuEmsRDt5QbiDg720。这是一个名为“Workplace 6”的办公楼 - 请注意,细节表明它属于premise
类型。如果您访问url
字段(https://maps.google.com/?q=Workplace+6&ftid=0x6b12ae37ca9d46f1:0x6defe0206e50de0e)中的Google地图网址,您会发现其中没有列出电话号码。
另一个地方ID,ChIJN1t_tDeuEmsRUsoyG83frY4,适用于该大楼(Google)内的其中一家公司。如果您比较address_components
或formatted_address
,您会发现他们的地址不一样(Google的地址是该大楼的第5层)。
一般情况下,某个地方的任何一个领域都可能缺席。如果Google地图不知道,或者它根本不适用(例如,您在法国找不到opening_hours
),就会发生这种情况。正如Place Details Results的文档所说:
每个结果可能包含以下字段:
[强调我的。]