我正在尝试获取我在地图上显示的地方的更多信息,例如地址,电话号码等。您可以在此处查看我的代码:
http://jsfiddle.net/aboother/4q3jcg1s/
我已经完成了'console_log(地点)',如下所示:
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
console.log(place);
var request = { reference: place.reference };
service.getDetails(request, function(details, status) {
google.maps.event.addListener(marker, 'click', function() {
console.log(place);
infowindow.setContent(place.name + "<br />" + place.vicinity);
infowindow.open(map, this);
});
});
}
但即使我知道您可以获取此信息,我也看不到此对象中的地址或电话号码。我只能看到'附近','名字'等基本信息。有人可以帮忙吗?
答案 0 :(得分:3)
您使用该服务:service.nearbySearch()
根据某些条件在附近搜索。同样,还有以下服务:service.getDetails()
来获取所有透视细节。我并不完全确定,但根据我的理解,该服务使用placeID来匹配并获取与该位置相关的所有详细信息。
关于代码,不是直接为每个地方创建标记,而是将其传递给getDetails()服务,然后创建标记。我记录了这个地方并且所有细节都在那里,您可以根据需要使用数据。
以下是修改后的代码:
function callback(results, status) {
if(status == google.maps.places.PlacesServiceStatus.OK) {
for(var i = 0; i < results.length; i++) {
service.getDetails(results[i], function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
console.log(place);
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name);
infowindow.open(map, this);
});
}
});
}
}
}
以下是小提琴:使用您用于扩展每个位置的控制台,您将看到他们的所有数据,从电话号码到他们的评论:http://jsfiddle.net/r61tqtxw/1/