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