java geotools 坐标转换

这里写自定义目录标题

  • Java geotools 坐标转换
    • 点坐标转换
      • pom文件
      • 代码
    • shp坐标系转换

Java geotools 坐标转换

点坐标转换

我点坐标转换为4326到3857,虽然我平时都是4546到3857,都一样。主要时因为我手里没有4546的坐标,

pom文件

这个geotools的依赖比较“皮干”,要是下载不成功,就去官网geotools下的quickstart 的Mavenquick quickstart下面找仓库地址。

  <repositories>
      <repository>
        <id>osgeo</id>
        <name>OSGeo Release Repository</name>
        <url>https://repo.osgeo.org/repository/release/</url>
        <snapshots><enabled>false</enabled></snapshots>
        <releases><enabled>true</enabled></releases>
      </repository>
      <repository>
        <id>osgeo-snapshot</id>
        <name>OSGeo Snapshot Repository</name>
        <url>https://repo.osgeo.org/repository/snapshot/</url>
        <snapshots><enabled>true</enabled></snapshots>
        <releases><enabled>false</enabled></releases>
      </repository>
    </repositories>
     <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-epsg-hsql</artifactId>
            <version>20.0</version>
        </dependency>
```<dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-referencing</artifactId>
            <version>20.0</version>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-api</artifactId>
            <version>20.0</version>
        </dependency>

代码

package com.wangkang.gts4vect;

import org.geotools.geometry.jts.JTS;

import org.geotools.referencing.CRS;
import org.locationtech.jts.geom.Coordinate;

import org.opengis.referencing.FactoryException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;

import java.text.DecimalFormat;

public class MyGeotools {
   
    public static void main(String[] args) {
   
//        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
//        WKTReader reader = new WKTReader( geometryFactory );
        //某点的经纬度
        Double y = 34.26095856;
        Double x = 108.94237668;
        Double[] coordinate = getCoordinate(x, y);
        System.out.println(coordinate[0] + " " + coordinate[1]);

    }

    //坐标转换
    public static Double[] getCoordinate(Double x, Double y) {
   
        Double[] res = new Double[2];
        Coordinate tar = null;
        try {
   
            //封装点,这个是通用的,也可以用POINT(y,x&#

你可能感兴趣的:(geotools,java)