ArcObject Java API 开发概述

本文深入探讨了ArcGIS API中接口、类、方法的使用规则,包括接口命名、类的实例化、转型问题以及如何避免常见的访问错误。通过实例代码演示了正确的访问对象方式,并解释了抽象类、coclasses和classes的区别。
:twisted: 1.跨平台

保持平台的兼容性,数据和路径的名称要以小写字母表示,路径要使用相对路径。

2.Interfaces

ArcObject中接口的命名统一以I开头,接口的代理类命名在接口名称后加上proxy,如下命名:

interface IArea: IUnknown public interface IArea{}
public class IAreaProxy implements IArea{}
ArcGIS API 提供了两种访问对象的方式:
/* Point实现了IPoint这个接口,采用向上转型的方式生成对象 */
IPoint iPoint = new com.esri.arcgis.geometry.Point();
/* 直接实例化 */
Point cPoint = new Point();
注意:不能通过缺省的代理类来访问对象,如下面方式:
IPointProxy proxyPoint = new IPointProxy();//错3.Classes
ArcObject提供了三种类:abstract classes, classes, and coclasses,abstract classes不可实例化,coclasses也称Comclasses,可以直接实例化,classes不可以直接实例化。

classes 类可以作为coclasses属性被创建,如下示例代码:

IWorkspaceFactory wf = new ShapefileWorkspaceFactory(); IFeatureWorkspace fw = new IFeatureWorkspaceProxy(wf.openFromFile("\path\to\data", 0) );
/* Create a feature class from FeatureWorkspace. */
IFeatureClass fc = fw.openFeatureClass("featureclass name");
4.Methods that take out parameters
关于转型的问题,ArcGIS API不允许向子类数组中传递超类类型,即使该数组已经被转换为超类类型。 下面是正确的出传递方法:IGeometry[] geoArray = { new Polyline()};
tin.interpolateShape(breakline, geoArray, null);
/* Cast the first array element as a Polyline. This is* the equivalent of calling QueryInterface on IGeometry.*/
IPolyline firstPolyLine = new IPolylineProxy(geoArray[0]);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值