Определение почтового индекса местоположения с использованием широты и долготы

Мне необходимо указать почтовый индекс для каждой записи в наборе данных, который содержит информацию о местоположении в следующем формате, размещенном в базе данных SQL-сервера,

Для идентификации почтовых / почтовых индексов местоположения я использую информацию, предоставленную Geo Names в формате Код страны, Почтовый код, Место, данные1, данные2, данные3, данные4, широта, долгота и точность, как показано ниже в тексте. файл,

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

Ps. Это требование, которое возникло для моего студенческого проекта последнего года.

1 ответ

Решение

Один из методов, который сработает, хотя и немного грубовато, - применить формулу Хаверсин к паре (Lat,Lon) в вашем начальном наборе данных (вашем первом изображении) к каждой из пар (Lat,Lon) в вашем База данных GeoNames.

Формула Haversine дает вам большое расстояние по кругу (помните, что Земля - ​​это глобус) между двумя парами широт / долгот. Если вы берете свой первый пример строки, широта 40.769, lon -73.9545, и циклически просматриваете каждую из записей в вашей базе данных GeoNames, вычисляя расстояние по большому кругу (для Северного Бергана, Уикхокена, Юнион-Сити и т. Д.), Отслеживая ближайшие расстояние, которое вы нашли, это должно дать вам хороший индикатор правильного почтового индекса.

Другие вопросы по тегам