Почтовые индексы Великобритании для геокодов

Я искал это большую часть утра и не нашел подходящего способа найти британские почтовые индексы по их геолокации (долгота / широта) с помощью Google Maps. Есть ли кто-нибудь, у кого есть опыт в этом?

Я понимаю, что у Royal Mail есть API для поиска по почтовому индексу по геолокации, но это ужасно дорого для таких данных, неужели должен быть другой способ?

Отметим, что функциональность, которую я пытаюсь достичь, заключается в следующем: http://www.rightmove.co.uk/draw-a-search.html. Когда форма создана, необходимо указать список почтовых индексов Великобритании (первые 3/4 цифры почтового индекса для области).

Заранее спасибо.


person Chris Dixon    schedule 23.04.2014    source источник
comment
developers.google.com/maps/documentation/geocoding/.   -  person Paul Sullivan    schedule 23.04.2014
comment
Я с этим сталкивался, но там вроде нет ничего для областей, только long / lats? Теоретически мне нужно было бы передать несколько геолокаций и все указанные почтовые индексы, которые находятся в этой области.   -  person Chris Dixon    schedule 23.04.2014
comment
Разве это не подходящий способ найти почтовые индексы Великобритании по их геолокации (долгота / широта)?   -  person geocodezip    schedule 23.04.2014
comment
В вопросе есть 3-й абзац, с самого начала его публикации :)   -  person Chris Dixon    schedule 23.04.2014


Ответы (1)


У вас как минимум 3 требования

  1. Список почтовых индексов Великобритании с координатами.
  2. Рисование многоугольника на карте.
  3. Расположение почтовых индексов внутри многоугольника.

Google для №1 (координаты почтового индекса великобритании бесплатно). Хранить данные, необходимые в базе данных

Используйте библиотеку Google Shape для №2

Для # 3 вы

Используйте следующий запрос, чтобы удалить большую часть почтового индекса за пределами многоугольника (на стороне сервера).

SELECT  name, lat, lng FROM table WHERE (lat BETWEEN minLat 
                      AND minLat )AND (lng BETWEEN minLng AND minLng)

to

Затем используйте точку в многоугольнике, чтобы удалить точки за пределами многоугольника (на стороне клиента)

function pointInPolygon(polySides,polyX,polyY,x,y) {
 var j = polySides-1 ;
  oddNodes = 0;
  for (i=0; i<polySides; i++) {
    if (polyY[i]<y && polyY[j]>=y  ||  polyY[j]<y && polyY[i]>=y) {
        if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x)  {
            oddNodes=!oddNodes; 
        }
    }
   j=i; }

  return oddNodes;
}

Эта Ссылка показывает № 2 и № 3

person david strachan    schedule 24.04.2014
comment
Что касается части 3, в Google Maps есть метод containsLocation, который может быть проще в использовании, developers.google.com/maps/documentation/javascript/examples/. - person Doogal; 21.09.2014