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

发布于 2024-09-05 23:54:13 字数 491 浏览 1 评论 0原文

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

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

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

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

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

I am not quite sure where to start with this. I only just started looking into this in the past week, but hopefully someone can help point me in the right direction.

The goal of my project is to be able to take a geohash, decode it to latitude and longitude, check the point against some GIS data, and find out some information about that point such as the terrain(is this a body of water? A lake? An Ocean? Is this a mountainous area? Is this a field?), altitude, or other useful things. Then simply be able to display that information as a starter.

What I have gathered so far is that I need to get some free GIS data (this is for school, so I have no money!). I would like to have world data, and I found some online (http://www.webgis.com/terraindata.html) but I don't know where to go from here. I saw some tools such as PostGIS as a database.

I am currently using Java for some other parts of the project, so if possible I would like to stick to Java.

Can someone help me out, or point me in the right direction?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山有枢 2024-09-12 23:54:13

开始研究 PostGIS;它恰好是用 C 语言编写的,但由其他主要是 Java 人员开发,并且支持不错的(免费)Java 工具,例如 < a href="http://udig.refractions.net/" rel="nofollow noreferrer">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

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

Start out looking at PostGIS; it happens to be in C but developed by otherwise mostly Java guys, and supports nice (free) Java tools, such as uDig.

As to the geospatial fundamentals: here is an example of some of the interactions I get the feeling you need to get started.

You start with a data source, say the free TIGERLINE census data in the US. Using GDAL you format the data for your database; generally you can pipe shapefiles, kml, etc., directly into a table that will have some metadata (place names, etc.) and the key spatially enabled geometry column. Here I really recommend PostGIS. I have just such a census-derived table on my laptop, here is how you work with it in your bodies of water example:

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)

Take note of the number 4269, that is the geometry's SRID.

Now say you have a point, for example -122.492983 37.717753 (note it's Longitude Latitude), given by a GPS input or whatever. What body of water might it be in?:

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

   fullname    
---------------
 Lk Merced
 
 Pacific Ocean

Lake Merced is a place in San Francisco I walk past all the time -- it is a bit of a tidal marsh so maybe the Census Bureau considers it part of the Pacific Ocean -- interesting, I didn't know that! Hope this helps get you started.

Hello爱情风 2024-09-12 23:54:13

查看 SRTM 数据集。有不同精度(和尺寸)级别的不同版本。您获得原始格式的数据,您必须自己解释它,但这并不难。它有很好的记录。

Look at the SRTM data sets. There are various versions for various levels of accuracy (and size). You get data in raw format, you will have to interpret it yourself, but it's not hard. It is very well documented.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文