2010-06-13 2 views
2

Je ne sais pas trop par où commencer. Je viens tout juste de commencer à me pencher là-dessus la semaine dernière, mais j'espère que quelqu'un pourra m'aider à me diriger dans la bonne direction.Utilisez le SIG pour obtenir des informations géographiques pour un seul point.

Le but de mon projet est de pouvoir prendre un géohash, de le décoder en latitude et longitude, de vérifier le point par rapport à des données SIG et de trouver des informations sur ce point comme le terrain (est-ce un corps? de l'eau? Un lac? Un océan? Est-ce une zone montagneuse? Est-ce un champ?), l'altitude, ou d'autres choses utiles. Ensuite, simplement être en mesure d'afficher cette information en tant que démarreur. Ce que j'ai rassemblé jusqu'à présent, c'est que j'ai besoin de données SIG gratuites (c'est pour l'école, donc je n'ai pas d'argent!). J'aimerais avoir des données mondiales, et j'en ai trouvé en ligne (http://www.webgis.com/terraindata.html) mais je ne sais pas où aller d'ici. J'ai vu des outils tels que PostGIS en tant que base de données.

Je suis actuellement en train d'utiliser Java pour d'autres parties du projet, donc si possible je voudrais m'en tenir à Java.

Quelqu'un peut-il m'aider ou me diriger dans la bonne direction?

Répondre

3

Commencez à regarder PostGIS; il se trouve être en C mais développé par ailleurs mostly Java guys, et supporte de jolis outils Java (gratuits), tels que uDig. En ce qui concerne les principes fondamentaux de la géospatiale: voici un exemple de certaines des interactions dont j'ai l'impression que vous devez commencer.

Vous commencez avec une source de données, disons les données de recensement gratuites TIGERLINE aux États-Unis. En utilisant GDAL vous formatez les données pour votre base de données; en général, vous pouvez diriger des fichiers de formes, kml, etc., directement dans une table contenant des métadonnées (noms de lieux, etc.) et la clé activée spatialement geometry column. Ici, je recommande vraiment PostGIS. J'ai une telle table dérivée recensement sur mon ordinateur portable, voici comment vous travaillez avec dans votre corps de l'exemple de l'eau:

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) 

Prenez note du numéro 4269, qui est SRID de la géométrie. Dites maintenant que vous avez un point, par exemple -122.492983 37.717753 (notez qu'il s'agit de Longitude Latitude), donné par une entrée GPS ou autre. Quel corps de l'eau pourrait-il être en ?:

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

    fullname  
--------------- 
Lk Merced 

Pacific Ocean 

lac Merced est un lieu à San Francisco je passe devant tout le temps - il est un peu un marais de marée alors peut-être le Bureau du recensement estime une partie de l'océan Pacifique - intéressant, je ne savais pas ça! J'espère que cela vous aidera à démarrer.

+0

Merci beaucoup pour la réponse détaillée, j'ai fini de télécharger les fichiers en utilisant wget, (je devrais probablement commencer avec un petit échantillon mais bon) et je suis en train de les décompresser. Une fois que je l'aurai terminé, je l'importerai dans PostGIS et j'essaierai de l'essayer. Je vous ferai savoir comment cela se passe dans quelques jours. –

0

Examinez les ensembles de données SRTM. Il existe différentes versions pour différents niveaux de précision (et de taille). Vous obtenez des données au format brut, vous devrez les interpréter vous-même, mais ce n'est pas difficile. C'est très bien documenté.

Questions connexes