Bladeren bron

v.what: use layer information (by mlennert), see https://trac.osgeo.org/grass/ticket/3172 (merge from trunk, https://trac.osgeo.org/grass/changeset/69647)

git-svn-id: https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0@69757 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 8 jaren geleden
bovenliggende
commit
6567abc2c6
1 gewijzigde bestanden met toevoegingen van 6 en 2 verwijderingen
  1. 6 2
      vector/v.what/what.c

+ 6 - 2
vector/v.what/what.c

@@ -538,13 +538,16 @@ void what(struct Map_info *Map, int nvects, char **vect, double east, double nor
 	}			/* if area > 0 */
 
 	if (Cats->n_cats > 0) {
-	    int j;
+	    int j, k;
 	    char *formbuf1;
 	    char *formbuf2;
 	    if (json) {
 		fprintf(stdout, ",\n\"Categories\": [");
 	    }
+	    k = 0;
 	    for (j = 0; j < Cats->n_cats; j++) {
+		if (field[i] == -1 || Cats->field[j] == field[i]) {
+		k++;
 		G_debug(2, "field = %d  category = %d\n", Cats->field[j],
 			Cats->cat[j]);
 		if (script) {
@@ -552,7 +555,7 @@ void what(struct Map_info *Map, int nvects, char **vect, double east, double nor
 			    Cats->cat[j]);
 		}
 		else if (json) {
-		    fprintf(stdout, "%s\n{\"Layer\": %d, \"Category\": %d", j == 0 ? "": ",", 
+		    fprintf(stdout, "%s\n{\"Layer\": %d, \"Category\": %d", k == 1 ? "": ",", 
 			    Cats->field[j], Cats->cat[j]);
 		}
 		else {
@@ -597,6 +600,7 @@ void what(struct Map_info *Map, int nvects, char **vect, double east, double nor
 		if (json) {
 		    fprintf(stdout, "}"); /* for cat */
 		}
+	      }
 	    }
 	    if (json) {
 		fprintf(stdout, "]"); /* for list of cats */