使用GIS获取单个点的地理信息

时间:2010-06-13 14:56:49

标签: java gis geospatial postgis geohashing

我不太清楚从哪里开始。我刚刚开始在过去的一周里开始研究这个问题,但希望有人可以帮助我指出正确的方向。

我的项目的目标是能够进行geohash,将其解码为纬度和经度,针对某些GIS数据检查点,并找出有关该点的一些信息,例如地形(这是一个体水?一个湖?一个海洋?这是一个山区吗?这是一个领域?),海拔高度还是其他有用的东西。然后只需将该信息显示为启动器即可。

到目前为止我收集到的是我需要获得一些免费的GIS数据(这是针对学校的,所以我没有钱!)。我想有世界数据,我在网上发现了一些(http://www.webgis.com/terraindata.html),但我不知道从哪里开始。我看到一些工具,如PostGIS作为数据库。

我目前正在将Java用于项目的其他部分,所以如果可能的话,我想坚持使用Java。

有人可以帮助我,或指出我正确的方向吗?

2 个答案:

答案 0 :(得分:3)

开始看PostGIS;它碰巧在C中,但由mostly Java guys开发,并支持好的(免费)Java工具,例如uDig

关于地理空间基础:这里有一些我认为你需要开始的感受的互动的例子。

您从数据源开始,比如美国的免费TIGERLINE人口普查数据。使用GDAL格式化数据库的数据;通常,您可以将shapefile,kml等直接导入到具有一些元数据(地名等)和空间启用密钥geometry column的表中。在这里,我真的推荐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

默塞德湖是旧金山的一个地方我一直走过去 - 它有点像潮汐沼泽所以也许人口普查局认为它是太平洋的一部分 - 有趣的是,我不知道!希望这有助于您入门。

答案 1 :(得分:0)

查看SRTM数据集。有各种版本的各种精度(和大小)。你以原始格式获得数据,你必须自己解释,但这并不难。这是非常好的记录。