ArcIMS 开发学习心得
1.环境配置
Web服务器:Apache2048
Servlet:Tomcat4129
GIS开发平台:ArcIMS 9.0
Java编译环境:Eclipse
2.上述环境设置好之后,进入ArcIMS开发阶段,主要的工作分三块:java类/jsp/javascript
用Struts 开发实质上将请求和处理完全隔离,jsp网页中只需要写与action对应的form,这些Action
通过struts-config.xml和jsp网页当中的form等对应起来.
下文主要按照功能对代码实现进行研究
初始化地图 InitMap Action:
需要用到的核心类:import com.esri.aims.mtier.io.ConnectionProxy和import com.esri.aims.mtier.model.map.Map
*************代码*********
ConnectionProxy conn = null;
Map map = null;
try {
conn = new ConnectionProxy();
map = new Map();
conn.setHost(host);//ArcIMS服务器的名称或者IP
conn.setConnectionType(connectionType);
conn.setPort(port);//ArcIMS服务器的端口
conn.setService(service);//需要调用的ArcIMS服务器的服务名称
conn.setDisplayMessages(displayMessages);
map.initMap(conn, 0, true, true, true, true);//初始化地图
//地图和图例的风格设置
map.setWidth(width);
map.setHeight(height);
map.getLegend().setFont("宋体");
map.getLegend().setAntialiasing(false);
map.getLegend().setTitle("图例");
map.getLegend().setTitleFontSize(18);
map.getLegend().setLayerFontSize(12);
map.getLegend().setValueFontSize(10);
map.getLegend().setAutoExtend(true);
map.getLegend().setWidth(125);
map.getLegend().setCellSpacing(7);
//获取地图的全图范围和一些参数,并且传送给客户端
Envelope extent = map.getEnvelope();
double minx = extent.getMinX();
double miny = extent.getMinY();
double maxx = extent.getMaxX();
double maxy = extent.getMaxY();
double mapXDistance = maxx - minx;
double mapYDistance = maxy - miny;
double doubleWidth = Double.parseDouble(Long.toString(width));
double doubleHeight = Double.parseDouble(Long.toString(height));
double mapRatio = (maxx - minx) / (maxy-miny);
double windowRatio = doubleWidth / doubleHeight;
double mapHeight = (windowRatio/mapRatio) * doubleHeight;
double upperHeight = (doubleHeight - mapHeight) / 2;
double distancePerPixel = mapXDistance / doubleWidth;
double mapMaxY = maxy + distancePerPixel * upperHeight;
double mapMinY = miny - distancePerPixel * upperHeight;
//将地图的全图范围传递到客户端
request.setAttribute("fullMinX", new Double(extent.getMinX()));
request.setAttribute("fullMinY", new Double(mapMinY));
request.setAttribute("fullMaxX", new Double(extent.getMaxX()));
request.setAttribute("fullMaxY", new Double(mapMaxY));
//将地图的当前范围传递到客户端
request.setAttribute("minX", new Double(extent.getMinX()));
request.setAttribute("minY", new Double(mapMinY));
request.setAttribute("maxX", new Double(extent.getMaxX()));
request.setAttribute("maxY", new Double(mapMaxY));
//告知客户端这是在初始化地图
request.setAttribute("initMap", "true");
//获取地图图片的 mapUrl和图例了legendurl
request.setAttribute("mapUrl", map.getMapOutput().getURL());
request.setAttribute("legendUrl", map.getLegend().getLegendOutput()
.getURL());
//将Map对象放入Session中,以后在这个对话中一直使用这个map对象来生成地图
request.getSession().setAttribute("map", map);
request.getSession().setAttribute("fullExtent", extent);
}
catch(){}
return mapping.findForward("ConetentFrame");//将网页重定向到ConetentFrame
ConetentFrame对应的content.jsp里面只需要写一个form,对应这个Action类InitMap
就可以初始化地图并获取相关的参数。
在content.jsp中,获取地图的参数,并赋给客户端。
<script language="JavaScript" type="text/javascript">
var m = parent.mapFrame; //
<%
//初始化地图时,获得地图的初始化的全图范围
if (initMap != null){
%>
m.fullMinX = <%=(Double)request.getAttribute("fullMinX")%>;
m.fullMinY = <%=(Double)request.getAttribute("fullMinY")%>;
m.fullMaxX = <%=(Double)request.getAttribute("fullMaxX")%>;
m.fullMaxY = <%=(Double)request.getAttribute("fullMaxY")%>;
m.fullOVLeft = m.fullMinX;
m.fullOVRight = m.fullMaxX;
m.fullOVTop = m.fullMaxY;
m.fullOVBottom = m.fullMinY;
m.fullOVWidth = Math.abs(m.fullOVRight - m.fullOVLeft);
m.fullOVHeight = Math.abs(m.fullOVTop - m.fullOVBottom);
<%
}
分享到:
相关推荐
ArcIMS .net开发
ArcIMS开发相关问题集合ArcIMS开发相关问题集合ArcIMS开发相关问题集合
对学习arcims9.2有用
arcims 开发教材
arcims 开发以及培训资料,pdf文件格式
某同学开发的Arcims示例,mxd文件请保存为绝对路径,不然建立不了arcmapserver服务。
ArcIMS+ArcSDE开发例子,简单查询,缓冲功能
ArcIMS简介及开发
ArcIMS开发经验总结1-2-3-4.doc
arcgis arcims 详细开发文档资料,对利用arcgis 做网络的很有帮助.
ARCIMS开发实例,其中代码是使用C#语言写的,附有说明文档,对初学ARCIMS开发的人相当有用。
ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,ARCIMS,
GIS\850552ArcIMS .NET 开发示例 .zip
本文针对这些应用领域,分 析了国内外现有的大量WebGIS站点,将其大致归结为提供公共信息的WebGIS 和面向专业领域的WebGIS,并针对这两类WebGIS的特点,讨论了开发每一类 WebGIS经常要遇到的问题,并在分析...
学习arcims,学习 java connector,一个提供入门学习的java web程序
ArcIMS安装说明书
Arcims(HtmlView)开发经验总结
ArcIMS初级教程四比较基础的入门级学习资料适合初级学者下载学习
很好的二次开发的文档,分享给大家,希望能有用
ArcIMS 9.2 安装和配置