<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places&language=pt-PT" type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var request = {
placeId: 'ChIJO_PkYRozGQ0R0DaQ5L3rAAQ'
};
service = new google.maps.places.PlacesService(document.getElementById('places'));
service.getDetails(request, callback);
function callback(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
console.log(place);
}
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body> <div id="places"></div> </body>
</html>
我的代码运行良好,但我不知道为什么需要使用
PlacesService(document.getElementById('some id'));
如果我只使用PlacesService();
,我会收到错误消息。 html_attributions为none:html_attributions: Array[0]length: 0
那么,我的代码是好的,或者我该怎么办?
答案 0 :(得分:5)
(如果您在6个月后仍然无法解决问题)您的代码将正常运行should adhere to Google's policies surrounding the PlacesService。
根据我的理解,&#34;归因&#34;是某种将信息来源归因于特定合作伙伴的信息,例如,来自Yelp的评论(我不知道他们是否与Yelp合作,但这是他的想法)。显然,合作伙伴希望信息的最终消费者知道是谁提供的。
这个想法是,当您使用PlacesService执行搜索时,如果有附加的地图,它将呈现&#34; attributions&#34;自动。因此,如果您没有地图,则库将尝试将属性呈现为html节点。隐藏该节点(或地图)是违反该策略的。
重要的是要注意在使用库时html_attributions
数组在所有情况下可能并不总是为空,但只要您在其中提供可见节点即可。 DOM,你很好,因为如果它们存在,库会自动用属性填充节点。
答案 1 :(得分:0)
来自documentation,需要是HTMLDivElement或地图:
Constructor Description PlacesService(attrContainer:HTMLDivElement|Map) Creates a new instance of the PlacesService that renders attributions in the specified container.