arcgis server 9.3 for java 几个问题

 

最近开始学习arcgis server了,刚好拿到最新版本9.3 for java,所以就从它说起。

废话少说,下面是我在实际应用中做的一些总结,由于目前关于arcgis server 9.3 java edition的资料不多,所以先放到这里,也算滥竽充数了。

1.先说安装。

由于9.3不与其他版本的arcgis兼容,所以在安装前应该完全卸载所有其他版本的arcgis,包括arcgis desktop等。如果没有完全卸载,可能会无法安装arcgis server 9.3。另外,arcgis的卸载比较麻烦,如果没卸干净无法安装的话,可以去esri下一个叫93ConflictDetector.exe(Uninstall_Previous_Products_93)的清理工具来准备好环境。

 

安装完arcgis server 9.3 for java 后进行登录时,输入在post install 中创建的帐户和密码,可能无法登陆,提示: incorrect login information,无法登陆。解决办法如下:

在资源管理器中 选择“文件夹-选项”,去掉“启用简单文件共享”,再重新登陆就可以了(可能还需要重启或其他操作)。http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3942&extra=&page=1

这是因为简单文件共享会启用特别的WINDOWS认证方式,该认证方式与AGS Server的不兼容。

http://support.microsoft.com/kb/307874/zh-cn

2.在arcgis manager中进行地图发布时,首先需要用一张地图创建一个服务service,然后才能用这个服务创建应用application。

 

3.在自己的html页面中用arcgis server里的服务来显示地图前,还需要做如下准备:

  1)要找到服务的地址:在浏览器打开http://rzf:8399/arcgis/rest/services/就可以看到当前可用的服务列表了,随

  便打开一个就可以得到其地址,例如:http://rzf:8399/arcgis/rest/services/test_1/test_1/MapServer。注意:  

  所有服务地址的最后均为MapServer,其前就是服务的名字。

  2)先在浏览器里打开这两个地址

  http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.1

  http://serverapi.arcgisonline.com/jsapi/arcgis/1.1/js/dojo/dijit/themes/tundra/tundra.css

  然后将他们作为文件分别保存到当前目录下,名字分别为default.js和tundra.css,在显示地图时将要用到这两个文件。

4.显示地图

  下面一段代码即演示如何显示地图(来自esri):

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

  <html>

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

  <title>巴西地图</title>

  <link rel="stylesheet" type="text/css" href="tundra.css">

  <script type="text/javascript" src="default.js"></script>

  <script type="text/javascript">

  dojo.require("esri.map");  

  function init() {

  var map = new esri.Map("map");

  var dynamicMapServiceLayer = new esri.layers.ArcGISDynamicMapServiceLayer ("http://rzf:8399/arcgis/rest/services/test_1/test_1/MapServer");

  map.addLayer(dynamicMapServiceLayer);

  }

  function showExtent(extent) {

  var s = "";

  s = "XMin: "+ extent.xmin + " "

  +"YMin: " + extent.ymin + " "

  +"XMax: " + extent.xmax + " "

  +"YMax: " + extent.ymax;

  dojo.byId("info").innerHTML = s;

  }

  dojo.addOnLoad(init);

  </script>

  </head>

  <body class="tundra">

  <div id="map" style="width:100%; height:38%; border:1px solid #000;"></div>

  <div id="info" style="display:none"></div>

  </body>

</html>

5.需要注意的是,如果直接从esri网站上拷例子,很有可能是能够显示esri提供的在线地图服务,却不能打开自己本地的地图

  服务,这是因为esri上的例子在加载地图时init函数里用到的是如下代码:

  function init() {

  esriConfig.defaults.io.proxyUrl = "ProxyPage_Java/proxy.jsp"; 

  var map = new esri.Map("map");

  var layer = new esri.layers.ArcGISTiledMapServiceLaye("http://server.arcgisonline.com/ArcGIS/rest

  /services/ESRI_StreetMap_World_2D/MapServer");

  map.addLayer(layer);

  }

  这是事先将地图切分好,做了缓存的加载方式,而我们自己的地图服务有可能没有事先切分,所以需要用ArcGISDynamicMapServiceLayer来动态加载。

6.在tomcat里显示地图

  在做实际应用时,可能发生这样的情况:一个html页面如果直接在浏览器里打开的话能够正常显示地图,但是如果把它加入到tomcat工程里,

  通过url地址来访问时,却不能显示地图。一个简单的例子:

  我有一个页面:E:\soft\Tomcat 6.0\webapps\JSP_SQLServer\oper_files\html_map_test2.html,他是在tomcat工程目录下的。当我直接在浏览器里E:\soft\Tomcat 6.0\webapps\JSP_SQLServer\oper_files\html_map_test2.html能够正常显示地图,而当我启动tomcat服务,通过url地址:http://localhost:8080/JSP_SQLServer/oper_files/html_map_test2.html却无法显示。

  要解决这个问题,需要先查看esri的一篇arcgis javascript api文档:

  http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jshelp/ags_proxy.htm#webprint

  里面提供了具体的方法,即:

  1)先到http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jshelp/ProxyPage_Java.zip下载java版的

  proxy page,解压到当前目录。

  2)编辑其中的proxy.jsp文件,将字符串String[] serverUrls赋值为前面找到的服务的地址,里面有注释可以查看,可以有多个服务。

  3)在前面显示地图的init函数里第一句加上下面这一句:

  esriConfig.defaults.io.proxyUrl = "ProxyPage_Java/proxy.jsp"; 

  ProxyPage_Java/proxy.jsp是刚才的proxy.jsp地址,可以绝对,也可以相对。

  当你做完这些的时候,如果没问题的话,你就应该可以通过url地址来显示地图了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值