pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/se/simu/controller/SimuController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/se/simu/utils/ProjectionToGeographicUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/se/simu/utils/ShpReadUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -298,6 +298,11 @@ <artifactId>jts</artifactId> <version>1.13</version> </dependency> <dependency> <groupId>org.osgeo</groupId> <artifactId>proj4j</artifactId> <version>0.1.0</version> </dependency> </dependencies> <repositories> <repository> src/main/java/com/se/simu/controller/SimuController.java
@@ -467,12 +467,7 @@ JSONArray array = JSONObject.parseObject(map.get("the_geom").toString()).getJSONArray("coordinates"); for (int i = 0; i < array.size(); i++) { JSONObject object = JSONObject.parseObject(array.get(i).toString()); JSONArray vertice = new JSONArray(); //todo æªæ¥ä¿®æ¹åæ ç³» vertice.add(object.get("x")); vertice.add(object.get("y")); vertice.add(0.0); jsonObject.getJSONArray("vertices").add(vertice); jsonObject.getJSONArray("vertices").add(ProjectionToGeographicUtil.getPoint(Double.valueOf(object.get("x").toString()),Double.valueOf(object.get("y").toString()))); boundarie.add(jsonObject.getJSONArray("vertices").size()); } metry.put("boundaries", boundarie); src/main/java/com/se/simu/utils/ProjectionToGeographicUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package com.se.simu.utils; import com.alibaba.fastjson.JSONArray; import org.osgeo.proj4j.BasicCoordinateTransform; import org.osgeo.proj4j.CRSFactory; import org.osgeo.proj4j.CoordinateReferenceSystem; import org.osgeo.proj4j.ProjCoordinate; public class ProjectionToGeographicUtil { public static JSONArray getPoint(Double x,Double y) { // å建 CRSFactory 对象 CRSFactory crsFactory = new CRSFactory(); // å®ä¹æå½±åæ ç³»ç»ï¼è¿é以 UTM æå½±ä¸ºä¾ï¼zone 33N CoordinateReferenceSystem sourceCRS = crsFactory.createFromName("EPSG:4548"); // å®ä¹å°çåæ ç³»ç»ï¼è¿éä½¿ç¨ WGS84 CoordinateReferenceSystem targetCRS = crsFactory.createFromName("EPSG:4326"); // åå»ºåæ è½¬æ¢å¯¹è±¡ BasicCoordinateTransform transform = new BasicCoordinateTransform(sourceCRS, targetCRS); //lon=116.683795 lat=39.90849042 // è¾å ¥æå½±åæ ï¼ä»¥ UTM æå½±åæ 为ä¾ï¼å使¯ç±³ ProjCoordinate sourceCoord = new ProjCoordinate(x, y); ProjCoordinate targetCoord = new ProjCoordinate(); // æ§è¡åæ è½¬æ¢ transform.transform(sourceCoord, targetCoord); JSONArray vertice = new JSONArray(); vertice.add(targetCoord.x); vertice.add(targetCoord.y); vertice.add(0.0); return vertice; } } src/main/java/com/se/simu/utils/ShpReadUtils.java
@@ -24,8 +24,8 @@ public class ShpReadUtils { public static void main(String[] args) throws Exception { //readPointShp("D:\\åå¸å æ¶\\sem\\管ç¹\\pipeline-point.shp"); readPointShp("D:\\åå¸å æ¶\\sem\\管线\\pipeline-conduit.shp"); readPointShp("D:\\åå¸å æ¶\\sem\\管ç¹\\pipeline-point.shp"); //readPointShp("D:\\åå¸å æ¶\\sem\\管线\\pipeline-conduit.shp"); } static class GeometrySerializer extends JsonSerializer<Geometry> { @Override