欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap FreeTalk
   您现在位于: 首页技术专栏ArcGIS应用与开发ArcGIS其它 → 正文
MO作为B/S客户端控件的开发
07-10-20 09:51:36 作者:watson 出处:
开发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>

原文:http://www.cnblogs.com/watsonyin/archive/2005/05/08/150809.html


(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  

    关于我们友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
     
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.
     

                   滇ICP备05006901号