posts - 119, comments - 62, trackbacks - 0, articles - 0

          導航

          公告

          關注webGIS開發
          <2006年4月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(9)

          隨筆檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          利用Java進行AcrSDE開發。

          Posted on 2006-04-30 13:21 Kevin Meng 閱讀(625) 評論(0)  編輯  收藏
          ArcSDE提供了C API和Java API兩種接口。這里我們只導論如何通過Java API進行arcSDE開發。
          開發環境:
          JDK 1.5
          WIN 插P
          Eclipse 3.1+MyEclipse
          ArcSDE for Oracle 9i
          (1)把arcSDE java API所需要的三個jar包導到web\lib目錄,包括jsde90_sdk.jar,jpe90_sdk.jar ,concurrent.jar;
          (2)添加點:
          public?class?AddPointBean?{
          ????
          public?static?boolean?process(HttpServletRequest?request,
          ????????????HttpServletResponse?response)?
          throws?Exception?{
          ????????Map?map
          =null;
          ????????
          if?(request.getSession().getAttribute(StaticConstant.SESSION_MAP)?==?null)?{
          ????????????String?strErr?
          =?"地圖還沒有初始化";
          ????????????request.setAttribute(StaticConstant.REQUEST_ERROR,?strErr);
          ????????????
          return?false;
          ????????}

          ????????map
          =(Map)request.getSession().getAttribute(StaticConstant.SESSION_MAP);
          ????????
          //連接SDE
          ????????SeConnection?conn?=?null;
          ????????String?server?
          =?"menglikunm";
          ????????
          int?instance?=?5151;
          ????????String?database?
          =?"ora";
          ????????String?user?
          =?"sde";
          ????????String?password?
          =?"sde";
          ????????SeLayer?insertLayer
          =null;
          ????????
          try?{
          ????????????conn?
          =?new?SeConnection(server,?instance,?database,?user,?password);
          ????????????Vector?layerList?
          =?conn.getLayers();
          ????????????
          for?(int?index?=?0;?index?<?layerList.size();?index++)?{
          ????????????????SeLayer?layer?
          =?(SeLayer)?layerList.elementAt(index);
          ????????????????
          //?Displays?the?layer’s?name
          ????????????????System.out.println(layer.getName());
          ????????????????
          //?Displays?the?layer’s?ID
          ????????????????System.out.println(layer.getID().longValue());
          ????????????????
          //?Displays?the?layer’s?spatial?column?name
          ????????????????System.out.println(layer.getSpatialColumn());
          ????????????????
          if(layer.getName().equalsIgnoreCase("ZHENGFUJIGUAN")){
          ????????????????????insertLayer
          =layer;
          ????????????????}

          ????????????}

          ????????}
          ?catch?(SeException?e)?{
          ????????????e.printStackTrace();
          ????????????
          return?false;
          ????????}

          ????????
          //開始插入數據
          ????????try{
          ????????????conn.startTransaction();
          ????????????String[]?cols?
          =?new?String[2];
          ????????????cols[
          0]?=?new?String("NAME");
          ????????????cols[
          1]?=?insertLayer.getSpatialColumn();
          ????????????SeInsert?insert?
          =?new?SeInsert(conn);
          ????????????insert.intoTable(insertLayer.getName(),cols);
          ????????????insert.setWriteMode(
          true);
          ????????????SeCoordinateReference?coordref?
          =(SeCoordinateReference)insertLayer.getCoordRef();
          ????????????SeShape?shape?
          =?new?SeShape(coordref);
          ????????????
          double?x=map.toMapPoint(10,10).getX();
          ????????????
          double?y=map.toMapPoint(10,10).getY();
          ????????????
          ????????????
          int?numPts?=?1;
          ????????????SDEPoint[]?ptArray?
          =?new?SDEPoint[numPts];
          ????????????ptArray[
          0]?=?new?SDEPoint(x,?y);
          ????????????shape.generatePoint(numPts,?ptArray);
          ????????????
          ????????????SeRow?row?
          =?insert.getRowToSet();
          ????????????row.setString(
          0,?"測驗點");
          ????????????row.setShape(
          1,shape);
          ????????????insert.execute();
          ????????????insert.close();
          ????????????conn.commitTransaction();
          ????????????conn.close();
          ????????}
          catch(Exception?ex){
          ????????????conn.rollbackTransaction();
          ????????????conn.close();
          ????????????ex.printStackTrace();
          ????????}

          ????????
          return?true;
          ????}

          }
          (3)刪除點:
          public?class?DeletePointBean?{
          ????
          public?static?boolean?process(HttpServletRequest?request,
          ????????????HttpServletResponse?response)?
          throws?Exception?{
          ????????
          //連接SDE
          ????????SeConnection?conn?=?null;
          ????????String?server?
          =?"menglikunm";
          ????????
          int?instance?=?5151;
          ????????String?database?
          =?"ora";
          ????????String?user?
          =?"sde";
          ????????String?password?
          =?"sde";
          ????????
          try?{
          ????????????conn?
          =?new?SeConnection(server,?instance,?database,?user,?password);
          ????????????Vector?layerList?
          =?conn.getLayers();
          ????????????
          for?(int?index?=?0;?index?<?layerList.size();?index++)?{
          ????????????????SeLayer?layer?
          =?(SeLayer)?layerList.elementAt(index);
          ????????????????
          //?Displays?the?layer’s?name
          ????????????????System.out.println(layer.getName());
          ????????????????
          //?Displays?the?layer’s?ID
          ????????????????System.out.println(layer.getID().longValue());
          ????????????????
          //?Displays?the?layer’s?spatial?column?name
          ????????????????System.out.println(layer.getSpatialColumn());
          ????????????}

          ????????}
          ?catch?(SeException?e)?{
          ????????????e.printStackTrace();
          ????????????
          return?false;
          ????????}

          ????????
          //開始刪除數據
          ????????try{
          ????????????conn.startTransaction();
          ????????????SeDelete?delete
          =new?SeDelete(conn);
          ????????????SeObjectId?id
          =new?SeObjectId(641);
          ????????????delete.byId(
          "ZHENGFUJIGUAN",id);
          ????????????conn.commitTransaction();
          ????????????delete.close();
          ????????}
          catch(Exception?ex){
          ????????????conn.rollbackTransaction();
          ????????????conn.close();
          ????????????ex.printStackTrace();
          ????????}

          ????????
          return?true;
          ????}

          }
          (4)高興一把,就是這么簡單。更多內容請參考arcSDE幫助。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 榕江县| 德化县| 永兴县| 肥乡县| 无为县| 富源县| 武平县| 甘孜县| 曲麻莱县| 乐清市| 遂平县| 富源县| 那曲县| 勐海县| 景洪市| 平南县| 雷州市| 揭西县| 平邑县| 兴山县| 永春县| 读书| 青河县| 榕江县| 漠河县| 个旧市| 溧阳市| 探索| 正阳县| 桃园县| 柘城县| 连南| 长泰县| 封开县| 华亭县| 乌审旗| 乐昌市| 武宣县| 蒙自县| 丘北县| 米林县|