PlacesService和html节点的需要

use*_*318 3 licensing google-maps google-places-api

<html>
    <head>
        <script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;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>
Run Code Online (Sandbox Code Playgroud)

我的代码运行良好,但是我不知道为什么需要使用

PlacesService(document.getElementById('some id')); 
Run Code Online (Sandbox Code Playgroud)

如果我只使用PlacesService();我会得到一个错误。html_attributions为none:html_attributions: Array[0]length: 0

那么,我的代码是否还可以,还是应该怎么办?

http://jsfiddle.net/c6p14g4d/

小智 5

(如果6个月后仍未弄清),您的代码将起作用,并应遵守Google关于PlacesService的政策

根据我的理解,“归因”是将信息的来源归因于特定合作伙伴的某种信息,例如,Yelp的评论(我不知道他们是否与Yelp合作,但这就是想法)。显然,合作伙伴希望信息的最终用户知道谁提供了信息。

这个想法是,当您使用PlacesService执行搜索时,如果有附加的地图,它将自动呈现“属性”。因此,如果您没有地图,该库将尝试将属性呈现到html节点中。隐藏该节点(或地图)违反了策略。

重要的是要注意,html_attributions使用库时,数组不一定在所有情况下都为空,但是只要您在DOM中提供可见的节点,就可以了,因为如果库是自动的,则库会自动使用属性来填充节点那里。