<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    sinoly

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      29 隨筆 :: 76 文章 :: 189 評論 :: 0 Trackbacks

    ???? 剛剛開始學習GeoTools得時候就是感覺關于這方面的資料真是少的可憐,無奈之中翻E文資料,苦學E文。。。唉。。。但是如果說一個知名的開源項目文檔中錯誤百出,我真的很是無奈。。。
    ???? 這段時間公司的工作也是很忙,所以只能抽空晚上慢慢研究GeoTools了。。。
    ???? 將今天的測試用的GeoTools讀取PostGis內容的代碼發布出來,希望能對和我一樣想去學習GeoTools的同仁起到幫助作用,也希望各位WEBGIS大拿多給我一些意見。。。畢竟以前不是搞GIS,現在很是吃力。。。

    package ?com.geotools.test;
    /**
    ?*?
    ?*?CopyRight?(C)?All?rights?reserved.
    ?*?<p>
    ?*?
    ?*?WuHan?Inpoint?Information?Technology?Development,Inc.
    ?*?<p>
    ?*?
    ?*?Author?sinoly
    ?*?<p>
    ?*?Project?Name:?PostGeo
    ?*?
    ?*?
    @version ?1.0?2006-11-13
    ?*?
    ?*?<p>
    ?*?Base?on?:?JDK1.5
    ?*?<p>
    ?*?
    ?
    */

    import ?java.io.IOException;
    import ?java.util.HashMap;
    import ?java.util.Map;
    import ?java.util.NoSuchElementException;

    import ?org.geotools.data.DataStore;
    import ?org.geotools.data.DataStoreFinder;
    import ?org.geotools.data.FeatureReader;
    import ?org.geotools.data.FeatureResults;
    import ?org.geotools.data.FeatureSource;
    import ?org.geotools.feature.AttributeType;
    import ?org.geotools.feature.Feature;
    import ?org.geotools.feature.FeatureType;
    import ?org.geotools.feature.IllegalAttributeException;
    import ?org.geotools.geometry.Geometry;

    public ? class ?GetPostgisData? {
    ?
    ?
    static ?DataStore?pgDatastore;
    ?
    static ?FeatureSource?fsBC;
    ?@SuppressWarnings(
    " unchecked " )
    ?
    private ? static ? void ?ConnPostGis(String?dbtype,String?URL, int ?port,String?database,
    ???String?user,String?password)
    {
    ??Map?params?
    = ? new ?HashMap();
    ??params.put(
    " dbtype " ,? " postgis " );
    ??params.put(
    " host " ,?URL);
    ??params.put(
    " port " ,? new ?Integer(port));
    ??params.put(
    " database " ,?database);
    ??params.put(
    " user " ,?user);
    ??params.put(
    " passwd " ,?password);??
    ??
    try ? {
    ???pgDatastore?
    = ?DataStoreFinder.getDataStore(params);
    ???
    if (pgDatastore != null ) {
    ????System.out.println(
    " 系統連接到位于: " + URL + " 的空間數據庫 " + database + " 成功! " );
    ???}
    else {
    ????System.out.println(
    " 系統連接到位于: " + URL + " 的空間數據庫 " + database + " 失敗!請檢查相關參數 " );
    ???}

    ??}
    ? catch ?(IOException?e)? {
    ???e.printStackTrace();
    ???System.out.println(
    " 系統連接到位于: " + URL + " 的空間數據庫 " + database + " 失敗!請檢查相關參數 " );
    ??}

    ?}


    ?
    // 從數據容器中讀取所有的特征屬性?
    ?@SuppressWarnings( " deprecation " )?
    ?
    public ? static ? void ?PostGisReading() {
    ??
    try ? {
    ???FeatureResults?fsRU?
    = ?fsBC.getFeatures();
    ???FeatureReader?reader?
    = ?fsRU.reader();
    ???
    while ?(reader.hasNext())? {
    ???????Feature?feature;
    ????
    try ? {
    ?????feature?
    = ?reader.next();
    ????????System.out.print(feature.getID()?
    + ? " \t " );
    ????????
    for ?( int ?i? = ? 0 ;?i? < ?feature.getNumberOfAttributes();?i ++ )? {
    ????????????Object?attribute?
    = ?feature.getAttribute(?i?);
    ????????????
    if ?( ! (attribute? instanceof ?Geometry))
    ????????????????System.out.print(attribute?
    + ? " \t " );
    ????????}

    ????????System.out.println();
    ????}
    ? catch ?(NoSuchElementException?e)? {
    ?????e.printStackTrace();
    ????}
    ? catch ?(IllegalAttributeException?e)? {
    ?????e.printStackTrace();
    ????}

    ???}

    ???reader.close();
    ??}
    ? catch ?(IOException?e1)? {
    ???e1.printStackTrace();
    ??}


    ?}

    ?
    ?
    // 讀取指定類型名的地理特征
    ? public ? static ? void ?getFeatureSource(String?sourceName) {
    ??
    try ? {
    ???fsBC?
    = ?pgDatastore.getFeatureSource(sourceName);
    // ???System.out.println(fsBC.getFeatures().size()); // 計算本圖層中所有特征的數量
    ??}
    ? catch ?(IOException?e)? {
    ???e.printStackTrace();
    ??}
    ??
    ?}

    ?
    // 取得POSTGIS中所有的地理圖層
    ? public ? static ? void ?getAllLayers() {
    ??
    try ? {
    ???String[]?typeName?
    = ?pgDatastore.getTypeNames();
    ???
    for ( int ?i = 0 ;i < typeName.length;i ++ ) {
    ????System.out.println(typeName[i]);
    ???}

    ??}
    ? catch ?(IOException?e)? {
    ???e.printStackTrace();
    ??}

    ?}

    ?
    public ? static ? void ?getAttribute() {
    ??FeatureType?ftBC
    = fsBC.getSchema();
    ??System.out.println(ftBC.getAttributeCount());
    ??
    for ?( int ?i? = ? 0 ;?i? < ?ftBC.getAttributeCount();?i ++ )? {
    ??????AttributeType?at?
    = ?ftBC.getAttributeType(?i?);
    ??????
    // 判斷屬性類型是否為可分配
    ?????? if ?( ! Geometry. class .isAssignableFrom(at.getType()))
    ??????????System.out.print(at.getType()?
    + ? " \t " );
    ??}

    ??System.out.println();
    ??
    for ?( int ?i? = ? 0 ;?i? < ?ftBC.getAttributeCount();?i ++ )? {
    ??????AttributeType?at?
    = ?ftBC.getAttributeType(?i?);
    ??????
    if ?( ! Geometry. class .isAssignableFrom(at.getType()))
    ??????????System.out.print(at.getName()?
    + ? " \t " );
    ??}

    ?}

    ?
    public ? static ? void ?main(String[]?args)? throws ?IOException {
    ??ConnPostGis(
    "" , " localhost " , 5432 , " navigation " , " root " , " aaaaa " );
    ??
    /* 讀取指定類型名的地理特征? */
    ??getFeatureSource(
    " roads " );
    ??
    /* 得到空間數據庫中所有特征表的表名 */
    // ??PostGisReading();
    ????getAllLayers();
    ?}

    }




    ??????? 到周末了,這個周末事情貌似很多,明天,哦,不對,是今天要去老婆公司幫他們把動漫在線制作工廠的服務器配置起來。很是不爽的是拖了我的款一直沒有結算,感覺很是對不起和我一起做這個兼職項目的兄弟。周日可能會去看看一片空置的地,呵呵,研究一下看看怎么能用這片地改善一下生活地說:)
    ?????? 如果有空,周末將GeoTools寫PostGis數據的代碼整理一下。連接、讀、寫這都屬于基本操作,不過對于資料嚴重匱乏的GeoTools而言我想還是能對志同道合的兄弟們一些幫助的。自己將這些代碼貼出來的目的有二:一來監督自己的學習過程;二來希望能找到一批志同道合的朋友一起做一個基于開源項目的通用GIS/平臺,平臺的內容目前正在規劃,感覺還是很不錯的。
    ?????? 2007年的一月就快要過去了,這個月感覺怎么說那。。。除了項目中有些很讓人煩惱的事情以外,個人感覺還好,算是慢慢在又在望一線開發上靠攏。。。個人興趣和工作之間的協調不是很好解決,目前唯一的調節方式就是。。。犧牲自己的睡眠時間了。。。
    ????? 唉。。。。兩個星期沒有回家了,這個星期又很困難。。。但愿老爸老媽不要怪我。。。LP這段時間對我意見很大,畢竟婚期就在4月,過了年就快要到了,對我的意見就是到現在我都不知道結婚到底應該怎么搞。。。。
    ???? 夜深了,感覺很是對不起自己的家人。。。。在這個賣身又賣藝的年代。。。真的好困惑!



    posted on 2007-01-27 03:04 sinoly 閱讀(4763) 評論(9)  編輯  收藏 所屬分類: POSTGISGEOTOOLS

    評論

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-01-31 21:01 gale
    在這個賣身又賣藝的年代。。。真的好困惑!

    嘿嘿
    同感  回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-02-01 14:26 梅穎
    結婚都不知道怎么搞?信邪,呵呵,我來我來  回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-03-14 23:07 cyqian
    “import org.geotools.data.DataStore;”

    我找不到 org.geotools.data.DataStore ,只有一個datastore的抽象類,我用的也是2.3。請賜教~~謝謝。
      回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-03-15 09:12 sinoly
    把你現在引入的包告訴我。。。
    我現在導入了這么幾個包:
    geoapi-2.0.jar
    gt2-api-2.2.1.jar
    gt2-main-2.2.1.jar
    gt2-postgis-2.2.1.jar
    gt2-referencing-2.2.1.jar
    gt2-render-2.2.1.jar
    jts-1.7.1.jar
    vecmath-1.3.1.jar

    備注:這個是目前我的項目中的包,這個是用的geotools2.2
    但是當初調試的時候確實是用的2.3中的包。實際上上面的程序是2.2/2.3都可以的
    geotools的最大特點。。。。有點遺憾。。。包的分類相當的混亂
      回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-03-15 13:12 cyqian
    阿~~知道了。在gt2-api-2.3.0里邊。剛開始我沒有導入它。十分感謝~  回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-03-28 11:20 CHOCHOC
    看了你的BLOG后,發現世界不會這么小吧。我也是才抽空看看GIS方面的東西,而且你說的你老婆的動漫在線不會是銀科大廈里面的那家吧,哦這樣的話故事可就多了!望回復!
    MSN:CHOC_CHO@HOTMAIL.COM  回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-03-29 08:51 sinoly
    @CHOCHOC
    呵呵,我在武漢滴說
    銀科大廈在中關村吧,以前在北京工作的時候取過很多次。。  回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-05-07 15:51 Classicning
    多謝您的代碼啊,我對Geotools真的是無語了,想要找點資料都這么難,還好有您這段代碼

    GeoTools太需要這種共享精神了。。。呵呵

    繼續學習GT和JTS。。。  回復  更多評論
      

    # re: 使用GEOTOOLS(2.3)讀取POSTGIS內容 2007-06-12 15:21 鳥舜魚湯
    偶然間闖進你的blog,最近剛開始研究geoserver和geotools的問題,看了你的一些見解,覺得比較深刻,希望能有機會得到賜教。。。。
    對于你想做一個基于開源項目的通用GIS/平臺,小弟也深有此意,只是苦于身邊無志同道合之士,希望能夠聯系。

    qq:7221681  回復  更多評論
      

    主站蜘蛛池模板: 亚洲a级片在线观看| 久久国产乱子伦精品免费强| 国产成人精品久久免费动漫| 天天看片天天爽_免费播放| 久久精品国产精品亚洲| 亚洲一区在线免费观看| 国产在线观看免费观看不卡 | 9久9久女女免费精品视频在线观看 | 亚洲AV无码一区二区三区电影| 免费福利电影在线观看| 亚洲成在人线av| 最近免费最新高清中文字幕韩国| 亚洲国产精品尤物yw在线| 亚洲精品一二三区| 成人免费视频网址| 免费人成网站永久| 全免费一级毛片在线播放| 欧美亚洲国产SUV| 一本久久a久久精品亚洲| 亚洲a∨国产av综合av下载| 在线观看免费国产视频| a级毛片免费观看在线| 国产男女猛烈无遮挡免费视频网站 | 亚洲成av人在线观看网站| 免费夜色污私人影院在线观看| 国产精品青草视频免费播放| 久久久久无码精品亚洲日韩| 青青草免费在线视频| 亚洲欧洲视频在线观看| 久久久久久AV无码免费网站下载| 亚洲人成图片小说网站| 精品国产免费人成网站| 亚洲AⅤ视频一区二区三区| 国内成人精品亚洲日本语音| 国产亚洲精品资在线| 人与禽交免费网站视频| 一级片在线免费看| 狠狠亚洲婷婷综合色香五月排名| 青青草原1769久久免费播放| 亚洲色丰满少妇高潮18p| 日韩一区二区免费视频|