获取没有地图的Google地方信息

时间:2014-05-04 19:13:50

标签: google-places-api

我引用了Google Place,并使用Javascript API获取地点详细信息。

只要页面上有地图,它就能正常工作。

但是如果没有地图 - 我只想要这个地方的细节 - 它会因为没有定义变量地图而中断。

documentation指定:

“通过调用服务的getDetails()方法请求放置详细信息。”

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

如果我遗漏了map变量,我得到:“Uncaught TypeError:无法读取未定义的属性'innerHTML'”

我可以提出服务器端请求,但您可以执行此操作的次数有限。

Javascript中是否有一种方法可以在没有地图的情况下获取地点详细信息?

2 个答案:

答案 0 :(得分:5)

在使用了这个之后,我想出的解决方案是创建一个新的地图对象而不将其附加到文档中。这个API似乎很好。

let map = new google.maps.Map(document.createElement('div'));

然后使用虚拟地图对象发出您的请求,与之前相同。

this.googlePlaces = new google.maps.places.PlacesService(map);
this.googlePlaces.getDetails(request, callback);

答案 1 :(得分:-1)

不需要地图,您可以将地点api与您放置的任何选择器一起使用,如果您想要获得特定的地点,请使用 自动填充

    var options = {
                types: ["(cities)"]
            }


            this.autocompletePlaces = new google.maps.places.Autocomplete(document.getElementById('txtPlaces'),options);

google.maps.event.addListener(this.autocompletePlaces, 'place_changed',function(){
var place = this.autocompletePlaces.getPlace();
                var address = this.autocompletePlaces.formatted_address;
});

如果您要查找带有搜索字词的地点列表,请使用

    this.autocompletePlaces = new google.maps.places.SearchBox(document.getElementById('txtPlaces'),options);
this.autocompletePlaces.addListener('places_changed', this.attachSelectedPlace.bind(self));

在最后一个案例中,你将得到一个places数组而不是一个地方。 希望有所帮助