Лучший способ геокодировать почтовый индекс Великобритании с помощью Google Maps API?

Каков наиболее эффективный и точный способ геокодирования почтового индекса Великобритании? Использование встроенного объекта геокодирования приводит к сильно размытым результатам (множество почтовых индексов, возвращающих только общую область).

Существуют ли какие-либо бесплатные службы геокодирования почтовых индексов Великобритании, к которым я могу подключиться через JavaScript?


person joshcomley    schedule 14.05.2010    source источник
comment
*** Я работаю на границе IO UK ****, у нас есть служба отдыха, чтобы сделать, например, то, что вы просите. и возвращает GEO JSON: market.mashape.com/vanitysoft/uk-boundaries-io   -  person Jeryl Cook    schedule 31.12.2015


Ответы (2)


Редактировать: чтобы было понятнее, для геокодирования используется локальный поиск в API поиска Google, а не в API карт Google, что намного точнее.

Лучше всего использовать Google Search Api.

Если вы получили ключ API и все настроили: http://code.google.com/apis/ajaxsearch/

var localSearch;
var map;
var icon;
var addressMarkerOptions;
google.load("search", "1");
google.load("maps", "2");
google.setOnLoadCallback(initialize);

function initialize()
{
  localSearch = new GlocalSearch();
  icon = new GIcon(G_DEFAULT_ICON);
  addressMarkerOptions = { icon:icon , draggable: false};
  map = new GMap2(document.getElementById("map"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  plotAddress("OX4 1FJ");
}

/**
* This takes either a postcode or an address string
*
*/
function plotAddress(address)
{
  localSearch.setSearchCompleteCallback(null, 
    function() {

      if (localSearch.results[0])
      {     
        var resultLat = localSearch.results[0].lat;
        var resultLng = localSearch.results[0].lng;
        var point = new GLatLng(resultLat,resultLng);
        var marker = new GMarker(point, addressMarkerOptions);
        map.addOverlay(marker);
        map.setCenter(point, 5, G_NORMAL_MAP);
      }
      else
      {
        alert('address not found');
      }
    });

  localSearch.execute(address + ", UK");
}
person johnwards    schedule 14.05.2010
comment
Я думаю, что ОП обнаруживает, что использование API карт Google дает очень туманные результаты для почтовых индексов Великобритании. Я лично обнаружил, что API дает разные результаты для почтового индекса, чем результаты, наблюдаемые на веб-сайте карт Google. - person Paul Suart; 14.05.2010
comment
Это не использует API карт Google для геокодирования. Он использует API локального поиска, который намного точнее. Я отредактирую это, чтобы было ясно. - person johnwards; 14.05.2010
comment
+1 блестяще, именно то, что у меня было после того, как сработало великолепно, спасибо! Есть ли ограничения на количество запросов, которые вы можете сделать за один день? Я использовал это раньше, но ничего не мог вспомнить об этом, но я помню, что было какое-то ограничение? В любом случае, еще раз спасибо, супер! - person joshcomley; 15.05.2010
comment
Понятия не имею об ограничениях, но это будет где-то на сайте Google API. - person johnwards; 18.05.2010
comment
К сожалению, поисковый API устарел. - person johnwards; 13.11.2012

Я считаю, что API карт Live/Bing/Windows обеспечивает гораздо более точное размещение почтового индекса Великобритании, чем API карт Google.

В качестве альтернативы доступны базы данных почтовых индексов Великобритании, хотя они довольно дороги. К этому сообщению есть несколько интересных комментариев: http://jamiethompson.co.uk/web/2008/07/24/full-uk-postcode-database-for-free/

person Paul Suart    schedule 14.05.2010
comment
Кроме того, существует веб-сервис XML, JSON, JSONP jamiethompson.co.uk/projects/2010/04/30/ Вариант JSONP идеально подходит для прямого подключения к приложению JavaScript. - person jthompson; 19.05.2010
comment
Только что получил отрицательный ответ на этот ответ (более 4 лет спустя). Я предполагаю, что информация уже не соответствует действительности. - person Paul Suart; 09.10.2014
comment
Да, сайт больше не доступен. - person Henrique de Sousa; 19.07.2016