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

          下面是矩形選擇的源代碼。多邊形選擇多加點就可以了。
          public?class?RectSelectAction?extends?Action?{

          ????
          //?---------------------------------------------------------?Instance
          ????
          //?Variables

          ????
          //?---------------------------------------------------------?Methods

          ????
          /**
          ?????*?Method?execute
          ?????*?
          ?????*?
          @param?mapping
          ?????*?
          @param?form
          ?????*?
          @param?request
          ?????*?
          @param?response
          ?????*?
          @return?ActionForward
          ?????
          */

          ????
          public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,
          ????????????HttpServletRequest?request,?HttpServletResponse?response)?
          {
          ????????DynaActionForm?rectSelectForm?
          =?(DynaActionForm)?form;
          ????????String?startx?
          =?rectSelectForm.getString("startx");
          ????????String?starty?
          =?rectSelectForm.getString("starty");
          ????????String?endx?
          =?rectSelectForm.getString("endx");
          ????????String?endy?
          =?rectSelectForm.getString("endy");
          ????????Map?map?
          =?(Map)?request.getSession().getAttribute("THEMAP");
          ????????Polygon?polygon?
          =?this.creatPolygon(map,?startx,?starty,?endx,?endy);
          ????????
          if?(polygon?==?null)?{
          ????????????ActionMessages?msgs?
          =?new?ActionMessages();
          ????????????msgs.add(ActionMessages.GLOBAL_MESSAGE,?
          new?ActionMessage(
          ????????????????????
          "com.suzhou.message.createPolygonFail"));
          ????????????
          this.saveMessages(request,?msgs);
          ????????????
          return?mapping.findForward("resultPage");
          ????????}

          ????????FeatureLayer?menpaiLayer?
          =?null;
          ????????
          for?(int?i?=?0;?i?<?map.getLayers().getCount();?i++)?{
          ????????????
          if?(map.getLayers().item(i).getName().equals("地物點"))?{
          ????????????????menpaiLayer?
          =?(FeatureLayer)?map.getLayers().item(i);
          ????????????????System.out.println(menpaiLayer.getName());
          ????????????????System.out.println(menpaiLayer.getID());
          ????????????}

          ????????}

          ????????
          if?(menpaiLayer?==?null)?{
          ????????????ActionMessages?msgs?
          =?new?ActionMessages();
          ????????????msgs.add(ActionMessages.GLOBAL_MESSAGE,?
          new?ActionMessage(
          ????????????????????
          "com.suzhou.message.layerNotExsist",?"地物點"));
          ????????????
          this.saveMessages(request,?msgs);
          ????????????
          return?mapping.findForward("resultPage");
          ????????}

          ????????map.getLayers().setGeometry(
          true);//?設置返回空間信息
          ????????menpaiLayer.getRecordset().clearRecordset();
          ????????menpaiLayer.getRecordset().clearEnvelope();
          ????????menpaiLayer.getRecordset().clearGeometry();
          ????????map.getLayers().setOrder(
          false);
          ????????menpaiLayer.setFilterObject(
          null);
          ????????Filter?filter2?
          =?new?Filter();
          //????????filter2.addSubField("BLOCKNAME");
          //????????filter2.addSubField("MPNUM");
          //????????filter2.addSubField("MPABNAME");
          //????????filter2.addSubField("MPSUBNUM");
          ????????
          //filter2.setWhereExpression("");
          ????????filter2.setGlobalEnvelope(true);
          ????????filter2.setSpatialShape(polygon);
          ????????filter2.setRelation(Filter.AREA_INTERSECTION);
          ????????menpaiLayer.setFilterObject(filter2);
          ????????map.refresh();
          ????????menpaiLayer.setFilterObject(
          null);
          ????????
          if?(menpaiLayer.getRecordset()?==?null
          ????????????????
          ||?menpaiLayer.getRecordset().getCount()?<?1)?{
          ????????????ActionMessages?msgs?
          =?new?ActionMessages();
          ????????????msgs.add(ActionMessages.GLOBAL_MESSAGE,?
          new?ActionMessage(
          ????????????????????
          "com.suzhou.message.objectNotFound"));
          ????????????
          this.saveMessages(request,?msgs);
          ????????????
          return?mapping.findForward("resultPage");
          ????????}
          else{
          ????????????request.setAttribute(
          "result",menpaiLayer.getRecordset());
          ????????????
          return?mapping.findForward("resultPage");
          ????????}

          ????}


          ????
          /**
          ?????*?建立矩形
          ?????*?
          ?????*?
          @param?map
          ?????*?
          @param?startx:起點屏幕X坐標
          ?????*?
          @param?starty:起點屏幕Y坐標
          ?????*?
          @param?endx:終點屏幕X坐標
          ?????*?
          @param?endy:終點屏幕Y坐標
          ?????*?
          @return
          ?????
          */

          ????
          public?Polygon?creatPolygon(Map?map,?String?startx,?String?starty,
          ????????????String?endx,?String?endy)?
          {
          ????????
          try?{
          ????????????Point?pnt1?
          =?map.toMapPoint(new?Double(startx).doubleValue(),
          ????????????????????
          new?Double(starty).doubleValue());
          ????????????Point?pnt2?
          =?map.toMapPoint(new?Double(endx).doubleValue(),
          ????????????????????
          new?Double(endy).doubleValue());
          ????????????Point?pnt11?
          =?new?Point();
          ????????????Point?pnt22?
          =?new?Point();
          ????????????pnt11.setX(pnt1.getX());
          ????????????pnt11.setY(pnt2.getY());
          ????????????pnt22.setX(pnt2.getX());
          ????????????pnt22.setY(pnt1.getY());
          ????????????Points?points?
          =?new?Points();
          ????????????points.addPointObject(pnt1);
          ????????????points.addPointObject(pnt11);
          ????????????points.addPointObject(pnt2);
          ????????????points.addPointObject(pnt22);
          ????????????Ring?ring?
          =?new?Ring();
          ????????????ring.setPoints(points);
          ????????????Polygon?polygon?
          =?new?Polygon();
          ????????????polygon.addRing(ring);
          ????????????
          return?polygon;
          ????????}
          ?catch?(Exception?ex)?{
          ????????????
          return?null;
          ????????}

          ????}

          }

          posted @ 2007-03-20 17:16 Kevin Meng 閱讀(385) | 評論 (1)編輯 收藏

          當一個web站點發布到互聯網上以后,系統的穩定性很重要。而如果你后臺用的是oracle 9i,有時候會出現oracle服務意外停止的現象。解決辦法是:
          (1)給oracle打最新的補丁(很重要)
          (2)在控制面板的服務里面選擇oracleServiceXXX,選擇屬性,點“恢復”,把下面的三個操作都設置為“重新啟動”就可以了。

          posted @ 2007-02-28 14:01 Kevin Meng 閱讀(1490) | 評論 (0)編輯 收藏

          大家都知道,在進行arcims開發時,經常要重新啟動arcIMS服務,如果你還用了arcSDE,那么要啟動的服務更多。如果每次都到控制面板中啟動,累都累死人了。可以通過批處理來啟動這些服務。
          新建一個.bat文件,如“啟動所有服務.bat”。打開,輸入以下代碼:
          net start "OracleOraHome92TNSListener"
          pause
          net start "OracleServiceORA"
          pause
          net start "esri_sde"
          pause
          net start "ArcIMS Application Server 9.1"
          pause
          net start "ArcIMS Monitor 9.1"
          pause
          net start "ArcIMS Tasker 9.1"
          pause

          說明:
          net start "OracleOraHome92TNSListener" --啟動Oracle服務
          pause --暫停
          net start "OracleServiceORA" --啟動Oracle服務
          net?start "szmap_sde" --啟動arcSDE服務
          net start "ArcIMS Application Server 9.1" --啟動arcIMS服務
          net?start "ArcIMS Monitor 9.1" --啟動arcIMS服務
          net?start "ArcIMS Monitor 9.1" --啟動arcIMS服務
          注意,啟動服務的順序不能亂。

          net命令的詳細說明看MS的DOS命令幫助。這里只作簡單說明。
          net?start "serviceKeyName",這里的serviceKeyName是服務的關鍵字,而不是控制面板中顯示的名字,控制面板中顯示的名字是DispalyName.要通過服務的DisplayName獲得KeyName可以通過以下命令實現:
          sc getkeyname "serviceDisplayName"
          例如要查詢arcSDE服務“ArcSde Service(esri_sde)”的KeyName,可以運行以下命令:
          C:\Documents and Settings\menglikun>sc getkeyname "ArcSde Service(esri_sde)"
          [SC] GetServiceKeyName SUCCESS? Name = esri_sde
          這里可以看出“ArcSde Service(esri_sde)”的KeyName=seri_sde,所以要啟動這個SDE服務,只要執行命令:
          sc start "seri_sde"
          即可。

          再新建一個批處理文件“停止所有服務.bat”,打開,輸入以下代碼:
          net stop "ArcIMS Tasker 9.1"
          net?stop "ArcIMS Monitor 9.1"
          net?stop "ArcIMS Application Server 9.1"
          net?stop "szmap_sde"
          net stop "OracleOraHome92TNSListener"
          注意,停止服務的順序剛好以啟動相反。
          這樣,大功告成。以后要啟動服務,執行“啟動所有服務.bat”,停止服務執行“停止所有服務.bat”即可。


          posted @ 2007-01-19 23:08 Kevin Meng 閱讀(496) | 評論 (0)編輯 收藏

          由于文章比較長而且帶很多圖片,不好在這里貼出,需要者請發郵件到kookmen@163.com索取。

          posted @ 2006-11-28 15:31 Kevin Meng 閱讀(605) | 評論 (9)編輯 收藏

          如果一個網頁中有Flash動畫,那么javaScript的OnmouseMove事件就無法響應,這時候只要把Flash的背景設置為透明就可以了。
          即加入:<param name="wmode" value="transparent">

          posted @ 2006-11-12 13:42 Kevin Meng 閱讀(353) | 評論 (0)編輯 收藏

          一、新建一個Filter,代碼如下:
          package com.suzhou.util;

          import java.io.IOException;
          import javax.servlet.*;

          public class SetCharacterEncodingFilter implements Filter {
          ?protected String encoding = null;// ///要制定的編碼,在web.xml中配置

          ?protected FilterConfig filterConfig = null;

          ?public void destroy() {
          ??this.encoding = null;
          ??this.filterConfig = null;
          ?}

          ?public void doFilter(ServletRequest request, ServletResponse response,
          ???FilterChain chain) throws IOException, ServletException {

          ??if (request.getCharacterEncoding() == null) {
          ???String encoding = getEncoding();// //得到指定的編碼名字
          ???if (encoding != null)
          ????request.setCharacterEncoding(encoding);// //設置request的編碼
          ??}
          ??chain.doFilter(request, response);// /有機會執行下一個filter
          ?}

          ?public void init(FilterConfig filterConfig) throws ServletException {

          ??this.filterConfig = filterConfig;
          ??this.encoding = filterConfig.getInitParameter("encoding");// /得到在web.xml中配置的編碼
          ?}

          ?protected String getEncoding() {

          ??return (this.encoding);// /得到指定的編碼

          ?}

          }
          二、修改web.xml,添加:
          <filter>
          ??<filter-name>SetCharacterEncoding</filter-name>
          ??<filter-class>com.suzhou.util.SetCharacterEncodingFilter</filter-class>
          ??<init-param>
          ???<param-name>encoding</param-name>
          ???<param-value>GBK</param-value>
          ??</init-param>
          ?</filter>
          ?<filter-mapping>
          ??<filter-name>SetCharacterEncoding</filter-name>
          ??<url-pattern>/*</url-pattern>
          ?</filter-mapping>
          三、進入http://localhost:port/admin,選擇Tomcat server/Service/Connector(port),把URI Encoding改成UTF-8,Use Body Encoding For URI Query Parameters:設置為true,點保存然后重新啟動Tomcat即可。
          記住,每個jsp頁面的編碼都為:
          <%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>

          這樣子不但能徹底解決中文參數問題(如http://menglikn:4000/suzhou/getMap.do?ditu=市區圖),而且還能解決中文URL問題(如http://menglikun:4000/suzhou/空白頁.html)

          posted @ 2006-11-10 19:26 Kevin Meng 閱讀(528) | 評論 (0)編輯 收藏

          開發環境:
          window xp
          jdk 1.5
          tomcat 5.028
          eclispe 3.2
          myeclipse 4.0
          步驟:
          (1)新建一個web project,名稱為suzhouadmin
          (2)在項目上點鼠標右鍵,選擇myeclipse->add spring capablities...
          (3)把Spring 1.2 AOP,Spring 1.2 Core Lib,Spring ORM/DAO/Hibernate 3.0 lib,Spring 1.2 web lib選擇中,Copy Checked lib content to project folder,然后點Next
          (4)folder改為:WebRoot/WEB-INF,File為applicationContext.xml不變。點Finish。
          Spring的引用完成。

          (5)在項目上點鼠標右鍵,選擇myeclipse->add Struts capablities...
          (6)選擇struts1.1,base package for classes?改成 com.suzhou.admin.struts,然后點finish。

          Struts的引用完成。
          (6)新建立一個包com.suzhou.admin.hibernate,然后在項目上點鼠標右鍵,選擇myeclipse->add Hibernate capablities...
          (7)把Hibernate 3.0 core lib,Hibernate 3.0 advanced lib中,Copy Checked lib content to project folder,點Next
          (8)選擇Spring Configuration file(applicationContext.xml),點Next
          (9)選擇Exit spring configuration file.輸入sessionFactory id為sessionFactory。點Next
          (10)設置數據源ID為dataSource,選擇一個已經設置好的DB profile,然后點Next
          (11)點Package...選擇com.suzhou.admin.hibernate,自動生成類名com.suzhou.admin.hibernate.HibernateSessionFactory。

          開始配置Struts和Spring.
          (12)打開WEB-INFO/web.xml,在最后面添加:
          ?<servlet>
          ??<servlet-name>context</servlet-name>
          ??<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
          ??<load-on-startup>1</load-on-startup>
          ?</servlet>
          這樣,Spring 的ApplicationContext就配置好了。通過以上配置,Web容器會自動加載/WEB-INF/applicationContext.xml初始化
          ApplicationContext實例,如果需要指定配置文件位置,可通過context-param加以指定:
          <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/myApplicationContext.xml</param-value>
          </context-param>
          配置完成之后,即可通過
          WebApplicationContextUtils.getWebApplicationContext()
          方法在Web應用中獲取ApplicationContext引用。

          (13)通過Struts config新建一個Action名為LoginAction,自動生成的action定義如下:
          ??? <action
          ????? attribute="loginForm"
          ????? input="/index.jsp"
          ????? name="loginForm"
          ????? path="/login"
          ????? scope="request"
          ????? type="com.suzhou.admin.struts.action.LoginAction">
          ????? <forward name="loginfail" path="/error.jsp" />
          ????? <forward name="loginok" path="/main.jsp" />
          ??? </action>
          把其改成:
          ??? <action
          ????? attribute="loginForm"
          ????? input="/index.jsp"
          ????? name="loginForm"
          ????? path="/login"
          ????? scope="request"
          ????? type="org.springframework.web.struts.DelegatingActionProxy">
          ????? <forward name="loginfail" path="/error.jsp" />
          ????? <forward name="loginok" path="/main.jsp" />
          ??? </action>
          并在struts-config.xml中添加Spring插件。
          ?<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
          ??<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
          ?</plug-in>
          (13)用Myeclipse Spring donfig editor打開applicationContext.xml,點右鍵,選擇new Bean,輸入Bean name為/login,calss為com.suzhou.admin.struts.action.LoginAction。點finish,applicationContext.xml多加了一個Bean定義:
          <bean name="/login" class="com.suzhou.admin.struts.action.LoginAction" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"></bean>

          posted @ 2006-10-25 13:36 Kevin Meng 閱讀(954) | 評論 (0)編輯 收藏

          (1)安裝文件必須放在英文目錄下,且文件夾名不能帶空格,否則會出現找不到文件的錯誤。
          (2)如果安裝不成功,必須重新安裝時,最好把所有已經安裝的oracle服務刪除。刪除步驟是。
          a.進入DOC
          b.進入C:\WINDOWS\system32
          c.運行sc delete OracleServiceName
          (3)如果系統安裝有放火墻,最好先把其關閉。安裝完oracle后再重新開啟。

          posted @ 2006-10-19 09:29 Kevin Meng 閱讀(276) | 評論 (0)編輯 收藏

          開發環境:
          jdk 1.5
          tomcat 5.0.28
          oracle 9i

          (1)在瀏覽器中輸入http://localhost:8181/admin/,登陸tomcat管理系統
          (2)選擇Tomcat server->service->Host->Context(/yourproject)->Resource->Data Source
          (3)在下拉列表中選擇Create new DataSource
          JNDI Name:jdbc/yourDatasourceName
          Data Source URL:jdbc:oracle:thin:@menglikunm:1521:ora
          JDBC Driver:oracle.jdbc.driver.OracleDriver
          UserName:username
          Password:password
          Max. Active Connections:2000(自己定)
          2
          (自己定)
          (4)把oracle 的class12.jar拷貝到tomcat的common/lib目錄下(不要忘記這一步哦)
          (5)重新啟動Tomcat
          (6)測試,代碼如下:
          Connection con = null;
          ??try{
          ???Context ctx=new InitialContext();
          ???DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/ora_menglikunm");
          ???con=ds.getConnection();
          ??}catch(Exception ex){
          ???ex.printStackTrace();
          ??}

          (7)加班作吧!!!!:)

          posted @ 2006-09-22 10:36 Kevin Meng 閱讀(407) | 評論 (0)編輯 收藏

          在數據庫開發中,打開數據庫連接是很慢的。怎樣oracle當前的連接數呢?只需要用下面的SQL語句查詢一下就可以了。
          select * from v$session where username is not null

          查看不同用戶的連接數
          select username,count(username) from v$session where username is not null group by username

          posted @ 2006-09-21 17:18 Kevin Meng 閱讀(6211) | 評論 (0)編輯 收藏

          僅列出標題
          共12頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 Last 
          主站蜘蛛池模板: 雷波县| 射阳县| 建平县| 阿勒泰市| 常州市| 阿巴嘎旗| 铜川市| 舞阳县| 青海省| 巴彦淖尔市| 涞水县| 当阳市| 眉山市| 阿克苏市| 莲花县| 广德县| 盐边县| 荃湾区| 黎城县| 商都县| 七台河市| 霍林郭勒市| 巨野县| 阜新市| 东丰县| 卓尼县| 金堂县| 林甸县| 文水县| 潞西市| 阿拉善右旗| 巴林左旗| 前郭尔| 蚌埠市| 油尖旺区| 五华县| 乾安县| 信阳市| 惠水县| 迁西县| 广德县|