ArcGIS Server Java ADF 案例教程 38

本文介绍了一种利用ArcObjects (AO) 实现地图缓冲区分析的方法。通过配置地图服务资源并调用AO接口,实现了点击地图上的点后生成指定距离的缓冲区,并展示了如何将AO对象转换为Web应用中使用的对象。
三 调用AO实现缓冲功能【案例】

在这个小节中,让我们通过调用AO实现一个缓冲区分析的功能。

首先,我们需要配置一个地图服务资源,还是用前面使用过的世界地图服务吧,但是这次采用的是Local方式去连接,你可以直接在打开的JSP页面上右键选择【ArcGIS】-【Configure Map Service…】菜单打开服务配置窗口:

image

图 27 使用IDE插件配置 Local方式连接的服务

下面我们在一个Tool中通过这个AGSLocalMapResource来调用AO:

public class BufferPointToolAction implements MapToolAction

{

public void execute(MapEvent event) throws Exception

{

WebContext webContext = event.getWebContext();

AGSLocalMapResource agsLocalMapResource = (AGSLocalMapResource)webContext.getResourceById("ags1");

IServerContext serverContext = agsLocalMapResource.getServerContext();

WebPoint webPoint = (WebPoint)event.getWebGeometry().toMapGeometry(webContext.getWebMap());

Point point = (Point)AGSUtil.toAGSGeometry (webPoint);

Object objPoint = AGSLocalUtil.createArcObjectFromStub (point, serverContext);

ITopologicalOperator topologicalOperator = (ITopologicalOperator)objPoint;

IPolycurve objPolygon = (IPolycurve)topologicalOperator.buffer(10);

objPolygon.densify(-1, -1);

PolygonN polygonN = (PolygonN)AGSLocalUtil.createStubFromArcObject (objPolygon, PolygonN.class , serverContext);

WebPolygon webPolygon = (WebPolygon)AGSUtil.fromAGSGeometry (polygonN);

WebSimplePolygonSymbol symbol = new WebSimplePolygonSymbol();

symbol.setAntialiasing(true );

symbol.setFillTransparency(0.7);

symbol.setColor("0,255,0");

symbol.setFillColor("255,0,0");

WebGraphics webGraphics = webContext.getWebGraphics();

GraphicElement element = new GraphicElement();

element.setGeometry(webPolygon);

element.setSymbol(symbol);

webGraphics.addGraphics(element);

webContext.refresh();

}

}

当用户在浏览器中的地图上点击的时候,我们可以获得一个WebPoint类型的ADF对象,首先需要把这个对象转化为AO对象,这里必须通过两步走的方法:第一步把ADF对象转化为SOAP对象,第二步把SOAP对象转化为AO对象。具体可以参考上面的代码,主要使用了AGSUtil和AGSLocalUtil工具类的两个方法。

当我们得到AO的点以后,就可以使用AO的方法对要素进行处理了,关于AO的处理这里就省略了,关键在于处理完成以后,你还需要把AO对象的结果转化为ADF对象,同样,也需要两步方法,具体见上面的代码。

最后,让我们看一下这个通过AO实现的点击缓冲功能的效果:

image

图 28 调用AO实现的缓冲效果

内容概要:本文围绕六自由度机械臂的人工神经网络(ANN)设计展开,重点研究了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程,并通过Matlab代码实现相关算法。文章结合理论推导与仿真实践,利用人工神经网络对复杂的非线性关系进行建模与逼近,提升机械臂运动控制的精度与效率。同时涵盖了路径规划中的RRT算法与B样条优化方法,形成从运动学到动力学再到轨迹优化的完整技术链条。; 适合人群:具备一定机器人学、自动控制理论基础,熟悉Matlab编程,从事智能控制、机器人控制、运动学六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)建模等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握机械臂正/逆运动学的数学建模与ANN求解方法;②理解拉格朗日-欧拉法在动力学建模中的应用;③实现基于神经网络的动力学补偿与高精度轨迹跟踪控制;④结合RRT与B样条完成平滑路径规划与优化。; 阅读建议:建议读者结合Matlab代码动手实践,先从运动学建模入手,逐步深入动力学分析与神经网络训练,注重理论推导与仿真实验的结合,以充分理解机械臂控制系统的设计流程与优化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值