Geotools介绍
借用官网的介绍
GeoTools is an open source Java library that provides tools for geospatial data
就是提供java处理地理空间的工具详细内容请参考官网
Geotools环境搭建
我们这里只讨论Geotools在Maven中和Idea的项目实战,至于Geotools的服务端请自行查阅官网
主要分为以下几步:
- Jdk支持
- maven引入
- 执行测试代码
通过查阅官网我们可以很快速的进行项目搭建
按照官方文档的步骤进行搭建官方说明步骤
Geotools实战
- 坐标系的转换
在我们进行经纬度运算的时候很自然的会遇到坐标转换的需求,下面是坐标系转换的示例:
public static<T> T transform(String wkt,int srcNo,int targetNo) {WKTReader wktReader = new WKTReader();//读取wkt为Geometry 几何对象Geometry oldGeometry;try {oldGeometry = wktReader.read(wkt);//获取CRS权威工厂CRSAuthorityFactory crsAuthorityFactory = CRS.getAuthorityFactory(true);//创建sourceCRS 4490 4326CoordinateReferenceSystem sourceCRS = crsAuthorityFactory.createCoordinateReferenceSystem("EPSG:"+srcNo);//创建targetCRS 3857CoordinateReferenceSystem targetCRS = crsAuthorityFactory.createCoordinateReferenceSystem("EPSG:"+targetNo);//获取MathTransformMathTransform mathTransform = CRS.findMathTransform(sourceCRS, targetCRS, true);//转换return (T)JTS.transform(oldGeometry, mathTransform);} catch (ParseException | FactoryException | TransformException e) {throw new RuntimeException(e);}}
上述代码通过wkt进行数据读取,设置原坐标系和目标坐标系完成转换,比如可以将4490的坐标系转成3857,或者4326的坐标系转成3857.
2 坐标系介绍
地理编码:
EPSG编码 | 坐标系 | 备注 |
---|---|---|
4326 | WGS 84 1984 | 地理坐标系统 最常用的 |
4490 | China Geodetic Coordinate System 2000 | 中国2000 |
4214 | Beijing 1954 | 北京坐标系 |
4610 | xian1980 | 西安坐标系 |
4555 | New being |
投影坐标系
EPSG编码 | 坐标系 | 备注 |
---|---|---|
3857 | WGS 1984/Pseudo-Mercator(web墨卡托投影) | 坐标系投影 |
32650 | WGS 84/笛卡尔二维坐标系 | Between 114°E and 120°E |
详情请查询EPSG官网