| | |
| | | |
| | | import com.lf.server.entity.all.StaticData; |
| | | import com.lf.server.helper.StringHelper; |
| | | import com.lf.server.helper.WebHelper; |
| | | import org.apache.commons.logging.Log; |
| | | import org.apache.commons.logging.LogFactory; |
| | | import org.gdal.gdal.Dataset; |
| | |
| | | import org.gdal.ogr.ogr; |
| | | import org.gdal.osr.SpatialReference; |
| | | import org.osgeo.proj4j.*; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.File; |
| | |
| | | private SpatialReference sr4326; |
| | | |
| | | private SpatialReference sr4490; |
| | | |
| | | @Value("${sys.gdal_path}") |
| | | private String gdalPath; |
| | | |
| | | private final static Log log = LogFactory.getLog(RasterService.class); |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 使用GDAL获取EPSG编码 |
| | | */ |
| | | public Integer getEpsgByGdal(String file) { |
| | | try { |
| | | File f = new File(file); |
| | | if (!f.exists() || f.isDirectory()) { |
| | | return null; |
| | | } |
| | | |
| | | String cmd = String.format("%s\\gdalsrsinfo.exe \"%s\" -o epsg", gdalPath, file); |
| | | String rs = WebHelper.exec2(cmd); |
| | | if (StringHelper.isEmpty(rs)) { |
| | | return null; |
| | | } |
| | | |
| | | String[] strs = rs.split("\n"); |
| | | for (String str : strs) { |
| | | if (str.contains("EPSG:")) { |
| | | String epsg = str.replace("EPSG:", ""); |
| | | |
| | | return Integer.parseInt(epsg); |
| | | } |
| | | } |
| | | |
| | | return 0; |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 坐标转换 |
| | | */ |
| | | public Object csTransform(double x, double y, int epsg) { |