[Liblas-commits] r1172 - trunk/apps

liblas-commits at liblas.org liblas-commits at liblas.org
Sun Apr 5 12:17:15 EDT 2009


Author: hobu
Date: Sun Apr  5 12:17:15 2009
New Revision: 1172
URL: http://liblas.org/changeset/1172

Log:
add option to print the WKT of the SRS

Modified:
   trunk/apps/lascommon.c
   trunk/apps/lasinfo.c

Modified: trunk/apps/lascommon.c
==============================================================================
--- trunk/apps/lascommon.c	(original)
+++ trunk/apps/lascommon.c	Sun Apr  5 12:17:15 2009
@@ -198,6 +198,8 @@
 
 void print_point(FILE *file, LASPointH point) {
 
+    LASColorH color = NULL;
+    
     fprintf(file, "---------------------------------------------------------\n");
     
     fprintf(file, "  X: \t\t%.6f\n", 
@@ -234,11 +236,18 @@
     fprintf(file, "  Classification:\t%d\n",
                   LASPoint_GetClassification(point)
                   );
+    fprintf(file, "  Point Source ID:\t%d\n",
+                  LASPoint_GetPointSourceId(point)
+                  );
+                  
+    color = LASPoint_GetColor(point);
     fprintf(file, "  Color:\t%d %d %d\n",
-                  LASColor_GetRed(LASPoint_GetColor(point)),
-                  LASColor_GetGreen(LASPoint_GetColor(point)),
-                  LASColor_GetBlue(LASPoint_GetColor(point))
+                  LASColor_GetRed(color),
+                  LASColor_GetGreen(color),
+                  LASColor_GetBlue(color)
                   );
+    LASColor_Destroy(color);
+
 }
 void print_point_summary(FILE *file, LASPointSummary* summary, LASHeaderH header) {
 
@@ -376,13 +385,14 @@
     }
 }
 
-void print_header(FILE *file, LASHeaderH header, const char* file_name, int bSkipVLR) {
+void print_header(FILE *file, LASHeaderH header, const char* file_name, int bSkipVLR, int bWKT) {
 
     char *pszSignature = NULL;
     char *pszProjectId = NULL;
     char *pszSystemId = NULL;
     char *pszSoftwareId = NULL;
     char *pszProj4 = NULL;
+    char *pszWKT = NULL;
     
     char *pszVLRUser = NULL;
     char *pszVLRDescription = NULL;
@@ -407,6 +417,7 @@
     
     pSRS = LASHeader_GetSRS(header);
     pszProj4 = LASSRS_GetProj4(pSRS);
+    pszWKT = LASSRS_GetWKT(pSRS);
     pGTIF = LASSRS_GetGTIF(pSRS);
     
     nVLR = LASHeader_GetRecordsCount(header);
@@ -494,6 +505,7 @@
 #ifdef HAVE_LIBGEOTIFF
     if (pGTIF) GTIFPrint((GTIF*)pGTIF, 0, 0);
 #endif
+    if (bWKT) { fprintf(file, pszWKT);fprintf(file, "\n");}
     if (nVLR && !bSkipVLR) {
         
     fprintf(file, "\n---------------------------------------------------------\n");
@@ -520,16 +532,17 @@
             LASVLR_Destroy(pVLR);
             pVLR = NULL;
             
-            free(pszVLRUser);
-            free(pszVLRDescription);
+            LASString_Free(pszVLRUser);
+            LASString_Free(pszVLRDescription);
         }
         
     }
-    free(pszSignature);
-    free(pszProjectId);
-    free(pszSystemId);
-    free(pszSoftwareId);
-    free(pszProj4);
+    LASString_Free(pszSignature);
+    LASString_Free(pszProjectId);
+    LASString_Free(pszSystemId);
+    LASString_Free(pszSoftwareId);
+    LASString_Free(pszProj4);
+    LASString_Free(pszWKT);
 }
 
 void repair_header(FILE *file, LASHeaderH header, LASPointSummary* summary) {

Modified: trunk/apps/lasinfo.c
==============================================================================
--- trunk/apps/lasinfo.c	(original)
+++ trunk/apps/lasinfo.c	Sun Apr  5 12:17:15 2009
@@ -25,7 +25,7 @@
 
 LASPointSummary* SummarizePoints(LASReaderH reader);
 void print_point_summary(FILE *file, LASPointSummary* summary, LASHeaderH header);
-void print_header(FILE *file, LASHeaderH header, const char* file_name, int bSkipVLR);
+void print_header(FILE *file, LASHeaderH header, const char* file_name, int bSkipVLR, int bWKT);
 
 void usage()
 {
@@ -84,6 +84,7 @@
     int use_stdin = FALSE;
     int update_return_counts = FALSE;
     int skip_vlr = FALSE;
+    int wkt = FALSE;
 
     char *system_identifier = NULL;
     char *generating_software = NULL;
@@ -185,7 +186,11 @@
         else if (strcmp(argv[i],"--skip_vlr") == 0 || strcmp(argv[i],"--no_vlr") == 0)
         {
             skip_vlr = TRUE;
-        }            
+        }
+        else if (strcmp(argv[i],"--wkt") == 0)
+        {
+            wkt = TRUE;
+        }    
         else if (i == argc - 1 && file_name == NULL)
         {
             file_name = argv[i];
@@ -220,7 +225,7 @@
         exit(1);
     } 
 
-    print_header(stdout, header, file_name, skip_vlr);
+    print_header(stdout, header, file_name, skip_vlr, wkt);
 
     if (change_header) {
         if (system_identifier) {


More information about the Liblas-commits mailing list