Возможно ли это с ГИС?

Я только знакомлюсь с ГИС, но мне хотелось бы знать заранее, возможно ли следующее с текущими приложениями/инструментами ГИС...

  1. Я получаю точку для адреса по геокодированию. Легкая часть.
  2. Теперь, если точка попадает в границу (может быть город/округ/штат), мне нужно получить данные (любой идентификатор/флаг), связанные с границей.
  3. Затем на основе идентификатора/флага я применяю некоторую бизнес-логику.

Мой вопрос...

  1. Как определить границу? Какие инструменты я должен использовать для этого?
  2. Как я могу сохранить определение границы в базе данных, чтобы проверить, попадает ли точка в нее? Это должно быть сделано в бэкэнде, а не на визуальных картах, поскольку мы не собираемся показывать/использовать карты.
  3. Как мне связать свои пользовательские данные (идентификатор/флаг) с указанным выше определением границы?

Надеюсь, у меня правильное предположение о возможностях ГИС. Большинство примеров, которые я вижу, связаны с людьми, пытающимися показать карты с данными, которые мне совсем не нужны. Также, пожалуйста, предложите мне некоторые инструменты/книги по этому вопросу.


person Gnu Engineer    schedule 07.05.2010    source источник


Ответы (1)


Как определить границу? Какие инструменты я должен использовать для этого?

Границей может быть (и, вероятно, является) фигура (многоугольник, мультиполигон), которую вы можете представить в любом текущем ГИС-формате. Вам нужно будет подумать о проекции и датуме, в котором вы это предоставляете.

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

Используйте PostGreSQL и его пространственные расширения (Postgis). Импортируйте полигон из (1) в базу данных (например, с помощью FWTOOLS ogr2ogr). Это даст вам хорошее поле геометрии в таблице, в которой вы можете использовать хорошие геометрические функции Postgis в стандартная мода SQL (здесь будет уместен St_Intersects: выяснить, «пересекается» ли точка географически с нашим полигоном, или вы можете использовать ST_Within, чтобы узнать, хорошо ли точка попадает в полигон)

Как мне связать свои пользовательские данные (идентификатор/флаг) с указанным выше определением границы?

Просто добавьте дополнительный столбец в таблицу, где хранится geometry.

person ChristopheD    schedule 07.05.2010
comment
На самом деле ST_Intersects и ST_Within одинаковы при проверке точки на многоугольнике. Но да, это путь. Убедитесь, что вы понимаете концепции проекции и датума ГИС, поскольку они все еще применяются в базе данных. - person Andrew McGregor; 08.05.2010
comment
Идеально, что отвечает именно то, что я искал. Когда я начал это путешествие, я понял, что мне нужны некоторые основы ГИС, и нашел это вокруг датума и проекций utsa.edu/lrsg/Teaching/ES2113/L4_projection.pdf. Очень полезно. - person Gnu Engineer; 08.05.2010
comment
+1. Я также хотел бы упомянуть, что вы можете использовать любую базу данных с пространственной поддержкой, аналогично использованию Postgis в этом ответе. Например, SQL Server и MySQL имеют встроенные пространственные расширения (в более поздних версиях). - person MarkJ; 25.05.2010
comment
Как говорит Эндрю, убедитесь, что координаты, используемые в вашей границе, совместимы с координатами, используемыми в вашем геокодировании. В противном случае вы получите неправильные ответы, когда будете запрашивать, пересекает ли точка многоугольник. Стоит кое-что узнать об этом — вы можете начать здесь e28093-confusing.aspx" rel="nofollow noreferrer">sharpgis.net/post/2007/05/05/ - person MarkJ; 25.05.2010