/**
* DBSyncer Copyright 2020-2023 All Rights Reserved.
*/
package org.dbsyncer.connector.oracle.geometry;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.Point2D;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
import oracle.sql.Datum;
import oracle.sql.NUMBER;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
public class JGeometry implements Cloneable, Serializable {
static final long serialVersionUID = -4792272186565640701L;
protected static StructDescriptor geomDesc = null;
protected static StructDescriptor pointDesc = null;
protected static ArrayDescriptor elemInfoDesc = null;
protected static ArrayDescriptor ordinatesDesc = null;
protected int gtype;
protected int linfo;
protected int srid;
protected double x;
protected double y;
protected double z;
protected int[] elemInfo;
protected double[] ordinates;
protected double[] mbr;
protected int dim;
protected JGeometry.LT_transform lttpH;
protected JGeometry.Gc_trans gtransH;
private static final double MERCATOR_e3785 = Math.sqrt(0.0D);
private static final double MERCATOR_e54004 = Math.sqrt(0.0066943799901413165D);
private static final double MERCATOR_B = Math.exp(1.0D);
private boolean lltogXYZ(double[] var1, JGeometry.Gc_trans var2) {
var1[0] *= var2.unitfactor;
var1[1] *= var2.unitfactor;
double var3 = Math.cos(var1[1]);
double var5 = Math.sin(var1[1]);
double var7 = Math.cos(var1[0]);
double var9 = Math.sin(var1[0]);
double var11 = var2.smax / Math.sqrt(1.0D - var2.esq * var5 * var5);
var1[0] = var3 * var7 * (var11 + var1[2]);
var1[1] = var3 * var9 * (var11 + var1[2]);
var1[2] = var5 * ((1.0D - var2.esq) * var11 + var1[2]);
return true;
}
private boolean gXYZtoll(double[] var1, JGeometry.Gc_trans var2) {
double var11 = var1[0] * var1[0] + var1[1] * var1[1];
double var9 = (1.0D + var2.esq) * var1[2];
double var7 = var9 / Math.sqrt(var11 + var9 * var9);
double var3;
double var5;
do {
var5 = var7;
var3 = var2.smax / Math.sqrt(1.0D - var2.esq * var7 * var7);
var9 = var1[2] + var3 * var2.esq * var7;
var7 = var9 / Math.sqrt(var11 + var9 * var9);
} while(Math.abs(var7 - var5) > 1.0E-15D);
var3 = var2.smax / Math.sqrt(1.0D - var2.esq * var7 * var7);
var9 = var1[2] + var3 * var2.esq * var7;
var1[0] = Math.atan2(var1[1], var1[0]);
var1[1] = Math.asin(var7);
var1[2] = Math.sqrt(var11 + var9 * var9) - var3;
return true;
}
private boolean gxyzgmcenter(double[] var1, double[] var2, JGeometry.Gc_trans var3) {
for(int var4 = 0; var4 < 3; ++var4) {
var1[var4] = (var2[var4] + var2[var4 + 3]) / 2.0D;
}
double var7 = var3.radius / Math.sqrt(var1[0] * var1[0] + var1[1] * var1[1] + var1[2] * var1[2]);
for(int var6 = 0; var6 < 3; ++var6) {
var1[var6] *= var7;
}
return this.gXYZtoll(var1, var3);
}
private boolean ltxform(double[] var1, JGeometry.LT_transform var2) {
double var3 = var1[0] - var2.xc;
double var5 = var1[1] - var2.yc;
double var7 = var1[2] - var2.zc;
var1[0] = var2.xrow[0] * var3 + var2.xrow[1] * var5 + var2.xrow[2] * var7;
var1[1] = var2.yrow[0] * var3 + var2.yrow[1] * var5 + var2.yrow[2] * var7;
var1[2] = 0.0D;
return true;
}
private boolean iltxform(double[] var1, JGeometry.LT_transform var2, JGeometry.Gc_trans var3) {
double var4 = var1[0];
double var6 = var1[1];
double var8 = 0.0D;
var8 = Math.sqrt(var3.radius * var3.radius - var4 * var4 - var6 * var6) - var3.radius;
var1[0] = var2.xrow[0] * var4 + var2.yrow[0] * var6 + var2.zrow[0] * var8 + var2.xc;
var1[1] = var2.xrow[1] * var4 + var2.yrow[1] * var6 + var2.zrow[1] * var8 + var2.yc;
var1[2] = var2.xrow[2] * var4 + var2.yrow[2] * var6 + var2.zrow[2] * var8 + var2.zc;
return true;
}
protected JGeometry(int var1, int var2) {
this.gtype = 0;
this.linfo = 0;
this.srid = 0;
this.x = 0.0D / 0.0;
this.y = 0.0D / 0.0;
this.z = 0.0D / 0.0;
this.elemInfo = null;
this.ordinates = null;
this.mbr = null;
this.dim = 2;
this.gtype = var1 % 100;
this.linfo = var1 % 1000 / 100;
this.dim = var1 / 1000 > 0 ? var1 / 1000 : 2;
this.srid = var2 <= 0 ? 0 : var2;
}
public JGeometry(int var1, int var2, double var3, double var5, double var7, int[] var9, double[] var10) {
this(var1, var2);
this.x = var3;
this.y = var5;
this.z = var7;
if (var9 != null && var10 != null) {
if (etype0_exists(var9) && !ordOffset0_exists(var9)) {
ArrayList var11 = new ArrayList();
ArrayList var12 = new ArrayList();
remove_etype0(var9, var10, var11, var12);
int[] var13 = new int[var11.size()];
double[] var14 = new double[var12.size()];
int var15;
for(var15 = 0; var15 < var11.size(); ++var15) {
var13[var15] = (Integer)var11.get(var15);
}
for(var15 = 0; var15 < var12.size(); ++var15) {
var14[var15] = (Double)var12.get(var15);
}
this.elemInfo = var13;
this.ordinates = var14;
} else {
this.elemInfo = var9;
this.ordinates = var10;
}
} else {
this.elemInfo = var9;
this.ordinates = var10;
}
}
public JGeometry(int var1, int var2, int[] var3, double[] var4) {
this(var1, var2);
if (var3 != null && var4 != null) {
if (etype0_exists(var3) && !ordOffset0_exists(var3)) {
ArrayList var5 = new ArrayList();
ArrayList var6 = new ArrayList();
remove_etype0(var3, var4, var5, var6);
int[] var7 = new int[var5.size()];
double[] var8 = new double[var6.size()];
int var9;
for(var9 = 0; var9 < var5.size(); ++var9) {
var7[var9] = (Integer)var5.get(var9);
}
for(var9 = 0; var9 < var6.size(); ++var9) {
var8[var9] = (Double)var6.get(var9);
}
this.elemInfo = var7;
this.ordinates = var8;
} else {
this.elemInfo = var3;
this.ordinates = var4;
}
} else {
this.elemInfo = var3;
this.ordinates = var4;
}
}
public JGeometry(double var1, double var3, int var5) {
this(1, var5);
this.x = var1;
this.y = var3;
}
public JGeometry(double var1, double var3, double var5, int var7) {
this(3001, var7);
this.x = var1;
this.y = var3;
this.z = var5;
}
public JGeometry(double var1, double var3, double var5, double var7, int var9) {
this(3, var9);
this.elemInfo = new int[3];
this.elemInfo[0] = 1;
this.elemInfo[1] = 1003;
this.elemInfo[2] = 3;
this.ordinates = new double[4];
this.ordinates[0] = var1;
this.ordinates[1] = var3;
this.ordinates[2] = var5;
this.ordinates[3] = var7;
}
public
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目是基于Java开发的DBSyncer开源数据同步中间件设计源码,共包含794个文件。其中Java源代码文件514个,PNG图片文件82个,CSS样式文件59个,HTML页面文件44个,JavaScript源代码文件34个,XML配置文件22个,ConnectorService类文件8个,Shell脚本文件5个,CMD命令文件3个,SQL文件3个。DBSyncer是一款提供多种数据源同步的中间件,支持MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景,并支持上传插件自定义同步转换业务。此外,DBSyncer还提供监控全量和增量数据统计图、应用性能预警等功能。项目结构清晰,代码注释详尽,适合用于学习和研究Java在数据同步中间件开发中的应用。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java的DBSyncer开源数据同步中间件设计源码 (796个子文件)
jmxremote.access 4KB
startup.bat 2KB
version.cmd 492B
build.cmd 244B
install.cmd 76B
org.dbsyncer.sdk.spi.ConnectorService 110B
org.dbsyncer.sdk.spi.ConnectorService 106B
org.dbsyncer.sdk.spi.ConnectorService 94B
org.dbsyncer.sdk.spi.ConnectorService 94B
org.dbsyncer.sdk.spi.ConnectorService 90B
org.dbsyncer.sdk.spi.ConnectorService 59B
org.dbsyncer.sdk.spi.ConnectorService 43B
org.dbsyncer.sdk.spi.ConnectorService 41B
bootstrap.min.css 115KB
font-awesome.min.css 30KB
_all.css 20KB
_all.css 14KB
_all.css 14KB
_all.css 12KB
bootstrap-select.min.css 11KB
fileinput.min.css 9KB
bootstrap-checkbox.css 7KB
bootstrap-switch.min.css 5KB
login.css 3KB
purple.css 2KB
yellow.css 2KB
orange.css 2KB
green.css 2KB
pink.css 2KB
blue.css 2KB
grey.css 2KB
aero.css 2KB
red.css 2KB
line.css 2KB
index.css 2KB
bootstrap-dialog.min.css 2KB
all.css 2KB
purple.css 2KB
orange.css 2KB
yellow.css 2KB
purple.css 2KB
orange.css 2KB
yellow.css 2KB
green.css 2KB
green.css 1KB
pink.css 1KB
blue.css 1KB
grey.css 1KB
aero.css 1KB
pink.css 1KB
blue.css 1KB
grey.css 1KB
aero.css 1KB
red.css 1KB
red.css 1KB
minimal.css 1KB
polaris.css 1KB
square.css 1KB
purple.css 1KB
orange.css 1KB
yellow.css 1KB
green.css 1KB
pink.css 1KB
blue.css 1KB
grey.css 1KB
aero.css 1KB
futurico.css 1KB
red.css 1KB
flat.css 1KB
bootstrap-tagsinput.min.css 1KB
common.css 1KB
loading-plus.css 396B
Dockerfile 465B
fontawesome-webfont.eot 162KB
loading-sm.gif 3KB
loading.gif 847B
.gitignore 122B
index.html 15KB
addKafka.html 14KB
monitor.html 12KB
editTableGroup.html 11KB
addSQL.html 10KB
plugin.html 9KB
edit.html 7KB
index.html 7KB
editFilter.html 5KB
system.html 5KB
edit.html 5KB
addFile.html 5KB
editTable.html 4KB
editConvert.html 4KB
addDqlPostgreSQL.html 4KB
add.html 4KB
add.html 4KB
config.html 4KB
editIncrement.html 3KB
addPostgreSQL.html 3KB
edit.html 3KB
save.html 3KB
add.html 3KB
共 796 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
沐知全栈开发
- 粉丝: 4746
- 资源: 3373
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功