2016-03-01 43 views
0

我试图使用Google Places API Web服务从地方详细信息请求中获取数据,例如电话号码。我无法获得类似于此guide中显示的响应数据,即使我从同一地址获取地点标识。如何使用Google Places API Web Service从地点详情请求中获取所有地点详情?

我得到的地方标识与指南中的标识不同。我的地点ID是'ChIJ8UadyjeuEmsRDt5QbiDg720',他们是'ChIJN1t_tDeuEmsRUsoyG83frY4'。如果我使用他们的地点ID,我可以获得我需要的所有数据。我可以得到的唯一数据是:address_components,adr_address,formatted_address,geometry,icon,id,name,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(); 

回答

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_componentsformatted_address,您会看到他们的地址不相同(Google的地址位于该建筑物的第5层)。

一般来说,一个地方的任何领域都可能不存在。如果Google地图不知道它,或者它不适用(例如,您在法国找不到opening_hours),则会发生这种情况。至于Place Details Results的文件说:

每个结果可以包含以下字段:[重点煤矿]

+0

库我使用,以获得地方ID在第一地方使用地理编码服务,所以我认为这是问题。感谢您指出地址差异 – pyromancer2

相关问题