zoukankan      html  css  js  c++  java
  • MO作为B/S客户端控件的开发

        开发GIS与OA一体化系统时,OA中经常需要使用图形的浏览、查询等功能,这在OA系统采用C/S模式的情况下,并不困难,但在采用B/S架构时,却往往不知从何下手。一般的做法时采用ArcIMS等软件作为服务器端软件进行开发,但这些软件需要额外购买,很不划算。其实我们将MO作为一个ActiveX控件插入到网页中,用JavaScript进行控制,也可以实现非常强大的功能。
        下面举一个例子,可以实现加载图层,放大,缩小和平移功能。

    <html>

    <head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>

    </head>

    <body>


    <SCRIPT language=JavaScript>
     var MapState = 0;
     

     function LoadLayers()
     {
      Map1.ScrollBars = false;
      var dc = new ActiveXObject("MapObjects2.DataConnection")
      dc.Server = "sde81:server";
      dc.DataBase = "esri_sde";
      dc.User="sa";
      dc.Password = "sa";
      
      if (dc.connect() == false)
      {
       return;
      }
      
      var gs;
      gs = dc.FindGeoDataset("sde.dbo.zd#1.shape.polygons");
      if (gs == null) return;
      var ly = new ActiveXObject("MapObjects2.MapLayer");
      
      ly.GeoDataset = gs;
      Map1.Layers.Add(ly);
      Map1.Refresh();  
     }

    </script>

    <script language = "JavaScript" for = "Map1" event = "MouseDown(Button,Shift,X,Y)"> 
     if (MapState == 0)
     {  
      Map1.Extent = Map1.TrackRectangle();
     }
     else if(MapState ==1)
     {
      var rect;
      rect=Map1.Extent();
      rect.ScaleRectangle(1.3);
      Map1.Extent = rect;
     }
     else if(MapState == 2)
     {
      Map1.Pan();
     }
    </script>

    <script language = "JavaScript" for = "Map1" event = "MouseMove(Button,Shift,X,Y)"> 
     if (MapState == 0)
     {  
      Map1.MousePointer = 51;
     }
     else if(MapState ==1)
     {
      Map1.MousePointer = 52;
     }
     else if(MapState == 2)
     {
      Map1.MousePointer = 53;
     }
    </script>


    <p>
    <object classid="clsid:9BD6A64B-CE75-11D1-AF04-204C4F4F5020" id="Map1" width="572" height="452">
      <param name="_Version" value="131072">
      <param name="_ExtentX" value="15134">
      <param name="_ExtentY" value="11959">
      <param name="_StockProps" value="225">
      <param name="BackColor" value="16777215">
      <param name="BorderStyle" value="1">
      <param name="Enabled" value="1">
      <param name="Appearance" value="0">
      <param name="ScrollBars" value="1">
      <param name="RefreshCount" value="10000">
      <param name="CancelAction" value="1">
      <param name="WindowMode" value="0">
      <param name="MinWidth" value="0">
      <param name="MousePointer" value="0">
      <param name="BorderStyle" value="1">
      <param name="BackColor" value="16777215">
      <param name="FullRedrawOnPan" value="0">
    </object>
    </p>

    <p>

    <input type="button" value="LoadLayer" name="B3"  onclick = "LoadLayers()">
    <input type="button" value="Zoom In" name="B5"  onclick = "javscript:MapState=0">
    <input type="button" value="Zoom Out" name="B6"  onclick = "javscript:MapState=1">
    <input type="button" value="Pan" name="B4"  onclick = "javscript:MapState=2">

    </p>

      <p> 
     
     
    </body>

    </html>

  • 相关阅读:
    数1的个数
    找水王2
    书店促销
    返回一个二维整数数组中最大联通子数组的和
    敏捷软件开发读书笔记(三)
    软件工程团队开发——第一次冲刺会议总结
    返回一个二维整数数组中最大联通子数组的和
    结对项目开发电梯调度
    《最后期限》——读书笔记03
    最后期限——阅读笔记2
  • 原文地址:https://www.cnblogs.com/watsonyin/p/150809.html
Copyright © 2011-2022 走看看