わかりましたので、住所または緯度/経度の組み合わせを取り、ここで結果を参照することを提案する、機能する (ほぼ) ジオコーダーを構築しました。
$(this).autocomplete({
source:function (request, response) {
if (geocoder == null) {
geocoder = new google.maps.Geocoder();
}
geocoder.geocode({'address':request.term }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var searchLoc = results[0].geometry.location;
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
var latlng = new google.maps.LatLng(lat, lng);
var bounds = results[0].geometry.bounds;
geocoder.geocode({'latLng':latlng}, function (results1, status1) {
if (status1 == google.maps.GeocoderStatus.OK) {
if (results1[1]) {
response($.map(results1, function (loc) {
return {
label:loc.formatted_address,
lat:lat,
lng:lng,
value:loc.formatted_address,
bounds:loc.geometry.bounds
}
}));
}
}
});
}
});
},
90% の確率で問題なく動作します。ただし、ポップダウン リストに返される最初の項目がクリックできない場合があることに気付きました。変数のログを設定しましたが、場合によってはまたはstatus
であることに気付きました。どちらの場合も、リストに値がロードされ、リストのすべてが最初のものを除いて選択可能になります。可能な解決策のアイデアはありますか?ZERO_RESULT
QUERY_LIMIT_REACHED