2014-10-15 2 views
-2

У меня есть пользователь в моей системе, каждый из которых связан с zipcode. Они будут искать мою базу данных для билетов, каждая из которых связана с определенным местом. Это место также имеет почтовый индекс. Когда они запускают запросы к базе данных для билетов, мы хотим отфильтровать результаты, чтобы включать только билеты с местоположением в пределах определенного радиуса zip-кода продавца.Расчет городов с радиусом zipcode

Я нашел базы данных, которые дают мне zip-коды lat и long, а также городов. Мой вопрос таков: какой лучший способ выполнить описанный выше запрос? Какие инструменты подходят?

В настоящее время я использую Python и Django. GeoDjango выглядит как возможность, но он тяжеловес, и лицензия GPL V2.0, прикрепленная к PostGIS, довольно ограничительна. В качестве альтернативы, я мог бы выполнить всю работу на сервере приложений, но для этого потребовался бы, чтобы мой поиск всегда сравнивал один город с каждым городом в БД, так как результаты, возвращаемые из БД, никогда не были бы отделены по местоположению. Любые мысли о том, как это сделать?

Спасибо

+0

Лицензия GPL PostGIS не имеет значения, поскольку это отдельная часть программного обеспечения, которое вы используете, вы не делаете производную работу. – Anentropic

ответ

2

Если вы хотите, чтобы избежать тяжелых ГИС вещи, и ваш радиус статична, я бы создать таблицу поиска: для каждого ZIP есть, дайте мне эти застежки-молнии, которые считаются «достаточно близко» ,

Чтобы вычислить эту таблицу поиска, вам нужно сделать некоторые материалы ГИС; но это можно сделать в автономном режиме, и вы можете использовать другие службы (такие как OSM или геолокация google).

+0

Я думал о предварительном вычислении всех расстояний. Это типичное решение? Я проверю OSM и геолокацию google – user1220235

+0

, это типичное, надежное, простое в понимании и легко реализуемое решение, если ваш радиус статичен (достаточно), и вы не против нескольких миль плюс или минус, что вы вероятно, не будет, потому что тогда вы бы не использовали молнии в первую очередь. Типичное полномасштабное решение требует геопространственной ГИС. – ch3ka

+0

Это звучит хорошо для меня. Нам не нужна невероятно высокая степень точности, и я полагаю, что всегда могу пересчитывать таблицу поиска так часто, чтобы учитывать измененные данные. – user1220235

Смежные вопросы