首页 > 代码库 > Java调用AE实现创建泰森多边形(voronoi图)
Java调用AE实现创建泰森多边形(voronoi图)
在网上搜索 AE 创建泰森多边形,都是基于VB或者C#的,
鉴于C#和Java相近,就将C#的代码翻译成Java,
但修改后的程序运行无结果,
经多次尝试,设置了addFromFeatureClass方法的第三个参数,终于获得了泰森多边形。
现把代码共享,如下:
public void CreatVoronoi(IFeatureClass pointFeaCls,IFeatureClass voronoiFeaCls,IPolygon clippingPolygon){ try { if (pointFeaCls.getShapeType() == esriGeometryType.esriGeometryPoint) { if(pointFeaCls.featureCount(null)>2) { // FeatureClass fc=new FeatureClass(pointFeaCls); IEnvelope pEnv =clippingPolygon.getEnvelope();// (IEnvelope)fc.getExtent(); pEnv.setSpatialReferenceByRef(clippingPolygon.getSpatialReference()); ITinEdit pTinEdit = new Tin(); pTinEdit.initNew(pEnv); pTinEdit.addFromFeatureClass(pointFeaCls, null, pointFeaCls.getFields().getField(0) , null, esriTinSurfaceType.esriTinMassPoint, null); pTinEdit.refresh(); ITinNodeCollection pTinNodeCollection = (ITinNodeCollection)pTinEdit; pTinNodeCollection.convertToVoronoiRegions(voronoiFeaCls, null, clippingPolygon,"",""); System.out.println("voronoiFeaCls:"+voronoiFeaCls.featureCount(null)); } else System.out.println("必须输入至少3个点!"); } else System.out.println("必须输入点数据!"); } catch (AutomationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }// return voronoiFeaCls; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。