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;
 }

Java调用AE实现创建泰森多边形(voronoi图)

时间: 2024-11-13 07:30:13

Java调用AE实现创建泰森多边形(voronoi图)的相关文章

JAVA基于AE调用GP实现泰森多边形

public void CreatVoronoi(){ try { GeoProcessor gp=new GeoProcessor(); gp.setOverwriteOutput(true); CreateThiessenPolygons createThiessen=new CreateThiessenPolygons(); createThiessen.setInFeatures("F:/db/pts.shp") createThiessen.setOutFeatureClas

java调用matlab函数

如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量,运行tomcat,Eclipse等都需要依靠环境变量JAVA_HOME,Path,classpath,具体的设置可以参考这里 为了使在matlab中将.m函数编译为jar包,还需要在classpath中添加: %matlabInstallRoot%\R2010a\toolbox\javabuild

MyElipse6.5环境下java调用vs2010动态链接库DLL人脸检测

Java调用C++动态链接库的网络上的文章也很多,但是还是有个别的问题没有提到,导致操作起来还是难度较大,关键是程序的疑难杂症不好治. 准备工具:vs2010,java1.6,MyElipse6.5,opencv2.4.6(其他版本请留意程序中的版本号),摄像头. 操作流程,流水式操作: 1.先建立文件FaceDetect.java文件并通过指令生成.h头文件 FaceDetect.java的代码: public class FaceDetect { static { System.loadLi

[转] Android自动化测试之使用java调用monkeyrunner(五)

Android自动化测试之使用java调用monkeyrunner 众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本.不过,最近发现可以用java调用monkeyrunner Api,用java语言写测试脚本. 于是,就简单研究了一下.这里做一些总结.希望有对在研究的午饭可以有所用处. 开始时,搜素到一些零碎的教程,说使用java调用monkeyrunner时,需要导入android sdk  tools路径下的lib里

Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰

最近要做个课程设计,使用微博控制树莓派,树莓派再控制发光二极管的亮和灭,主要设计分两层,上层是用Java调用新浪微博API来实现对微博旳监听,当我的微博被回复时能够自动读取评论内容,并根据评论的指令内容来决定树莓派的控制动作.下层是用C语言调用操作系统底层接口来实现用树莓派GPIO接口控制发光二极管的闪烁.亮灭. 由于网上教程都很老了,最近微博接口发生了很多变化,所以我决定全新写一篇详细的博文,如若能对您起到帮助作用,那将是我莫大的荣幸.同时我非常希望能与您交流,有问题请在评论里回复我. 本文将

Java调用JavaFX的方法

Java调用JavaFX的方法.这三种方法分别为: 1. 用ScriptEngineManager类.这是基于JSR-223规范的java脚本API( scripting API).可以在java程序中运行一些脚本,如 JavaFX script, javascript等.2. 通过JavaFX reflection API.这是JavaFX提供的反射API,几乎可以调用所有的JavaFX类.3. 先用JavaFX类实现一个Java的interface,然后Java程序可以通过这个interfa

java调用matlab函数接口的两种方案

Java 调用matlab 函数接口 Java调用matlab函数接口有两种方式: l 一种是通过matlab把函数打成jar包: l 一种是把matlab编译成dll后,用C++再封装成java能支持的数据类型的dll. 注意:不论用这两种方式中的哪一种,最终部署时都需要matlab环境(MCR,在matlab安装路径下有). 1. 方式一:matlab直接打jar包 1.1. 利用matlab自带工具打jar包 1.1.1. 建立jar包 在matlab的Commond Window中输入d

带头大哥777:Java调用百度API实现翻译

本设计参考了CSDN"京城第一歌姬"博客的设计思路,完成,本人在自己电脑上完全自己创建项目,自己敲代码完成,最后运行成功,我用的开发工具是Myeclipse10 ,JDK1.7 下运行,如图: 项目文件 下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见 点击打开链接 http://api.fanyi.baidu.com/api/trans/product/index 申请之后,会得到APP_ID和SECURIT

JAVA调用C语言写的SO文件

JAVA调用C语言写的SO文件 因为工作需要写一份SO文件,作为手机硬件IC读卡和APK交互的桥梁,也就是中间件,看了网上有说到JNI接口技术实现,这里转载了一个实例 1 // 用JNI实现 2 // 实例: 3 4 // 创建HelloWorld.java 5 class HelloWorld 6 { 7 private native void print(); 8 public static void main(String[] args) 9 { 10 new HelloWorld().p