オートコンプリートを US のみに制限しようとすると、IE8 で失敗するという問題があります。これまで助けが見つからなかったので、何でも感謝します。エラー関数と成功関数は、ユーザーが位置の追跡を許可するかどうかに応じて実行されます。許可しないとIE9ではまったく機能しませんが、IE8では関係なく失敗します。最新のコードで更新 (DNRY...)
function setupPlacesAutocomplete() {
if (navigator.geolocation != undefined)
navigator.geolocation.getCurrentPosition(successFunctionAC, errorFunctionAC);
else
errorFunctionAC();
}
//refactor this method
function getFudgedBounds(lat, lng, fudge) {
return new google.maps.LatLngBounds(new google.maps.LatLng(lat - fudge, lng - fudge), new google.maps.LatLng(lat + fudge, lng + fudge));
}
function successFunctionAC(position) {
var defaultBounds = getFudgedBounds(position.coords.latitude, position.coords.longitude, .2);
var options = {
bounds: defaultBounds,
componentRestrictions: { country: 'us' }
};
setAutoComplete(options);
}
function errorFunctionAC() {
var defaultBounds = getFudgedBounds(parseFloat(geoip_latitude()), parseFloat(geoip_longitude()), .2);
var options = {
bounds: defaultBounds,
componentRestrictions: { country: 'us' }
};
setAutoComplete(options);
}
function setAutoComplete(options) {
var input1 = document.getElementById('StartSearchTerm');
var autocomplete1 = new google.maps.places.Autocomplete(input1, options);
var input2 = document.getElementById('EndSearchTerm');
var autocomplete2 = new google.maps.places.Autocomplete(input2, options);
$('.pac-container').css('z-index', 9999);
}