2

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

我的项目的目标是能够获取 geohash,将其解码为纬度和经度,根据一些 GIS 数据检查该点,并找出有关该点的一些信息,例如地形(这是水体吗?A湖?海洋?这是山区吗?这是田地吗?)、海拔或其他有用的东西。然后只需能够显示该信息作为启动器。

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

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

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

4

2 回答 2

3

开始查看 PostGIS;它恰好是用 C 语言编写的,但主要由 Java开发人员开发,并且支持不错的(免费)Java 工具,例如uDig

至于地理空间基础知识:这里是一些交互的例子,我觉得你需要开始。

你从一个数据源开始,比如说美国的免费TIGERLINE人口普查数据。使用GDAL格式化数据库的数据;通常,您可以将 shapefile、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

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

于 2010-06-14T04:00:43.817 回答
0

查看SRTM数据集。有不同版本的精度(和大小)。你得到原始格式的数据,你必须自己解释它,但这并不难。这是非常有据可查的。

于 2010-06-13T15:01:46.293 回答