Используйте ГИС для получения географической информации для одной точки

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

Цель моего проекта состоит в том, чтобы получить геохеш, декодировать его по широте и долготе, сравнить точку с некоторыми данными ГИС и узнать некоторую информацию об этой точке, такую ​​как местность (это водоем? озеро? Океан? Это горная местность? Это поле?), высота над уровнем моря или другие полезные вещи. Затем просто иметь возможность отображать эту информацию в качестве стартера.

На данный момент я понял, что мне нужно получить некоторые бесплатные данные ГИС (это для школы, поэтому у меня нет денег!). Мне нужны мировые данные, и я нашел их в Интернете (http://www.webgis.com/terraindata.html), но я не знаю, что делать дальше. Я видел некоторые инструменты, такие как PostGIS, в качестве базы данных.

В настоящее время я использую Java для некоторых других частей проекта, поэтому, если возможно, я хотел бы придерживаться Java.

Может ли кто-нибудь помочь мне или указать мне правильное направление?


person Patrick Lee Scott    schedule 13.06.2010    source источник


Ответы (2)


Начните с изучения PostGIS; он написан на C, но разработан другими в основном Java-разработчиками и поддерживает хорошие (бесплатные) Java-инструменты, такие как uDig.

Что касается геопространственных основ: вот пример некоторых взаимодействий, которые, как мне кажется, вам нужны для начала.

Вы начинаете с источника данных, например бесплатных TIGERLINE данных переписи населения США. Используя GDAL, вы форматируете данные для своей базы данных; как правило, вы можете передавать шейп-файлы, kml и т. д. непосредственно в таблицу, которая будет иметь некоторые метаданные (названия мест и т. д.) и ключ с пространственной активацией столбец геометрии. Здесь я действительно рекомендую PostGIS. У меня на ноутбуке есть как раз такая таблица переписи населения, вот как вы работаете с ней на примере ваших водоемов:

pepe=> \d tl_2009_06075_areawater
   Table "public.tl_2009_06075_areawater"
  Column  |          Type          |
----------+------------------------
 gid      | integer                |
 ansicode | character varying(8)   |
 hydroid  | character varying(22)  |
 fullname | character varying(100) |
 the_geom | geometry               |
Indexes:
    "tl_2009_06075_areawater_pkey" PRIMARY KEY, btree (gid)
Check constraints:
    "enforce_srid_the_geom" CHECK (st_srid(the_geom) = 4269)

Обратите внимание на число 4269, которое является SRID геометрии.

Теперь скажем, что у вас есть точка, например -122,492983 37,717753 (обратите внимание, что это долгота и широта), заданная вводом GPS или чем-то еще. В каком водоеме он может находиться?:

pepe=> select fullname from tl_2009_06075_areawater 
where the_geom &&
ST_GeomFromText('POINT(-122.492983 37.717753)', 4269);

   fullname    
---------------
 Lk Merced

 Pacific Ocean

Озеро Мерсед — это место в Сан-Франциско, мимо которого я постоянно прохожу — это немного приливное болото, так что, возможно, Бюро переписи населения считает его частью Тихого океана — интересно, я этого не знал! Надеюсь, это поможет вам начать.

person unmounted    schedule 14.06.2010
comment
Большое спасибо за подробный ответ, я закончил загрузку файлов с помощью wget (вероятно, мне следует начать с небольшого образца, ну да ладно), и сейчас я занимаюсь их распаковкой. Как только я закончу, я импортирую их в PostGIS и попробую кое-что из этого. Я дам вам знать, как это происходит в течение нескольких дней. - person Patrick Lee Scott; 18.06.2010

Посмотрите на наборы данных SRTM. Существуют различные версии для различных уровней точности (и размера). Вы получаете данные в необработанном виде, вам придется интерпретировать их самостоятельно, но это несложно. Это очень хорошо задокументировано.

person jer    schedule 13.06.2010