Латинские расстояния, автоматизированные от фиксированных позиций до сети в базе данных (Австралия) - PullRequest
0 голосов
/ 02 февраля 2012

Хорошо, это большой вопрос, я много читал об этом здесь и через Интернет.

Лучшее, что я нашел, это: эта ссылка

Теперь вот наша проблема (это только для австралийских расстояний). У нас есть база данных значений lat и lng для каждого пригорода в Австралии.

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

Так что вроде:

запись a: lat lng -> запись b: lat lng (выполнить расчет исохранить расстояние в записи) запись a: lat lng -> запись b: lat lng (выполнить расчет и сохранить расстояние в записи)

и т. д. (и не делать запись b: lat lng -> запись a:lat lng (как это уже известно)

На данный момент самый простой способ получить доступ к этим данным через имена реального мира, такие как состояние пригорода и почтовый индекс, которые мы имеем в db вместе со значениями lat lng.

Это действительно лишнее, какch ввод данных имеет идентификатор.аналогично моему примеру выше.

Цель состоит в том, чтобы получить:

ID 1 -> расстояние ID2 =: 75 км

Где ID1 = -27.4561899, 153.3564564 (известное имяRaby Bay QLD 4163) и ID2 = -27.1054534, 152.948145 (известное имя Morayfield QLD 4560)

вы понимаете, куда я иду с этим ...

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

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

, что даст нам приблизительно 84 506 500 результатов (.ish)

, очевидно,мы должны были бы сделать вычисления для того же идентификатора, потому что тогда мы можем повторить 0 км

Так что любые предложения, кто-нибудь видел или делал что-то подобное раньше?

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

Поскольку это для сайта участников и рекламируемых товаров. Итак, мы знаем:

Местоположение рекламодателей и местоположение Посетителейпоэтому хотелось бы на лету извергать расстояние от покупателя до продавца.Без запуска большого клиентского кода.

Ste

1 Ответ

2 голосов
/ 02 февраля 2012

Расчеты на самом деле не так уж и сложны - конечно, не стоит предварительно вычислять 84M + строки в таблице, где почти наверняка будет использоваться очень мало из них.

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

Если вы настроены на эту архитектуру, рассматривали ли вы использование таблицы в качестве кэша, чтобысохранять результаты так, как их просят люди, и они будут первыми, где ваше приложение будет искать ответ при поступлении нового запроса?

...