2012-07-09 4 views
1

J'ai besoin de construire une application web pour explorer certaines données d'enquête, mais je me bats un peu pour trouver les bons outils. PostGIS a l'air assez intéressant, mais je ne suis pas sûr que cela corresponde à mes besoins ou qu'il soit peut-être exagéré.Classification de quartier avec postgis

L'ensemble de données (tableau 1) contient des lignes (événements à Los Angeles) avec un attribut spatial, c'est-à-dire un champ long/lat. J'ai un autre jeu de données (tableau 2) définissant les zones dans Los Angeles. Puis-je faire ce qui suit dans PostGIS?

  • CHOISIR uniquement les points de données du tableau 1 à partir d'une certaine zone définie dans le tableau 2?
  • Tabuler une variable catégorielle par zone? Par exemple, compter le nombre de mâles et de femelles pour chaque zone?
  • Le regroupement d'une variable numérique par zone? Par exemple. Pour obtenir la répartition par âge, montre combien de personnes par zone sont âgées de 0 à 9 ans, de 10 à 19 ans, de 20 à 29 ans, etc.

De plus, je me demandais s'il est sûr d'avoir la base de données PostGIS directement interrogé par javascript (en utilisant GeoJSON), ou devrais-je avoir toujours une couche d'application entre (injection de code, etc.)?

Répondre

0

La réponse à vos questions est oui, oui et oui. Après l'installation de PostGIS, vous serez en mesure de faire tout cela (en supposant que la table 1 a ces attributs).

CHOISIR uniquement les points de données du tableau 1 à partir d'une certaine zone définie dans le tableau 2?

  • Oui, de quelques manières. Les données du tableau 2 sont-elles définies comme des polygones ou s'agit-il d'une liste de points? Liste des points est un peu plus difficile à faire, mais fonctionne ... beaucoup plus facile si vous avez des polygones ici. (Après avoir regardé votre lien, utilisez la forme (SHP) fichier.

TABULATE une variable par région? Par exemple, compter le nombre d'hommes et de femmes pour chaque région?

  • Count est dans la sélection clause, le composant geo se trouve dans la clause where.Tant que ces attributs existent dans la table 1, vous pouvez effectuer ces décomptes de la valeur désirée

De regrouper une variable numérique par zone? la répartition par âge, montre combien de personnes par zone sont âgées de 0 à 9 ans, de 10 à 19 ans, de 20 à 29 ans, etc.

  • Oui, même réponse que ci-dessus. Binning peut nécessiter une instruction case, mais tant que vous pouvez la grouper, vous pouvez compter par elle. heh

Je ne sais pas si je peux répondre à la dernière question mais ...