diff --git a/pom.xml b/pom.xml
index 5d0b34a..6ca4a20 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,12 +73,17 @@
postgresql
42.1.0
+
+ net.sf.json-lib
+ json-lib
+ 2.4
+
org.geotools
gt-opengis
${geotools.version}
-
+
org.geotools
gt-api
${geotools.version}
diff --git a/src/main/java/com/c3gis/spatial/common/CRSUtil.java b/src/main/java/com/gis3c/spatial/common/CRSUtilities.java
similarity index 93%
rename from src/main/java/com/c3gis/spatial/common/CRSUtil.java
rename to src/main/java/com/gis3c/spatial/common/CRSUtilities.java
index 84c8111..b9127ea 100644
--- a/src/main/java/com/c3gis/spatial/common/CRSUtil.java
+++ b/src/main/java/com/gis3c/spatial/common/CRSUtilities.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.common;/**
+package com.gis3c.spatial.common;/**
* Created by hukekuan on 17-7-10.
*/
@@ -15,7 +15,7 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
* @Description 空间坐标系相关方法
* @date 2017-07-10 下午6:31
*/
-public class CRSUtil {
+public class CRSUtilities {
private final static FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
public static CoordinateReferenceSystem GetCRSFromSRID(String sridNumber)
diff --git a/src/main/java/com/gis3c/spatial/common/GeometryUtilities.java b/src/main/java/com/gis3c/spatial/common/GeometryUtilities.java
new file mode 100644
index 0000000..c2fe4d5
--- /dev/null
+++ b/src/main/java/com/gis3c/spatial/common/GeometryUtilities.java
@@ -0,0 +1,315 @@
+package com.gis3c.spatial.common;
+
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.io.ParseException;
+import com.vividsolutions.jts.io.WKTReader;
+import com.vividsolutions.jts.io.WKTWriter;
+import org.geotools.geometry.jts.JTSFactoryFinder;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.geotools.geometry.jts.ReferencedEnvelope;
+import org.geotools.referencing.crs.DefaultGeographicCRS;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Geometry相关方法
+ * Created by hukekuan on 2017/12/11.
+ */
+public class GeometryUtilities {
+ private final static GeometryFactory geomFactory = JTSFactoryFinder.getGeometryFactory();
+ private final static WKTReader reader = new WKTReader(geomFactory);
+ private final static WKTWriter write = new WKTWriter();
+
+ /**
+ * 根据坐标信息生成Point
+ * @param coordinate
+ * @return
+ */
+ public static Point CreatePoint(Coordinate coordinate){
+ return geomFactory.createPoint(coordinate);
+ }
+
+ /**
+ * 根据经纬度生成Point
+ * @param x
+ * @param y
+ * @return
+ */
+ public static Point CreatePoint(double x,double y){
+ return geomFactory.createPoint(new Coordinate(x,y));
+ }
+
+ /**
+ * wkt转geometry
+ * @param wktStr
+ * @return
+ * @throws ParseException
+ */
+ public static Geometry Wkt2Geometry(String wktStr) throws ParseException {
+ Geometry resultGeometry = null;
+ if(wktStr == null || "".equals(wktStr)){
+ return resultGeometry;
+ }
+ resultGeometry = reader.read(wktStr);
+
+ return resultGeometry;
+ }
+
+ /**
+ * geometry转wkt
+ * @param geometry
+ * @return
+ */
+ public static String Geometry2Wkt(Geometry geometry){
+ String resultWkt=null;
+
+ if(geometry == null){
+ return resultWkt;
+ }
+ resultWkt = write.write(geometry);
+ return resultWkt;
+ }
+
+ public static Point JSONObject2Point(JSONObject jsonObj){
+ Point resultPoint = null;
+ if(jsonObj != null){
+ resultPoint = GeometryUtilities.CreatePoint(jsonObj.getDouble("x"),jsonObj.getDouble("y"));
+ }
+ return resultPoint;
+ }
+
+ public static LineString JSONObject2LineString(JSONArray jsonPaths){
+ LineString resultLineString = null;
+ JSONArray pointArray;
+ JSONArray pointJSON;
+ List coordinateList;
+
+ if(jsonPaths != null && jsonPaths.size() > 0){
+ coordinateList = new ArrayList<>();
+ pointArray = jsonPaths.getJSONArray(0);
+ for(Object pointObj : pointArray){
+ pointJSON = (JSONArray) pointObj;
+ coordinateList.add(new Coordinate(pointJSON.getDouble(0),pointJSON.getDouble(1)));
+ }
+ if(coordinateList.size() > 0){
+ resultLineString = geomFactory.createLineString((Coordinate[]) coordinateList.toArray(new Coordinate[0]));
+ }
+ }
+
+ return resultLineString;
+ }
+
+ public static Polygon JSONObject2Polygon(JSONArray jsonRings){
+ Polygon resultPolygon = null;
+ JSONArray pointArray;
+ JSONArray pointJSON;
+ List coordinateList;
+ LinearRing linearRing = null;
+ List holeRings;
+
+ if(jsonRings != null && jsonRings.size() > 0){
+ if(jsonRings.size() == 1){
+ pointArray = (JSONArray) jsonRings.get(0);
+ coordinateList = new ArrayList<>();
+ for(Object pointObj : pointArray){
+ pointJSON = (JSONArray) pointObj;
+ coordinateList.add(new Coordinate(pointJSON.getDouble(0),pointJSON.getDouble(1)));
+ }
+ resultPolygon = geomFactory.createPolygon((Coordinate[]) coordinateList.toArray(new Coordinate[0]));
+
+ }else if(jsonRings.size() > 1){
+ holeRings = new ArrayList<>();
+ for(Object ring : jsonRings){
+ pointArray = (JSONArray) ring;
+ coordinateList = new ArrayList<>();
+ for(Object pointObj : pointArray){
+ pointJSON = (JSONArray) pointObj;
+ coordinateList.add(new Coordinate(pointJSON.getDouble(0),pointJSON.getDouble(1)));
+ }
+
+ if(linearRing == null){
+ linearRing = geomFactory.createLinearRing((Coordinate[]) coordinateList.toArray(new Coordinate[0]));
+ }else{
+ holeRings.add(geomFactory.createLinearRing((Coordinate[]) coordinateList.toArray(new Coordinate[0])));
+ }
+ }
+ resultPolygon = geomFactory.createPolygon(linearRing,(LinearRing[])holeRings.toArray(new LinearRing[0]));
+ }
+ }
+ return resultPolygon;
+ }
+
+ public static ReferencedEnvelope Geometry2Envelope(Geometry geometry){
+ ReferencedEnvelope resultEnvelope = null;
+ if(geometry != null && (geometry instanceof Polygon || geometry instanceof MultiPolygon)){
+ Coordinate[] coordinates = geometry.getEnvelope().getCoordinates();
+ double xmin = 180,xmax = 0,ymin = 90,ymax=0;
+ if(coordinates != null && coordinates.length == 5){
+ for(Coordinate coordinate : coordinates){
+ if(xmin > coordinate.x){
+ xmin = coordinate.x;
+ }
+ if(xmax < coordinate.x){
+ xmax = coordinate.x;
+ }
+ if(ymin > coordinate.y){
+ ymin = coordinate.y;
+ }
+ if(ymax < coordinate.y){
+ ymax = coordinate.y;
+ }
+ }
+ resultEnvelope = new ReferencedEnvelope(xmin, xmax, ymin, ymax, DefaultGeographicCRS.WGS84);
+ }
+ }
+ return resultEnvelope;
+ }
+
+ public static Polygon Line2Polygon(LineString lineString,ReferencedEnvelope referencedEnvelope,Polygon envelopePolygon)
+ throws IllegalArgumentException{
+ if(lineString == null || referencedEnvelope == null || envelopePolygon == null){
+ throw new IllegalArgumentException("Line2Polygon方法参数输入有误");
+ }
+
+ Polygon polygonFromLine = null;
+ LineString intersectLine = null;
+ Geometry intersectGeo = null;
+
+ Coordinate[] lineCoordinate;
+ List coordinateList;
+
+ if(lineString.isClosed()){
+ polygonFromLine = geomFactory.createPolygon(geomFactory.createLinearRing(lineString.getCoordinates()),null);
+ if(!envelopePolygon.contains(polygonFromLine)){
+ intersectGeo = polygonFromLine.intersection(envelopePolygon);
+ if(intersectGeo instanceof Polygon){
+ polygonFromLine = (Polygon) intersectGeo;
+ }
+ }
+ }else if(!lineString.isEmpty()){
+ lineCoordinate = lineString.getCoordinates();
+ double minX = referencedEnvelope.getMinX(),
+ maxX = referencedEnvelope.getMaxX(),
+ minY = referencedEnvelope.getMinY(),
+ maxY = referencedEnvelope.getMaxY();
+ Point centerPoint;
+ coordinateList = new ArrayList(Arrays.asList(lineCoordinate));
+
+ if(Math.abs(lineCoordinate[0].x - minX) < 0.00001 && Math.abs(lineCoordinate[lineCoordinate.length - 1].x - maxX) < 0.00001){
+ centerPoint = lineString.getCentroid();
+ if(centerPoint.getY() <= (minY + maxY)/2){
+ coordinateList.add(new Coordinate(maxX,minY));
+ coordinateList.add(new Coordinate(minX,minY));
+ }else{
+ coordinateList.add(new Coordinate(maxX,maxY));
+ coordinateList.add(new Coordinate(minX,maxY));
+ }
+ coordinateList.add(lineCoordinate[0]);
+
+ lineCoordinate = coordinateList.toArray(new Coordinate[0]);
+ polygonFromLine = geomFactory.createPolygon(geomFactory.createLinearRing(lineCoordinate),null);
+ }else if(Math.abs(lineCoordinate[0].x - maxX) < 0.00001 && Math.abs(lineCoordinate[lineCoordinate.length - 1].x-minX) < 0.00001) {
+ centerPoint = lineString.getCentroid();
+ if(centerPoint.getY() <= (minY + maxY)/2){
+ coordinateList.add(new Coordinate(minX,minY));
+ coordinateList.add(new Coordinate(maxX,minY));
+ }else{
+ coordinateList.add(new Coordinate(minX,maxY));
+ coordinateList.add(new Coordinate(maxX,maxY));
+ }
+ coordinateList.add(lineCoordinate[0]);
+
+ lineCoordinate = coordinateList.toArray(new Coordinate[0]);
+ polygonFromLine = geomFactory.createPolygon(geomFactory.createLinearRing(lineCoordinate),null);
+ }else if(Math.abs(lineCoordinate[0].y - minY) < 0.00001 && Math.abs(lineCoordinate[lineCoordinate.length - 1].y - maxY) < 0.00001){
+ centerPoint = lineString.getCentroid();
+ if(centerPoint.getX() <= (minX + maxX)/2){
+ coordinateList.add(new Coordinate(minX,maxY));
+ coordinateList.add(new Coordinate(minX,minY));
+ }else{
+ coordinateList.add(new Coordinate(maxX,maxY));
+ coordinateList.add(new Coordinate(maxX,minY));
+ }
+ coordinateList.add(lineCoordinate[0]);
+
+ lineCoordinate = coordinateList.toArray(new Coordinate[0]);
+ polygonFromLine = geomFactory.createPolygon(geomFactory.createLinearRing(lineCoordinate),null);
+ }else if(Math.abs(lineCoordinate[0].y-maxY) < 0.00001 && Math.abs(lineCoordinate[lineCoordinate.length - 1].y - minY) < 0.00001){
+ centerPoint = lineString.getCentroid();
+ if(centerPoint.getX() <= (minX + maxX)/2){
+ coordinateList.add(new Coordinate(minX,minY));
+ coordinateList.add(new Coordinate(minX,maxY));
+ }else{
+ coordinateList.add(new Coordinate(maxX,minY));
+ coordinateList.add(new Coordinate(maxX,maxY));
+ }
+ coordinateList.add(lineCoordinate[0]);
+
+ lineCoordinate = coordinateList.toArray(new Coordinate[0]);
+ polygonFromLine = geomFactory.createPolygon(geomFactory.createLinearRing(lineCoordinate),null);
+ }else if(lineCoordinate[0].x == lineCoordinate[lineCoordinate.length - 1].x
+ || lineCoordinate[0].y == lineCoordinate[lineCoordinate.length - 1].y){
+ coordinateList.add(lineCoordinate[0]);
+
+ lineCoordinate = coordinateList.toArray(new Coordinate[0]);
+ polygonFromLine = geomFactory.createPolygon(geomFactory.createLinearRing(lineCoordinate),null);
+ }else{
+ Coordinate startCoordinate = lineCoordinate[0];
+ Coordinate endCoordinate = lineCoordinate[lineCoordinate.length - 1];
+ double x = 0,y = 0;
+
+ if(startCoordinate.x == minX || startCoordinate.x == maxX){
+ x = startCoordinate.x;
+ }
+ if(startCoordinate.y == minY || startCoordinate.y == maxY){
+ y = startCoordinate.y;
+ }
+
+ if(endCoordinate.x == minX || endCoordinate.x == maxX){
+ x = endCoordinate.x;
+ }
+ if(endCoordinate.y == minY || endCoordinate.y == maxY){
+ y = endCoordinate.y;
+ }
+ if(x != 0 && y != 0){
+ coordinateList.add(new Coordinate(x,y));
+ }
+ coordinateList.add(lineCoordinate[0]);
+ lineCoordinate = (Coordinate[]) coordinateList.toArray(new Coordinate[0]);
+ if(lineCoordinate.length >= 4){
+ polygonFromLine = geomFactory.createPolygon(geomFactory.createLinearRing(lineCoordinate),null);
+ }
+
+ }
+ }
+
+ return polygonFromLine;
+ }
+
+ public static MultiPolygon Geometry2MuitlPolygon(Geometry geometry){
+ MultiPolygon resultPolygon = null;
+ if(geometry != null){
+ if(geometry instanceof Polygon){
+ Polygon[] polygons = new Polygon[]{(Polygon)geometry};
+ resultPolygon = geomFactory.createMultiPolygon(polygons);
+ }else if(geometry instanceof MultiPolygon){
+ resultPolygon = (MultiPolygon) geometry;
+ }
+ }
+ return resultPolygon;
+ }
+
+ public static GeometryCollection GeometryCollection(List geometryList){
+ GeometryCollection gc
+ = geomFactory.createGeometryCollection((Geometry[]) geometryList.toArray(new Geometry[0]));
+ return gc;
+ }
+
+ public static Geometry GetBoundaryFromGeometries(List geometryList){
+ GeometryCollection gc = GeometryCollection(geometryList);
+ return gc.getEnvelope();
+ }
+}
diff --git a/src/main/java/com/c3gis/spatial/entity/C3Layer.java b/src/main/java/com/gis3c/spatial/entity/C3Layer.java
similarity index 88%
rename from src/main/java/com/c3gis/spatial/entity/C3Layer.java
rename to src/main/java/com/gis3c/spatial/entity/C3Layer.java
index 8d4fda2..9b8dc9b 100644
--- a/src/main/java/com/c3gis/spatial/entity/C3Layer.java
+++ b/src/main/java/com/gis3c/spatial/entity/C3Layer.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity;
import org.geotools.data.FeatureSource;
import org.geotools.map.FeatureLayer;
diff --git a/src/main/java/com/c3gis/spatial/entity/C3Map.java b/src/main/java/com/gis3c/spatial/entity/C3Map.java
similarity index 98%
rename from src/main/java/com/c3gis/spatial/entity/C3Map.java
rename to src/main/java/com/gis3c/spatial/entity/C3Map.java
index 11279e5..104dd46 100644
--- a/src/main/java/com/c3gis/spatial/entity/C3Map.java
+++ b/src/main/java/com/gis3c/spatial/entity/C3Map.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
diff --git a/src/main/java/com/c3gis/spatial/entity/GeoCity.java b/src/main/java/com/gis3c/spatial/entity/GeoCity.java
similarity index 75%
rename from src/main/java/com/c3gis/spatial/entity/GeoCity.java
rename to src/main/java/com/gis3c/spatial/entity/GeoCity.java
index 4c2845a..d44e2db 100644
--- a/src/main/java/com/c3gis/spatial/entity/GeoCity.java
+++ b/src/main/java/com/gis3c/spatial/entity/GeoCity.java
@@ -1,8 +1,9 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity;
+import com.gis3c.spatial.entity.feature.BaseFeature;
import com.vividsolutions.jts.geom.Geometry;
-public class GeoCity extends BaseFeature{
+public class GeoCity extends BaseFeature {
private String code;
private String name;
private Geometry geometry;
diff --git a/src/main/java/com/c3gis/spatial/entity/BaseFeature.java b/src/main/java/com/gis3c/spatial/entity/feature/BaseFeature.java
similarity index 98%
rename from src/main/java/com/c3gis/spatial/entity/BaseFeature.java
rename to src/main/java/com/gis3c/spatial/entity/feature/BaseFeature.java
index 1cf399c..942d378 100644
--- a/src/main/java/com/c3gis/spatial/entity/BaseFeature.java
+++ b/src/main/java/com/gis3c/spatial/entity/feature/BaseFeature.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.feature;
import com.vividsolutions.jts.geom.Geometry;
import org.geotools.data.DataUtilities;
@@ -35,7 +35,9 @@ public class BaseFeature {
this.geometry = geometry;
}
-
+ /**
+ * 获取所有字段信息
+ */
private List AllFieldes(){
List fieldList = new ArrayList<>();
diff --git a/src/main/java/com/c3gis/spatial/entity/IFeature.java b/src/main/java/com/gis3c/spatial/entity/feature/IFeature.java
similarity index 89%
rename from src/main/java/com/c3gis/spatial/entity/IFeature.java
rename to src/main/java/com/gis3c/spatial/entity/feature/IFeature.java
index a99d8d4..ec8a96e 100644
--- a/src/main/java/com/c3gis/spatial/entity/IFeature.java
+++ b/src/main/java/com/gis3c/spatial/entity/feature/IFeature.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.feature;
import java.lang.reflect.Field;
import java.util.List;
diff --git a/src/main/java/com/c3gis/spatial/entity/C3LineString.java b/src/main/java/com/gis3c/spatial/entity/geometry/C3LineString.java
similarity index 93%
rename from src/main/java/com/c3gis/spatial/entity/C3LineString.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/C3LineString.java
index 17837c1..1ebd3ec 100644
--- a/src/main/java/com/c3gis/spatial/entity/C3LineString.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/C3LineString.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;/**
+package com.gis3c.spatial.entity.geometry;/**
* Created by hukekuan on 17-7-10.
*/
diff --git a/src/main/java/com/c3gis/spatial/entity/C3Point.java b/src/main/java/com/gis3c/spatial/entity/geometry/C3Point.java
similarity index 93%
rename from src/main/java/com/c3gis/spatial/entity/C3Point.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/C3Point.java
index ea5c12d..7e0daa6 100644
--- a/src/main/java/com/c3gis/spatial/entity/C3Point.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/C3Point.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;/**
+package com.gis3c.spatial.entity.geometry;/**
* Created by hukekuan on 17-7-10.
*/
diff --git a/src/main/java/com/c3gis/spatial/entity/C3Polygon.java b/src/main/java/com/gis3c/spatial/entity/geometry/C3Polygon.java
similarity index 93%
rename from src/main/java/com/c3gis/spatial/entity/C3Polygon.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/C3Polygon.java
index 2e18c8f..13c7474 100644
--- a/src/main/java/com/c3gis/spatial/entity/C3Polygon.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/C3Polygon.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;/**
+package com.gis3c.spatial.entity.geometry;/**
* Created by hukekuan on 17-7-10.
*/
diff --git a/src/main/java/com/c3gis/spatial/entity/IGeometry.java b/src/main/java/com/gis3c/spatial/entity/geometry/IGeometry.java
similarity index 81%
rename from src/main/java/com/c3gis/spatial/entity/IGeometry.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/IGeometry.java
index 04e0ad6..8cd7c59 100644
--- a/src/main/java/com/c3gis/spatial/entity/IGeometry.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/IGeometry.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.geometry;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
diff --git a/src/main/java/com/c3gis/spatial/entity/ILineString.java b/src/main/java/com/gis3c/spatial/entity/geometry/ILineString.java
similarity index 68%
rename from src/main/java/com/c3gis/spatial/entity/ILineString.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/ILineString.java
index a64385d..5e049d5 100644
--- a/src/main/java/com/c3gis/spatial/entity/ILineString.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/ILineString.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.geometry;
/**
* Created by hukekuan on 17-7-10.
diff --git a/src/main/java/com/c3gis/spatial/entity/IMultiLineString.java b/src/main/java/com/gis3c/spatial/entity/geometry/IMultiLineString.java
similarity index 69%
rename from src/main/java/com/c3gis/spatial/entity/IMultiLineString.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/IMultiLineString.java
index 072da3e..694a495 100644
--- a/src/main/java/com/c3gis/spatial/entity/IMultiLineString.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/IMultiLineString.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.geometry;
/**
* Created by hukekuan on 17-7-10.
diff --git a/src/main/java/com/c3gis/spatial/entity/IMultiPoint.java b/src/main/java/com/gis3c/spatial/entity/geometry/IMultiPoint.java
similarity index 68%
rename from src/main/java/com/c3gis/spatial/entity/IMultiPoint.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/IMultiPoint.java
index 13bc30b..719a46e 100644
--- a/src/main/java/com/c3gis/spatial/entity/IMultiPoint.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/IMultiPoint.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.geometry;
/**
* Created by hukekuan on 17-7-10.
diff --git a/src/main/java/com/c3gis/spatial/entity/IMultiPolygon.java b/src/main/java/com/gis3c/spatial/entity/geometry/IMultiPolygon.java
similarity index 69%
rename from src/main/java/com/c3gis/spatial/entity/IMultiPolygon.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/IMultiPolygon.java
index 0417523..7cbdc6e 100644
--- a/src/main/java/com/c3gis/spatial/entity/IMultiPolygon.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/IMultiPolygon.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.geometry;
/**
* Created by hukekuan on 17-7-10.
diff --git a/src/main/java/com/c3gis/spatial/entity/IPoint.java b/src/main/java/com/gis3c/spatial/entity/geometry/IPoint.java
similarity index 67%
rename from src/main/java/com/c3gis/spatial/entity/IPoint.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/IPoint.java
index 649f2de..85d093d 100644
--- a/src/main/java/com/c3gis/spatial/entity/IPoint.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/IPoint.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.geometry;
/**
* Created by hukekuan on 17-7-10.
diff --git a/src/main/java/com/c3gis/spatial/entity/IPolygon.java b/src/main/java/com/gis3c/spatial/entity/geometry/IPolygon.java
similarity index 68%
rename from src/main/java/com/c3gis/spatial/entity/IPolygon.java
rename to src/main/java/com/gis3c/spatial/entity/geometry/IPolygon.java
index caed18d..d2e2813 100644
--- a/src/main/java/com/c3gis/spatial/entity/IPolygon.java
+++ b/src/main/java/com/gis3c/spatial/entity/geometry/IPolygon.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.entity;
+package com.gis3c.spatial.entity.geometry;
/**
diff --git a/src/main/java/com/c3gis/spatial/postgis/PostGISHandler.java b/src/main/java/com/gis3c/spatial/postgis/PostGISHandler.java
similarity index 98%
rename from src/main/java/com/c3gis/spatial/postgis/PostGISHandler.java
rename to src/main/java/com/gis3c/spatial/postgis/PostGISHandler.java
index 856e482..85e6a06 100644
--- a/src/main/java/com/c3gis/spatial/postgis/PostGISHandler.java
+++ b/src/main/java/com/gis3c/spatial/postgis/PostGISHandler.java
@@ -1,4 +1,4 @@
-package com.c3gis.spatial.postgis;
+package com.gis3c.spatial.postgis;
import java.io.IOException;
import java.sql.CallableStatement;