Exemplo1.java
Go to the documentation of this file.
1 /*
2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 
7 
8 
10 import br.inpe.terralib5.Layer;
11 import br.inpe.terralib5.LayerVector;
12 import br.inpe.terralib5.QtInitializer;
13 import br.inpe.terralib5.Str2StrMap;
14 import br.inpe.terralib5.TerraLib;
15 import java.awt.Color;
16 import java.awt.Image;
17 import java.awt.image.BufferedImage;
18 import java.io.ByteArrayInputStream;
19 import java.io.File;
20 import java.io.IOException;
21 import java.util.logging.Level;
22 import java.util.logging.Logger;
23 import javax.imageio.ImageIO;
24 
25 /**
26  *
27  * @author FredBede
28  */
29 public class Exemplo1 {
30 
31  static {
32  // Loading T5Java dll
33  System.loadLibrary("terralib_mod_binding_javad");
34  }
35 
36  /**
37  * @param args the command line arguments
38  */
39  public static void main(String[] args) {
40  try {
41 
42  System.out.println("Java: main 1");
43 
44  // Initialize TerraLib and Qt.
45  QtInitializer qt = new QtInitializer();
46 
47  System.out.println("Java: main 2");
48 
49  qt.begin();
50 
51  System.out.println("Java: main 2");
52 
53  TerraLib.Initialize();
54 
55  System.out.println("Java: main 3");
56 
57  System.out.println("Generating OGR1.png");
58  OGRExample1();
59 
60  System.out.println("Generating OGR2.png");
61  OGRExample2();
62 
63  System.out.println("Generating PostGIS.png");
65 
66  // Finalizing Qt.
67  qt.end();
68 
69  System.out.println("Finished.");
70  } catch (IOException ex) {
71  Logger.getLogger(Exemplo1.class.getName()).log(Level.SEVERE, null, ex);
72  }
73 
74  // Finalizing TerraLib
75  TerraLib.Finalize();
76  }
77 
78  protected static void OGRExample1() {
79 
80  String uri = "file://D:/funcate/data/brazil.shapefiles";
81 
82  GetLayersAndSaveImage("OGR", uri, "OGR1.png");
83  }
84 
85  protected static void OGRExample2() {
86 
87  String uri = "file://D:/funcate/vs2010/terralib5/munic_shp";
88 
89  GetLayersAndSaveImage("OGR", uri, "OGR2.png");
90  }
91 
92  protected static void PostGISExample() {
93 
94  String uri = "pgsql://postgres:postgres@localhost:5432/t5_data?PG_CONNECT_TIMEOUT=4";
95 
96  GetLayersAndSaveImage("POSTGIS", uri, "PostGIS.png");
97  }
98 
99  protected static void GetLayersAndSaveImage(String type, String uri, String fileName) {
100  LayerVector ls = GetLayers(type, uri);
101  SaveImage(ls, fileName);
102  }
103 
104  protected static LayerVector GetLayers(String type, String uri) {
105  DataSource src = TerraLib.MakeDataSource(type, uri);
106  LayerVector ls = null;
107 
108  if(src != null)
109  ls = TerraLib.GetDataSetsAsLayers(src);
110 
111  return ls;
112  }
113 
114  protected static void SaveImage(LayerVector ls, String fileName) {
115  long size = 0;
116  byte [] img;
117 
118  // Getting an image of all layers
119  Layer l = ls.get(0);
120  img = TerraLib.GetLayersImage(ls, l.getExtent(), 1000, 1000, size, Color.white);
121 
122  // Writing image in disk.
123  ByteArrayInputStream b = new ByteArrayInputStream(img);
124  Image ii;
125  try {
126  ii = ImageIO.read(b);
127  BufferedImage bi = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_RGB);
128  bi.createGraphics().drawImage(ii, 0, 0, null);
129  File out = new File(fileName);
130  ImageIO.write(bi, "png", out);
131  } catch (IOException ex) {
132  Logger.getLogger(Exemplo1.class.getName()).log(Level.SEVERE, null, ex);
133  }
134  }
135 }
This class is a singleton designed to manage log messages in TerraLib.
SimpleData< std::string, STRING_TYPE > String
Definition: SimpleData.h:229
static void main(String[] args)
Definition: Exemplo1.java:39
static void OGRExample2()
Definition: Exemplo1.java:85
static void OGRExample1()
Definition: Exemplo1.java:78
int b
Definition: TsRtree.cpp:32
static LayerVector GetLayers(String type, String uri)
Definition: Exemplo1.java:104
void DataSource()
static void SaveImage(LayerVector ls, String fileName)
Definition: Exemplo1.java:114
static void GetLayersAndSaveImage(String type, String uri, String fileName)
Definition: Exemplo1.java:99
static void PostGISExample()
Definition: Exemplo1.java:92
An utility class to control the startup and cleanup of the TerraLib Platform and its resources...