我已经使用谷歌地图API打了一堵墙,所以寻找答案。我正在为我正在创建的事件添加一个位置,我想要做的是如果用户使用文本搜索找不到位置,那么他们可以将标记拖动到所需的位置,从而设置细节。
以下是我的代码的粗略示例
function getLocationDetails(pos) {
var geocoder = new google.maps.Geocoder;
geocoder.geocode({'location': pos}, function(results, status) {
if (status === 'OK') {
if (results[0]) {
console.log(results);
getPlaceName(results[0].place_id);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
function getPlaceName(pid){
var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(data.map);
service.getDetails({
placeId: pid
}, function(place, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
console.log(place.name);
}
});
}
所以基本上发生的是,在拖动标记并传递pos之后它会返回一个结果数组,所以我不知道应该使用哪一个,也似乎永远不会像我期望的那样返回一个地名例如,如果我将标记拖到O2上,那么我想要“伦敦的O2”,然后没有结果说“O2”就位!名字!任何想法,我做错了什么?
非常感谢