Определение почтового индекса местоположения с использованием широты и долготы - PullRequest
0 голосов
/ 20 февраля 2019

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

Location dataset

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

Zip codes and their lat lon location

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

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

1 Ответ

0 голосов
/ 20 февраля 2019

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

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

...