为什么谷歌地图地点只在getDetails方法中返回具有此类代码(例如:V83X + 9G)的地点名称?



我正在从事一个需要有关特定地点的所有信息的项目。我得到的信息不完整,我以以下格式获得:"V83X+9G"而不是"V83X+9G 巴黎,法国"。我用于获取此信息的代码如下:

var service = new google.maps.places.PlacesService(map);
var service2 = new google.maps.places.PlacesService(map);
service.textSearch(request, function(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
placeId5 = results[0].place_id;
var request1 = {
placeId: placeId5,
fields: ['name', 'rating', 'formatted_phone_number', 'geometry']
};
service2.getDetails(request1, function(place, status) {
var n = place.name.indexOf(" ");
var new_place_name = place.name.slice(n+1,place.name.length);
// placeName4 = new_place_name;
placeName4 = place.name;
var select = document.getElementById("location");
var opt = document.createElement('option');
opt.value = n;
opt.innerHTML = place.name;
select.appendChild(opt);
var url = window.location.href;
var n3 = url.lastIndexOf('/');
var lastTwo = url.substring(n3 + 1);
var g = new XMLHttpRequest();
g.open("GET", "/insertCircle?raio=" + iCircle2.getRadius()/1000 + "&latitude=" + iCircle2.getCenter().lat() + "&longitude=" + iCircle2.getCenter().lng() + "&area=" + (Math.round((Math.PI * (iCircle2.getRadius()/1000) * (iCircle2.getRadius()/1000))*1000)/1000) + "&localizacao=" + new_place_name + "&place_id=" + placeId5 + "&mapa_id=" + lastTwo, true);
g.send();
});
}
});

如果有人能帮助我,我将不胜感激。

您需要请求"地点详细信息"请求中的"formatted_address"字段才能获取地点的完整地址。喜欢这个:

var request1 = {
placeId: placeId5,
fields: ['name', 'rating', 'formatted_phone_number', 'geometry', 'formatted_address']
};

然后在响应中检索它,如下所示:

service2.getDetails(request1, function(place, status) {
var fullAddress = place.formatted_address;
...
});

或者,您可以使用address_components.查看此链接以查看支持的地点数据字段的完整列表。还有一个"地点详细信息"的实时工作示例,可在此处显示该地点的完整地址。

希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新