Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用地理工具进行坐标投影_Java_Geotools - Fatal编程技术网

Java 用地理工具进行坐标投影

Java 用地理工具进行坐标投影,java,geotools,Java,Geotools,我正在处理一个简单的任务:使用 String code = "26910"; CoordinateReferenceSystem crs = ReferencingFactoryFinder.getCRSAuthorityFactory ("EPSG",null).createCoordinateReferenceSystem(code); 此代码段生成: `Exception in thread "main" java.lang.NoClassDefFoundError: Could not

我正在处理一个简单的任务:使用

String code = "26910";
CoordinateReferenceSystem crs = ReferencingFactoryFinder.getCRSAuthorityFactory
("EPSG",null).createCoordinateReferenceSystem(code);
此代码段生成:

`Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.hsqldb.lib.FrameworkLogger
    at org.hsqldb.persist.Logger.getEventLogger(Unknown Source)
    at org.hsqldb.persist.Logger.logInfoEvent(Unknown Source)
    at org.hsqldb.persist.Logger.closePersistence(Unknown Source)
    at org.hsqldb.Database.reopen(Unknown Source)
    at org.hsqldb.Database.open(Unknown Source)
    at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
    at org.hsqldb.DatabaseManager.newSession(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
    at org.geotools.referencing.factory.epsg.DirectEpsgFactory.getConnection(DirectEpsgFactory.java:3196)
    at org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore(ThreadedEpsgFactory.java:436)
    at org.geotools.referencing.factory.DeferredAuthorityFactory.getBackingStore(DeferredAuthorityFactory.java:133)
    at org.geotools.referencing.factory.BufferedAuthorityFactory.isAvailable(BufferedAuthorityFactory.java:235)
    at org.geotools.referencing.factory.DeferredAuthorityFactory.isAvailable(DeferredAuthorityFactory.java:119)
    at org.geotools.factory.FactoryRegistry.isAvailable(FactoryRegistry.java:667)
    at org.geotools.factory.FactoryRegistry.isAcceptable(FactoryRegistry.java:501)
    at org.geotools.factory.FactoryRegistry.getServiceImplementation(FactoryRegistry.java:437)
    at org.geotools.factory.FactoryRegistry.getServiceProvider(FactoryRegistry.java:365)
    at org.geotools.factory.FactoryCreator.getServiceProvider(FactoryCreator.java:145)
    at org.geotools.referencing.ReferencingFactoryFinder.getAuthorityFactory(ReferencingFactoryFinder.java:220)
    at org.geotools.referencing.ReferencingFactoryFinder.getCRSAuthorityFactory(ReferencingFactoryFinder.java:440)`
关键是我的IDE无法解析JTS.transform(/…/)。

我在类路径中有gt-epsg-hsql-13.0、gt-geojson-13.0、gt-jts-wrapper-13.0、gt-opengis-13.0、gt-Reference-13.0、jts-1.13

我的pom.xml是:

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0         http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>geotools_test_3</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-referencing</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-epsg-hsql</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
            <groupId>com.vividsolutions</groupId>
            <artifactId>jts</artifactId>
            <version>${geotools.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

4.0.0
com.example
geotools_测试_3
1.0-快照
org.geotools
gt引用
${geotools.version}
org.geotools
gt epsg hsql
${geotools.version}
com.com解决方案
jts
${geotools.version}


有人知道问题出在哪里吗?

生成坐标系的最简单方法是使用以下代码:

CoordinateReferenceSystem crs = null;
try {

    crs = CRS.decode("epsg:26910");
    System.out.println("got "+crs);

} catch (FactoryException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
确保pom文件中包含以下内容

    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-referencing</artifactId>
        <version>${geotools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-epsg-hsql</artifactId>
        <version>${geotools.version}</version>
    </dependency>

org.geotools
gt引用
${geotools.version}
org.geotools
gt epsg hsql
${geotools.version}

我假设您缺少类路径中的
hsqldb-x.x.x.jar
?您正在使用什么IDE?对于NetBeans:右键单击project选项卡中的Libraries节点并添加jar文件。不,我已经在类路径中添加了hsqldb。我正在使用Intellij IDEA社区编辑,你能在你的附件中列出geotools JAR吗?我怀疑您丢失了一个epsg,您需要为JTS添加gt api,可能还有gt main,您可以给我一个提示,如何使用GeoTools使用epsg代码检索数据吗?例如,我希望有一个包含EPSG:6277的基准参数的基准对象。有可能吗?很抱歉延迟回答,非常感谢您的帮助。您的代码示例中的wkt变量是什么?它是我存储epsg代码的字符串-我用“epsg:26910”替换它以使其更清晰谢谢您的回答。基本上,我需要解决一个不同的任务,我需要实现坐标变换和转换。假设我需要将WGS-84基准坐标转换为SK-42基准坐标,然后投影这些坐标(高斯-克鲁格投影)。您能推荐一种如何使用GeoTools实现这些操作的最佳实践吗?如上所述-GeoTools将直接从epsg:4326(WGS84)转到您需要的任何高斯-克鲁格投影(对于代码),重点是我需要使用自定义参数创建高斯-克鲁格投影。因此,预定义的投影将不起作用。关于我的事有什么指导吗?我找不到任何相关信息。
    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-referencing</artifactId>
        <version>${geotools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-epsg-hsql</artifactId>
        <version>${geotools.version}</version>
    </dependency>