sinoly

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  29 随笔 :: 76 文章 :: 189 评论 :: 0 Trackbacks

 

 1 package  com.geotools.test;
 2
 3 /**
 4  * 
 5  * CopyRight (C) All rights reserved.
 6  * <p> * WuHan Inpoint Information Technology Development,Inc.
 7  * <p> * Author sinoly <p>  Project Name: PostGeo
 8  * <p>
 9  * Base on : JDK1.5
10  * <p>
11  * 
12   */
 
13 import  java.io.IOException;
14 import  java.util.HashMap;
15 import  java.util.Map;
16
17 import  org.geotools.data.DataStore;
18 import  org.geotools.data.DataStoreFinder;
19 import  org.geotools.data.FeatureSource;
20
21 public   class  GetPostgisData  {
22  
23   static  DataStore pgDatastore;   // 数据容器
24  
25  @SuppressWarnings( " unchecked " )
26   private   static   void  ConnPostGis(String dbtype,String URL, int  port,String database,String user,String password) {
27   Map params  =   new  HashMap();
28   params.put( " dbtype " " postgis " );
29   params.put( " host " , URL);
30   params.put( " port " new  Integer(port));
31   params.put( " database " , database);
32   params.put( " user " , user);
33   params.put( " passwd " , password);  
34    try   {
35    pgDatastore  =  DataStoreFinder.getDataStore(params);
36     if (pgDatastore != null ) {
37     System.out.println( " 系统连接到位于: " + URL + " 的空间数据库 " + database + " 成功! " );
38     
39    }
else {
40     System.out.println( " 系统连接到位于: " + URL + " 的空间数据库 " + database + " 失败!请检查相关参数 " );
41    }

42   }
  catch  (IOException e)  {
43    e.printStackTrace();
44    System.out.println( " 系统连接到位于: " + URL + " 的空间数据库 " + database + " 失败!请检查相关参数 " );
45   }

46  }

47  
48   public   static   void  main(String[] args)  throws  IOException {
49   ConnPostGis( "" , " localhost " , 5432 , " navigation " , " root " , " 123 " );
50    /* 读取指定类型名的地理特征  */
51   FeatureSource fsBC  =  pgDatastore.getFeatureSource( " roads " );
52   System.out.println(fsBC.getFeatures().size());
53    /* 得到空间数据库中所有特征表的表名 */
54   String[] typeName = pgDatastore.getTypeNames();
55    for ( int  i = 0 ;i < typeName.length;i ++ ) {
56    System.out.println(typeName[i]);
57   }

58  }

59 }

60
61



     进行Geotools的开发工作,肯定会参考GeoTools的官方参考文档。不过我想很多人估计都遇到了和我一样的问题,就是官方参考指南中几乎没有可以编译通过的代码,也就无法谈及用这些代码进行学习了。昨天抽空将Geotools指南中连接到POSTGIS的代码进行了重新编译,才发现指南中的代码是在geotools 2.1.4中编译的。。。狂汗ing。。我居然一直认为是我的人品问题,才导致这些代码在我机器上就无法编译成功滴。。看来说明了一个问题:4475_200361112122146460.gif.。。。
      同时在编译过程中还翻阅了2.3的API,也在其中发现了几个对原有方法进行功能修改或者干脆废弃的方法,在此列出:
      1、如果你和我一样使用了POSTGRESQL 8.4,sorry,麻烦你不要用其自带的