2015-02-25 3 views
0

Как ограничить службу поиска адресов Google Maps для имен улиц в определенном почтовом индексе или городе. В настоящее время он дает мне все адреса в Великобритании, но я хотел бы ограничить его адресами только в Бирмингеме, Великобритания (B-почтовый индекс).Ограничить поиск адресов в Google Картах определенным почтовым индексом

код до сих пор

JS

$(document).ready(function() { 
    addressLookup(); 
}); 

function addressLookup() { 
     var options = { 
     componentRestrictions: { 
      country: 'uk' 
     } 
    }; 
    var address = document.getElementsByClassName('form-control booking address'); 


    for(var i=0; i< address.length; i++){ 
    new google.maps.places.Autocomplete(address[i], options); 
    } 
     //new google.maps.places.Autocomplete(address, options); 
} 

HTML

<input type="text" class="form-control booking address" id="pickup" placeholder="From"> 
<input type="text" class="form-control booking address" id="destination" placeholder="To"> 

Fiddle here

+0

добавьте некоторую логику, прежде чем сделать свой вызов Autocomplete, предотвращая его, если он не запускает 'B', например. 'if (address [i] .substr (0, 1)! == 'B') ...' – duncan

+0

@duncan - эй, я не уверен, что следую 100%, не могли бы вы показать мне пример? – methuselah

ответ

1

Если определение почтового индекса Бирмингема начинается с B, например, и я предполагаю, что каждое значение в массиве address вы обхват над это почтовым индексом (это?):

function isBirmingham(postcode) { 
    return postcode.substr(0, 1) === 'B'; 
} 

function addressLookup() { 
    var options = { 
     componentRestrictions: { 
      country: 'uk' 
     } 
    }; 
    var address = document.getElementsByClassName('form-control booking address'); 

    for (var i = 0; i < address.length; i++) { 
     if (isBirmingham(address[i])) { 
      new google.maps.places.Autocomplete(address[i], options); 
     } 
    } 
} 

Обновление:

Как насчет установки componentRestrictions в вариантах автозаполнения? См. https://developers.google.com/maps/documentation/javascript/reference#AutocompleteOptions - только в документации упоминается, что вы можете указать страну. Однако this article демонстрирует использование почтового индекса.

+0

Они не просто содержат почтовые индексы, а фактические уличные адреса. Сценарий [скрипка] (http://jsfiddle.net/45948g02/3/) показывает, как это работает. – methuselah

+0

Можете ли вы дать нам образец адреса, на который кто-то может печатать? – duncan

+0

Сверху моей головы трудно сказать. '123 Buckingham Palace Road, Лондон, Соединенное Королевство'? Все они будут адресами на базе Великобритании. Проблема с подходом, который вы предлагаете, заключается в том, что службы поиска Google (которые я использую для сужения адресов) выплескивают все виды адресов в другом формате. Следовательно, я думал, что было бы лучше ограничить список адресов, сделав вызов API вместо проверки ввода ввода. – methuselah

Смежные вопросы