• geotools实现坐标系转换


    maven依赖

    相关maven的jar可以点击下载:repository.zip

     <geotools.version>27-RCgeotools.version>
        
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-shapefileartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-geojsonartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-cqlartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-opengisartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-metadataartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-mainartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-apiartifactId>
                <version>20.5version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-dataartifactId>
                <version>20.5version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-geometryartifactId>
                <version>17.3version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-coverageartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-renderartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotools.xsdgroupId>
                <artifactId>gt-xsd-owsartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotools.xsdgroupId>
                <artifactId>gt-xsd-filterartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotools.xsdgroupId>
                <artifactId>gt-xsd-wpsartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-epsg-hsqlartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-epsg-extensionartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-epsg-wktartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-arcgridartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotools.ogcgroupId>
                <artifactId>net.opengis.wfsartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotools.ogcgroupId>
                <artifactId>net.opengis.wpsartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotools.xsdgroupId>
                <artifactId>gt-xsd-fesartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotools.xsdgroupId>
                <artifactId>gt-xsd-wfsartifactId>
                <version>${geotools.version}version>
            dependency>
            <dependency>
                <groupId>org.geotoolsgroupId>
                <artifactId>gt-epsg-wktartifactId>
                <version>${geotools.version}version>
            dependency>
    
            <dependency>
                <groupId>org.locationtech.jtsgroupId>
                <artifactId>jts-coreartifactId>
                <version>1.17.0version>
            dependency>
    
            <dependency>
                <groupId>net.sf.json-libgroupId>
                <artifactId>json-libartifactId>
                <version>2.4version>
                <classifier>jdk15classifier>
            dependency>
    
            <dependency>
                <groupId>com.googlecode.json-simplegroupId>
                <artifactId>json-simpleartifactId>
                <version>1.1.1version>
            dependency>
            
             <dependency>
                <groupId>org.hsqldbgroupId>
                <artifactId>hsqldbartifactId>
                <version>2.5.2version>
            dependency>
            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143

    案例一:比如4547坐标系转4326

      public Point transformCode(String sourceCode, String targetCode, double x, double y) throws FactoryException, TransformException {
            //4547  4326
            CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:" + sourceCode);
            CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:" + targetCode);
            MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS, true);
            GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
            //30 100
            Coordinate coordinate = new Coordinate(x, y);
            Point source = geometryFactory.createPoint(coordinate);
            Point dist = (Point) JTS.transform(source, transform);
            return dist;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    调用

    Point p = transformCode("4547", "4326", Double.valueOf("580726.5420"), Double.valueOf("3377477.5880"));
    //p.getY();
    //p.getX()
    
    • 1
    • 2
    • 3

    案例二:将geojson文件转shp并输出

    private String gdalWriteShp(String path, String shpName) {
               DataSource ds = ogr.Open(path, 0);
            if (ds == null) {
                return "gdal打开文件失败!";
            }
            String strDriverName = "ESRI Shapefile";
            org.gdal.ogr.Driver dv = ogr.GetDriverByName(strDriverName);
            if (dv == null) {
                return "打开gdal驱动失败!";
            }
            String shpPath = UPLOAD_BASEDIR + "/" + shpName;
            File file = new File(shpPath);
            if (file.exists()) {
                file.delete();
            }
            System.out.println("===>" + dv);
            System.out.println(ds);
            dv.CopyDataSource(ds, shpPath);
            ds.delete();
            dv.delete();
            return "合并转换成功!";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    调用:参数一geojson文件路径,参数二shp文件名称

    String response = gdalWriteShp("E://test.json", "test");
    
    • 1
  • 相关阅读:
    负载均衡的算法(静态算法与动态算法)
    Halcon我的基础教程(一)(我的菜鸟教程笔记)-halcon仿射变换(Affine Transformation)的探究与学习
    VUE页面添加水印
    【Linux杂货铺】调试工具gdb的使用
    C++ Day4
    多比特杯武汉工程大学第六届ACM新生赛(同步赛)D薇尔莉特能拿多少棵碧根果(拓扑)
    C++项目 - 负载均衡OJ - 1 - 项目概述
    [附源码]java毕业设计广州中小学学校信息管理系统
    沃尔玛跨境电商怎么样,沃尔玛收款方式有哪些?——站斧浏览器
    2023湖北汽车工业学院计算机考研信息汇总
  • 原文地址:https://blog.csdn.net/weixin_42707397/article/details/126749529