GeoDjango / PostGIS / Концепция: Как связать записи пользователя с информацией шейп-файла? - PullRequest
0 голосов
/ 06 февраля 2012

Привет Stackoverflow люди,

Я работаю над регистрацией организации, в которой организации могут регистрировать свои области проекта (например, всю Неваду, весь США или просто город, например, Бостон), и пользователи должны найти все организации, на которые распространяется данная организация, в соответствии с их широтой охвата. & lng.

Как лучше всего связать информацию об организации с поиском пользователей?

Является ли следующий процесс приемлемым или у вас есть какие-либо предложения:

  1. Я загружаю шейп-файлы всех необходимых штатов, округов и т. Д. В моя база данных postgis
  2. Если организация добавляет "штат Нью-Йорк" в их зона покрытия, я бы посмотрел форму многоугольника для государства (или идентификатор фигуры) и сохраните его в моей таблице покрытия
  3. При поиске покрытия организации я найду все проекты, в которых пользователь lat & lng является частью

Можно ли с помощью указанного выше процесса соединить информацию о пользователе с информацией о файле формы?

Как найти полигоны в файлах форм? Могу ли я ссылаться на них с идентификатором?

Как поиск будет работать с городами, поскольку в большинстве списков с названием города, лат, lng указывается только центральная точка города? Или есть таблица для четных границ города?

Спасибо за вашу помощь и предложения!

1 Ответ

1 голос
/ 07 февраля 2012

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

SELECT * from myTable where ST_DWithin(users_point, the_geom, 0.002);

// единицы измерения расстояния ST_DWithin указаны в геометрических единицах.

PS shp2pgsql автоматически создает последовательный столбец (уникальный идентификатор)

...