目录
一、引言
使用geotools主要是对数据进行操作,这里的操作包括空间关系判断和空间关系运算。这里的空间关系判断常用的是否相交、是否包含等;空间运算主要包括取交集、并集、擦除、切除、对称差异分析等等。
二、代码操作
1、服务端
由于geotools中没有gts的帮助文档,这里直接参考了牛哥的博客作为示例。其中几何对象的创建和空间操作都是使用的jts库,由wkt格式创建。
/**
* 后台读取数据进行空间运算,geometry转为wkt返回
* @return
* @throws ParseException
*/
@RequestMapping("/operation")
@ResponseBody
public Object GEOOperation() throws ParseException {
String wktPoint = "POINT(103.83489981581 33.462715497945)";
String wktLine = "LINESTRING(108.32803893589 41.306670233001,99.950999898452 25.84722546391)";
String wktPolygon = "POLYGON((100.02715479879 32.168082192159,102.76873121104 37.194305614622,107.0334056301 34.909658604412,105.96723702534 30.949603786713,100.02715479879 32.168082192159))";
String wktPolygon1 = "POLYGON((96.219409781775 32.777321394882,96.219409781775 40.240501628236,104.82491352023001 40.240501628236,104.82491352023001 32.777321394882,96.219409781775 32.777321394882))";
//空间关系
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory( null );
WKTReader reader = new WKTReader( geometryFactory );
Point point = (Point) reader.read(wktPoint);
LineString line = (LineString) reader.read(wktLine);
Polygon polygon = (Polygon) reader.read(wktPolygon);
Polygon polygon1 = (Polygon) reader.read(wktPolygon1);
System.out.println("-------空间关系判断-------");