Используйте ГИС, чтобы получить географическую информацию для одной точки - PullRequest
2 голосов
/ 13 июня 2010

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 14 июня 2010

Начните смотреть на 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

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

0 голосов
/ 13 июня 2010

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

...