Как реализовать гео-хранилище данных и вычисления? - PullRequest
4 голосов
/ 31 мая 2010

Хорошо, позвольте мне кратко объяснить это:

1. Я хочу создать веб-сайт, который предоставляет услуги на основе местоположения, например http://fireeagle.yahoo.net/.

2. Я полагаю, что большинство этих служб имеют отношение к долготе и широте.

3. Существуют ли какие-либо конкретные базы данных / хранилища данных / структуры данных, подходящие для таких приложений? Я имею в виду простоту хранения долготы, широты, простоту вычисления или простоту использования.

Я новичок в этом, и любые отзывы приветствуются

Ответы [ 3 ]

2 голосов
/ 31 мая 2010

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

Если вы используете стек с открытым исходным кодом, я бы порекомендовал PostGIS , пространственное расширение Postgresql. Если вы используете стек MS, попробуйте пространственные расширения для SQL Server 2008 .

1 голос
/ 09 апреля 2011

MySQL имеет пространственное расширение с учебными пособиями здесь . Основная идея получения быстрых запросов состоит в том, чтобы создать таблицу со столбцом с пространственным индексом, индексом R-tree , который будет быстрым для запросов диапазона, таких как «дать мне точки около этой точки».

Конечно, есть Postgres с PostGIS, и вы можете оплатить эту услугу у таких компаний, как SimpleGeo .

0 голосов
/ 31 мая 2010

Я бы рекомендовал вам рассмотреть GeoDjango
Это очень приятно, поскольку объединяет простоту Python / Django и мощь PostGIS. Но он также может быть сложным и обеспечивать слишком много функций, поэтому тратит ваше время.

Если у вас нет особых потребностей, есть еще одно более простое решение, которое можно использовать только с Django или Python, а именно Geopy . Не добавляя пространственные расширения в базу данных, он позволяет выполнять геопространственные вычисления с использованием общих структур данных (также любой базы данных). Вы можете рассчитывать расстояния, делая (обратное) геокодирование. Взгляните на страницу Getting Started , а также прямо на код , поскольку она хорошо документирована. Я использую его для проекта Dynamic Carpooling, и он работает очень хорошо.

Оба решения хорошо сочетаются с платформой Django, поэтому вы легко сможете разработать веб-сайт на основе предоставляемых услуг.

...