From fe50dd9614060ad8639a3567b0197fe55842afbd Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 28 八月 2023 16:25:34 +0800 Subject: [PATCH] 修改坐标转换功能 --- src/main/java/com/moon/server/entity/all/StaticData.java | 16 +++++-- src/main/java/com/moon/server/service/data/UploadService.java | 4 -- src/main/java/com/moon/server/controller/show/ComprehensiveController.java | 2 src/main/java/com/moon/server/service/data/RasterService.java | 64 +++++++++++++++---------------- src/main/java/com/moon/server/service/sys/ProxyService.java | 2 src/main/java/com/moon/server/controller/show/InquiryController.java | 2 src/main/java/com/moon/server/helper/HttpHelper.java | 2 src/main/resources/mapper/data/MetaMapper.xml | 8 ++-- 8 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/moon/server/controller/show/ComprehensiveController.java b/src/main/java/com/moon/server/controller/show/ComprehensiveController.java index eb91ed1..e620347 100644 --- a/src/main/java/com/moon/server/controller/show/ComprehensiveController.java +++ b/src/main/java/com/moon/server/controller/show/ComprehensiveController.java @@ -141,7 +141,7 @@ } List<MetaFileEntity> meList = baseUploadService.uploadData(null, null, false, req, res); - if (meList == null || meList.size() < StaticData.FOUR) { + if (meList == null || meList.size() < StaticData.I4) { return fail("娌℃湁鎵惧埌宸蹭笂浼犵殑鏁版嵁鎴栦笉瀹屾暣", null); } diff --git a/src/main/java/com/moon/server/controller/show/InquiryController.java b/src/main/java/com/moon/server/controller/show/InquiryController.java index 67113bd..fe3c001 100644 --- a/src/main/java/com/moon/server/controller/show/InquiryController.java +++ b/src/main/java/com/moon/server/controller/show/InquiryController.java @@ -63,7 +63,7 @@ } List<MetaFileEntity> list = baseUploadService.uploadData(null, null, false, req, res); - if (list == null || list.size() < StaticData.FOUR) { + if (list == null || list.size() < StaticData.I4) { return fail("娌℃湁鎵惧埌宸蹭笂浼犵殑鏁版嵁鎴栦笉瀹屾暣", null); } diff --git a/src/main/java/com/moon/server/entity/all/StaticData.java b/src/main/java/com/moon/server/entity/all/StaticData.java index d563382..0ef5fb3 100644 --- a/src/main/java/com/moon/server/entity/all/StaticData.java +++ b/src/main/java/com/moon/server/entity/all/StaticData.java @@ -16,11 +16,17 @@ */ public static String[] EXCLUDE_PATH = new String[]{"/sign/", "/perms/", "/floatserver/", "/proxy/", "/swagger", "/error"}; - public final static int TWO = 2; + public final static int I0 = 0; - public final static int THREE = 3; + public final static int I1 = 1; - public final static int FOUR = 4; + public final static int I2 = 2; + + public final static int I3 = 3; + + public final static int I4 = 4; + + public final static int I5 = 5; public final static int NINE = 9; @@ -205,7 +211,7 @@ /** * 鏍呮牸鏁版嵁鎵╁睍鍚� */ - public final static List<String> RASTER_EXT = new ArrayList<>(Arrays.asList(".img", ".tif", ".tiff", "jpg", "jp2")); + public final static List<String> RASTER_EXT = new ArrayList<>(Arrays.asList(".img", ".tif", ".tiff", ".jpg", ".jp2")); /** * MPT鏂囦欢鎵╁睍鍚� @@ -245,7 +251,7 @@ /** * Mapper鎺掗櫎鎵╁睍鍚� */ - public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".jpg.aux.xml", ".jpg.xml", ".jp2.aux.xml", ".jp2.xml", ".jp2.html", ".jp2.txt", ".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml")); + public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".jpg.aux.xml", ".jpg.xml", ".jp2.aux.xml", ".jp2.xml", ".jp2.html", ".jp2.txt", ".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml", ".ecw.xml", "ecw.aux.xml")); /** * 鎵�鏈夋枃浠舵墿灞曞悕 diff --git a/src/main/java/com/moon/server/helper/HttpHelper.java b/src/main/java/com/moon/server/helper/HttpHelper.java index 68f9d87..aef4376 100644 --- a/src/main/java/com/moon/server/helper/HttpHelper.java +++ b/src/main/java/com/moon/server/helper/HttpHelper.java @@ -304,7 +304,7 @@ .replace("?" + res.getArgs() + "&", "?").replace("&" + res.getArgs() + "&", "&"); } - if (StaticData.THREE == res.getCategory() && str.contains(StaticData.REST_LAYER)) { + if (StaticData.I3 == res.getCategory() && str.contains(StaticData.REST_LAYER)) { str = str.replace(res.getUrl().replace("/v6/wmts/", StaticData.REST_LAYER), proxyUrl.replace("/proxy/", "/proxy/rest/")); } } diff --git a/src/main/java/com/moon/server/service/data/RasterService.java b/src/main/java/com/moon/server/service/data/RasterService.java index b82a7a1..e16e9ff 100644 --- a/src/main/java/com/moon/server/service/data/RasterService.java +++ b/src/main/java/com/moon/server/service/data/RasterService.java @@ -58,22 +58,20 @@ } ds = gdal.Open(file, gdalconst.GA_ReadOnly); - if (null == ds || ds.getRasterCount() == 0) { + if (null == ds || ds.getRasterCount() == 0 || null == ds.GetSpatialRef()) { return; } SpatialReference sr = ds.GetSpatialRef(); - if (sr != null) { - // 鍧愭爣绯荤粺 - mf.setCoorSys(sr.GetName()); - if (StaticData.MOON200.equals(mf.getCoorSys())) { - // EPSG缂栫爜 - mf.setEpsg("ESRI:" + StaticData.I104903); - } else { - String code = sr.GetAuthorityCode(null); - // EPSG缂栫爜 - mf.setEpsg(StringHelper.isEmpty(code) ? null : "EPSG:" + code); - } + // 鍧愭爣绯荤粺 + mf.setCoorSys(sr.GetName()); + if (StaticData.MOON200.equals(mf.getCoorSys())) { + // EPSG缂栫爜 + mf.setEpsg("ESRI:" + StaticData.I104903); + } else { + // EPSG缂栫爜锛歅ROJCS銆丟EOGCS銆丟EOGCS|UNIT 鎴� NULL + String code = sr.GetAuthorityCode(null); + mf.setEpsg(StringHelper.isEmpty(code) ? null : "EPSG:" + code); } // 琛屽垪鏁� @@ -90,11 +88,11 @@ mf.sethDatum(null); // 鍒嗚鲸鐜� - double[] transform = new double[6]; - ds.GetGeoTransform(transform); - mf.setResolution(String.format("%f,%f", transform[1], transform[5])); + double[] tr = new double[6]; + ds.GetGeoTransform(tr); + mf.setResolution(String.format("%f,%f", tr[1], tr[5])); - if (!StaticData.EPSGS.contains(mf.getEpsg())) { + if (tr[StaticData.I0] == 0.0 && tr[StaticData.I1] == 1.0 && tr[StaticData.I2] == 0.0 && tr[StaticData.I3] == 0.0 && tr[StaticData.I4] == 0.0 && tr[StaticData.I5] == 1.0) { return; } Geometry minPoint = getMinPoint(ds); @@ -164,58 +162,58 @@ double[] transform = new double[6]; ds.GetGeoTransform(transform); - String epsg = ds.GetSpatialRef().GetAuthorityCode(null); double xMin = transform[0]; double yMin = transform[3] - ds.getRasterYSize() * transform[1]; Geometry point = new Geometry(ogr.wkbPoint); point.AddPoint(xMin, yMin, 0); - return transform(ds, point, epsg); + return transform(ds, point); } /** * 鑾峰彇Dataset鐨勬渶澶х偣 */ private Geometry getMaxPoint(Dataset ds) { + /** + * transform[0] 宸︿笂瑙抶鍧愭爣 + * transform[1] 涓滆タ鏂瑰悜鍒嗚鲸鐜� + * transform[2] 鏃嬭浆瑙掑害, 0琛ㄧず鍥惧儚 "鍖楁柟鏈濅笂" + * + * transform[3] 宸︿笂瑙抷鍧愭爣 + * transform[4] 鏃嬭浆瑙掑害, 0琛ㄧず鍥惧儚 "鍖楁柟鏈濅笂" + * transform[5] 鍗楀寳鏂瑰悜鍒嗚鲸鐜� + */ double[] transform = new double[6]; ds.GetGeoTransform(transform); - String epsg = ds.GetSpatialRef().GetAuthorityCode(null); double xMax = transform[0] + (ds.getRasterXSize() * transform[1]); double yMax = transform[3]; Geometry point = new Geometry(ogr.wkbPoint); point.AddPoint(xMax, yMax, 0); - return transform(ds, point, epsg); + return transform(ds, point); } /** * 鍧愭爣杞崲 */ - private Geometry transform(Dataset ds, Geometry point, String epsg) { + private Geometry transform(Dataset ds, Geometry point) { this.initSpatialReference(); - if (StringHelper.isEmpty(epsg)) { - point.AssignSpatialReference(sr104903); - return point; - } - if (String.valueOf(StaticData.I4326).equals(epsg)) { - point.AssignSpatialReference(sr4326); - return point; - } - if (String.valueOf(StaticData.I4490).equals(epsg)) { - point.AssignSpatialReference(sr4490); + point.AssignSpatialReference(ds.GetSpatialRef()); + if (ds.GetSpatialRef().IsGeographic() > 0) { return point; } - point.AssignSpatialReference(ds.GetSpatialRef()); - if (ds.GetSpatialRef().GetName().contains(StaticData.CGCS2000)) { + String srsName = ds.GetSpatialRef().GetName(); + if (srsName.contains(StaticData.CGCS2000)) { point.TransformTo(sr4490); } else { point.TransformTo(sr4326); } + point.SwapXY(); return point; } diff --git a/src/main/java/com/moon/server/service/data/UploadService.java b/src/main/java/com/moon/server/service/data/UploadService.java index 9f95e0e..95c8c17 100644 --- a/src/main/java/com/moon/server/service/data/UploadService.java +++ b/src/main/java/com/moon/server/service/data/UploadService.java @@ -73,13 +73,9 @@ public void insertFiles(UserEntity ue, List<MetaFileEntity> list, HttpServletRequest req) { checkMetaFiles(ue, list); readRasterInfo(list); - List<MetaFileEntity> xlsList = getExcelFiles(list); loadData(list); copyFiles(list); insertMetas(list); - if (xlsList.size() > 0) { - String guid = excelLoader(xlsList, req); - } } /** diff --git a/src/main/java/com/moon/server/service/sys/ProxyService.java b/src/main/java/com/moon/server/service/sys/ProxyService.java index 454dcbe..3168113 100644 --- a/src/main/java/com/moon/server/service/sys/ProxyService.java +++ b/src/main/java/com/moon/server/service/sys/ProxyService.java @@ -56,7 +56,7 @@ // 9.鑾峰彇璧勬簮瀹炰綋 ResEntity entity = getResEntity(ue, resId); - if (null == entity || StaticData.TWO != entity.getStatus() || StringHelper.isNull(entity.getProxy()) || StringHelper.isNull(entity.getUrl())) { + if (null == entity || StaticData.I2 != entity.getStatus() || StringHelper.isNull(entity.getProxy()) || StringHelper.isNull(entity.getUrl())) { WebHelper.writeStr2Page(res, ILLEGAL_RESOURCE); return; } diff --git a/src/main/resources/mapper/data/MetaMapper.xml b/src/main/resources/mapper/data/MetaMapper.xml index d483060..5e89121 100644 --- a/src/main/resources/mapper/data/MetaMapper.xml +++ b/src/main/resources/mapper/data/MetaMapper.xml @@ -213,7 +213,7 @@ insert into lf.sys_meta (eventid,metaid,verid,name,type,guid,path,sizes,tab,rows,create_user,create_time,bak,geom,layer,depcode,dircode,ismeta,sensortype,acq_time,resolution,gridsize,coor_sys,epsg,h_datum,mata_type,bands,band_type,ct) values - (#{eventid},#{metaid},#{verid},#{name},#{type},#{guid},#{path},#{sizes},#{tab},#{rows},#{createUser},now(),#{bak},${geom},#{layer},#{depcode},#{dircode},#{ismeta},#{sensortype},now(),#{resolution},#{gridsize},#{coorSys},#{epsg},#{hDatum},#{mataType},#{bands},#{bandType},#{ct}) + (#{eventid},#{metaid},#{verid},#{name},#{type},#{guid},#{path},#{sizes},#{tab},#{rows},#{createUser},now(),#{bak},${geom},#{layer},#{depcode},#{dircode},#{ismeta},#{sensortype},#{acqTime},#{resolution},#{gridsize},#{coorSys},#{epsg},#{hDatum},#{mataType},#{bands},#{bandType},#{ct}) </insert> <insert id="inserts"> @@ -221,7 +221,7 @@ (eventid,metaid,verid,name,type,guid,path,sizes,tab,rows,create_user,create_time,bak,geom,layer,depcode,dircode,ismeta,sensortype,acq_time,resolution,gridsize,coor_sys,epsg,h_datum,mata_type,bands,band_type,ct) values <foreach collection="list" item="item" index="index" separator=","> - (#{item.eventid},#{item.metaid},#{item.verid},#{item.name},#{item.type},#{item.guid},#{item.path},#{item.sizes},#{item.tab},#{item.rows},#{item.createUser},now(),#{item.bak},${item.geom},#{item.layer},#{item.depcode},#{item.dircode},#{item.ismeta},#{item.sensortype},now(),#{item.resolution},#{item.gridsize},#{item.coorSys},#{item.epsg},#{item.hDatum},#{item.mataType},#{item.bands},#{item.bandType},#{item.ct}) + (#{item.eventid},#{item.metaid},#{item.verid},#{item.name},#{item.type},#{item.guid},#{item.path},#{item.sizes},#{item.tab},#{item.rows},#{item.createUser},now(),#{item.bak},${item.geom},#{item.layer},#{item.depcode},#{item.dircode},#{item.ismeta},#{item.sensortype},#{item.acqTime},#{item.resolution},#{item.gridsize},#{item.coorSys},#{item.epsg},#{item.hDatum},#{item.mataType},#{item.bands},#{item.bandType},#{item.ct}) </foreach> </insert> @@ -241,14 +241,14 @@ <update id="update"> update lf.sys_meta - set eventid=#{eventid},metaid=#{metaid},verid=#{verid},name=#{name},type=#{type},guid=#{guid},path=#{path},sizes=#{sizes},tab=#{tab},rows=#{rows},update_user=#{updateUser},update_time=now(),bak=#{bak},geom=${geom},layer=#{layer},depcode=#{depcode},dircode=#{dircode},ismeta=#{ismeta},sensortype=#{sensortype},acq_time=now(),resolution=#{resolution},gridsize=#{gridsize},coor_sys=#{coorSys},epsg=#{epsg},h_datum=#{hDatum},mata_type=#{mataType},bands=#{bands},band_type=#{bandType},ct=#{ct} + set eventid=#{eventid},metaid=#{metaid},verid=#{verid},name=#{name},type=#{type},guid=#{guid},path=#{path},sizes=#{sizes},tab=#{tab},rows=#{rows},update_user=#{updateUser},update_time=now(),bak=#{bak},geom=${geom},layer=#{layer},depcode=#{depcode},dircode=#{dircode},ismeta=#{ismeta},sensortype=#{sensortype},acq_time=#{acqTime},resolution=#{resolution},gridsize=#{gridsize},coor_sys=#{coorSys},epsg=#{epsg},h_datum=#{hDatum},mata_type=#{mataType},bands=#{bands},band_type=#{bandType},ct=#{ct} where id=#{id} </update> <update id="updates"> <foreach collection="list" item="item" index="index" separator=";"> update lf.sys_meta - set eventid=#{item.eventid},metaid=#{item.metaid},verid=#{item.verid},name=#{item.name},type=#{item.type},guid=#{item.guid},path=#{item.path},sizes=#{item.sizes},tab=#{item.tab},rows=#{item.rows},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},geom=${item.geom},layer=#{item.layer},depcode=#{item.depcode},dircode=#{item.dircode},ismeta=#{item.ismeta},sensortype=#{item.sensortype},acq_time=now(),resolution=#{item.resolution},gridsize=#{item.gridsize},coor_sys=#{item.coorSys},epsg=#{item.epsg},h_datum=#{item.hDatum},mata_type=#{item.mataType},bands=#{item.bands},band_type=#{item.bandType},ct=#{item.ct} + set eventid=#{item.eventid},metaid=#{item.metaid},verid=#{item.verid},name=#{item.name},type=#{item.type},guid=#{item.guid},path=#{item.path},sizes=#{item.sizes},tab=#{item.tab},rows=#{item.rows},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},geom=${item.geom},layer=#{item.layer},depcode=#{item.depcode},dircode=#{item.dircode},ismeta=#{item.ismeta},sensortype=#{item.sensortype},acq_time=#{item.acqTime},resolution=#{item.resolution},gridsize=#{item.gridsize},coor_sys=#{item.coorSys},epsg=#{item.epsg},h_datum=#{item.hDatum},mata_type=#{item.mataType},bands=#{item.bands},band_type=#{item.bandType},ct=#{item.ct} where id = #{item.id} </foreach> </update> -- Gitblit v1.9.3