【发布时间】:2017-06-21 00:32:56
【问题描述】:
对于返回这些 id 的 AutoCompleteService.getPlacePredictions 的结果,我在 PlacesService.getDetails 中遇到了问题。
这是我的代码(也在this JSFiddle):
function initService() {
var placesService = new google.maps.places.PlacesService(window.document.createElement('div'));
var autocompleteService = new google.maps.places.AutocompleteService();
var showAddress = function(input) {
autocompleteService.getPlacePredictions({ input }, displayTopSuggestion);
}
var displayTopSuggestion = function(predictions) {
var placeId = predictions[0].place_id;
placesService.getDetails({
placeId: placeId
}, function(place, status) {
console.log(placeId + ": " + status);
});
}
showAddress('401 Park Drive, Boston, MA');
showAddress('120 Wall Street, New York, NY');
}
第一个显示“OK”(很酷),第二个显示“NOT FOUND”(令人困惑):
ChIJdd3kdPR544kRllG3JcXaViQ: OK
ChIJq7N18T1awokRXtu1sjDO7Jw: NOT_FOUND
也就是说,PlacesService 不知道 AutocompleteService 的结果中返回的 placeId。
有人知道这里发生了什么吗?
【问题讨论】:
-
我的状态都OK (fiddle)
-
感谢您查看@geocodezip。这是我从你的小提琴中得到的:ChIJdd3kdPR544kRllG3JcXaViQ ChIJq7N18T1awokRXtu1sjDO7Jw status=OK, address=401 Park Dr, Boston, MA 02215, USA Uncaught TypeError: Cannot read property 'formatted_address' of null
-
我得到:ChIJdd3kdPR544kRllG3JcXaViQ EjsxMjAgV2FsbCBTdHJlZXQsIFN0YXRlbiBJc2xhbmQsIE5ldyBZb3JrLCBOWSwgVW5pdGVkIFN0YXRlcw状态= OK,地址= 120华尔街,Staten岛,NY 10301,USA状态= OK,地址= 401公园博士,波士顿,MA 02215,USA也许你正在连接到另一个不一致的服务器(还)。
-
@geocodezip 它看起来确实与上下文相关。 developers.google.com/maps/documentation/javascript/examples/… 如果我尝试这个地址,输入“120 Wall Street, New York, NY”并在下拉菜单中单击它,这是它第一次工作(当我们从悉尼开始时)。如果我第二次尝试同样的事情(在我们搬到纽约之后),我会看到“没有可用的详细信息”对话框。
标签: javascript google-maps google-api google-places-api