diff --git a/src/main/java/com/gis3c/App.java b/src/main/java/com/gis3c/App.java index 1418e10..d2bdac2 100644 --- a/src/main/java/com/gis3c/App.java +++ b/src/main/java/com/gis3c/App.java @@ -1,9 +1,9 @@ package com.gis3c; import com.gis3c.ol.service.MapService; -import com.gis3c.ol.service.impl.MapServiceImpl; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; +import com.gis3c.ol.entity.Map; /** * Created by hukekuan on 2017/12/14. @@ -14,7 +14,9 @@ public class App { } public static void main(String[] args) { ApplicationContext context = ApplicationInit(); - MapService mapService = (MapService) context.getBean(MapService.class); - System.out.println(mapService.findAllList()); + MapService mapService = context.getBean(MapService.class); + Map map = mapService.findAllList().get(0); + String[][] controls = map.getControls(); + System.out.println(controls); } } diff --git a/src/main/java/com/gis3c/ol/dao/LayerDao.java b/src/main/java/com/gis3c/ol/dao/LayerDao.java new file mode 100644 index 0000000..82bce60 --- /dev/null +++ b/src/main/java/com/gis3c/ol/dao/LayerDao.java @@ -0,0 +1,21 @@ +package com.gis3c.ol.dao; + +import com.gis3c.ol.entity.layer.TileLayer; +import com.gis3c.ol.entity.layer.VectorLayer; + +/** + * Created by hukekuan on 2017/12/15. + */ +public interface LayerDao { + public TileLayer findeTileLayerById(String layerId); + public TileLayer findeTileLayerByName(String layerName); + + public int insertTileLayer(TileLayer tileLayer); + + + + public VectorLayer findeVectorLayerById(String layerId); + public VectorLayer findeVectorLayerByName(String layerName); + + public int insertVectorLayer(VectorLayer vectorLayer); +} diff --git a/src/main/java/com/gis3c/ol/dao/MapDao.java b/src/main/java/com/gis3c/ol/dao/MapDao.java index 2adaea3..b879083 100644 --- a/src/main/java/com/gis3c/ol/dao/MapDao.java +++ b/src/main/java/com/gis3c/ol/dao/MapDao.java @@ -1,9 +1,9 @@ package com.gis3c.ol.dao; import com.gis3c.common.persistence.annotation.C3BatisDao; +import com.gis3c.ol.entity.Map; import java.util.List; -import java.util.Map; /** * Created by hukekuan on 2017/12/14. diff --git a/src/main/java/com/gis3c/ol/dao/SourceDao.java b/src/main/java/com/gis3c/ol/dao/SourceDao.java new file mode 100644 index 0000000..2d86b93 --- /dev/null +++ b/src/main/java/com/gis3c/ol/dao/SourceDao.java @@ -0,0 +1,37 @@ +package com.gis3c.ol.dao; + +import com.gis3c.ol.entity.source.TileArcGISRest; +import com.gis3c.ol.entity.source.TileSuperMapRest; +import com.gis3c.ol.entity.source.Vector; +import com.gis3c.ol.entity.source.Wmts; + +/** + * Created by hukekuan on 2017/12/15. + */ +public interface SourceDao { + public TileArcGISRest findTileArcGISRestById(String sourceId); + public TileArcGISRest findTileArcGISRestByName(String sourceName); + + public Integer insertTileArcGISRest(TileArcGISRest tileArcGISRest); + + + + public TileSuperMapRest findTileTileSuperMapRestById(String sourceId); + public TileSuperMapRest findTileTileSuperMapRestByName(String sourceName); + + public Integer insertTileSuperMapRest(TileSuperMapRest tileSuperMapRest); + + + + public Vector findVectorById(String sourceId); + public Vector findVectorByName(String sourceName); + + public Integer insertVector(Vector vector); + + + + public Wmts findWmtsById(String sourceId); + public Wmts findWmtsByName(String sourceName); + + public Integer insertWmts(Wmts wmts); +} diff --git a/src/main/java/com/gis3c/ol/dao/ViewDao.java b/src/main/java/com/gis3c/ol/dao/ViewDao.java new file mode 100644 index 0000000..de8fad3 --- /dev/null +++ b/src/main/java/com/gis3c/ol/dao/ViewDao.java @@ -0,0 +1,13 @@ +package com.gis3c.ol.dao; + +import com.gis3c.ol.entity.View; + +/** + * Created by hukekuan on 2017/12/15. + */ +public interface ViewDao { + public View findeViewById(String viewId); + public View findeViewByName(String viewName); + + public Integer insertView(View view); +} diff --git a/src/main/java/com/gis3c/ol/entity/Map.java b/src/main/java/com/gis3c/ol/entity/Map.java index c773cf5..e79d9cb 100644 --- a/src/main/java/com/gis3c/ol/entity/Map.java +++ b/src/main/java/com/gis3c/ol/entity/Map.java @@ -6,12 +6,13 @@ package com.gis3c.ol.entity; public class Map { private String mapId; private String mapName; - private String[] controls; - private Integer pixelRatio; - private String[] interactions; private String view; - private String[] layers; + private String[][] controls; + private Integer pixelRatio; + private String[][] interactions; + private String[][] layers; private Boolean logo = Boolean.FALSE; + private String[][] overlays; private String description; public String getMapId() { @@ -30,14 +31,6 @@ public class Map { this.mapName = mapName; } - public String[] getControls() { - return controls; - } - - public void setControls(String[] controls) { - this.controls = controls; - } - public Integer getPixelRatio() { return pixelRatio; } @@ -46,11 +39,11 @@ public class Map { this.pixelRatio = pixelRatio; } - public String[] getInteractions() { + public String[][] getInteractions() { return interactions; } - public void setInteractions(String[] interactions) { + public void setInteractions(String[][] interactions) { this.interactions = interactions; } @@ -62,11 +55,11 @@ public class Map { this.view = view; } - public String[] getLayers() { + public String[][] getLayers() { return layers; } - public void setLayers(String[] layers) { + public void setLayers(String[][] layers) { this.layers = layers; } @@ -85,4 +78,20 @@ public class Map { public void setDescription(String description) { this.description = description; } + + public String[][] getControls() { + return controls; + } + + public void setControls(String[][] controls) { + this.controls = controls; + } + + public String[][] getOverlays() { + return overlays; + } + + public void setOverlays(String[][] overlays) { + this.overlays = overlays; + } } diff --git a/src/main/java/com/gis3c/ol/service/LayerService.java b/src/main/java/com/gis3c/ol/service/LayerService.java new file mode 100644 index 0000000..182fb7b --- /dev/null +++ b/src/main/java/com/gis3c/ol/service/LayerService.java @@ -0,0 +1,22 @@ +package com.gis3c.ol.service; + + +import com.gis3c.ol.entity.layer.TileLayer; +import com.gis3c.ol.entity.layer.VectorLayer; + +/** + * Created by hukekuan on 2017/12/15. + */ +public interface LayerService { + public TileLayer findeTileLayerById(String layerId); + public TileLayer findeTileLayerByName(String layerName); + + public Integer insertTileLayer(TileLayer tileLayer); + + + + public VectorLayer findeVectorLayerById(String layerId); + public VectorLayer findeVectorLayerByName(String layerName); + + public Integer insertVectorLayer(VectorLayer vectorLayer); +} diff --git a/src/main/java/com/gis3c/ol/service/MapService.java b/src/main/java/com/gis3c/ol/service/MapService.java index 51a4807..eedb8d3 100644 --- a/src/main/java/com/gis3c/ol/service/MapService.java +++ b/src/main/java/com/gis3c/ol/service/MapService.java @@ -1,7 +1,8 @@ package com.gis3c.ol.service; +import com.gis3c.ol.entity.Map; + import java.util.List; -import java.util.Map; /** * Created by hukekuan on 2017/12/14. diff --git a/src/main/java/com/gis3c/ol/service/SourceService.java b/src/main/java/com/gis3c/ol/service/SourceService.java new file mode 100644 index 0000000..a2b92dc --- /dev/null +++ b/src/main/java/com/gis3c/ol/service/SourceService.java @@ -0,0 +1,37 @@ +package com.gis3c.ol.service; + +import com.gis3c.ol.entity.source.TileArcGISRest; +import com.gis3c.ol.entity.source.TileSuperMapRest; +import com.gis3c.ol.entity.source.Vector; +import com.gis3c.ol.entity.source.Wmts; + +/** + * Created by hukekuan on 2017/12/15. + */ +public interface SourceService { + public TileArcGISRest findTileArcGISRestById(String sourceId); + public TileArcGISRest findTileArcGISRestByName(String sourceName); + + public Integer insertTileArcGISRest(TileArcGISRest tileArcGISRest); + + + + public TileSuperMapRest findTileTileSuperMapRestById(String sourceId); + public TileSuperMapRest findTileTileSuperMapRestByName(String sourceName); + + public Integer insertTileSuperMapRest(TileSuperMapRest tileSuperMapRest); + + + + public Vector findVectorById(String sourceId); + public Vector findVectorByName(String sourceName); + + public Integer insertVector(Vector vector); + + + + public Wmts findWmtsById(String sourceId); + public Wmts findWmtsByName(String sourceName); + + public Integer insertWmts(Wmts wmts); +} diff --git a/src/main/java/com/gis3c/ol/service/ViewService.java b/src/main/java/com/gis3c/ol/service/ViewService.java index 5f83183..a7ad70c 100644 --- a/src/main/java/com/gis3c/ol/service/ViewService.java +++ b/src/main/java/com/gis3c/ol/service/ViewService.java @@ -1,7 +1,13 @@ package com.gis3c.ol.service; +import com.gis3c.ol.entity.View; + /** * Created by hukekuan on 2017/12/14. */ public interface ViewService { + public View findeViewById(String viewId); + public View findeViewByName(String viewName); + + public Integer insertView(View view); } diff --git a/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java b/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java new file mode 100644 index 0000000..ab62aec --- /dev/null +++ b/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java @@ -0,0 +1,45 @@ +package com.gis3c.ol.service.impl; + +import com.gis3c.ol.dao.LayerDao; +import com.gis3c.ol.entity.layer.TileLayer; +import com.gis3c.ol.entity.layer.VectorLayer; +import com.gis3c.ol.service.LayerService; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * Created by hukekuan on 2017/12/15. + */ +public class LayerServiceImpl implements LayerService { + @Autowired + private LayerDao layerDao; + + @Override + public TileLayer findeTileLayerById(String layerId) { + return layerDao.findeTileLayerById(layerId); + } + + @Override + public TileLayer findeTileLayerByName(String layerName) { + return layerDao.findeTileLayerByName(layerName); + } + + @Override + public Integer insertTileLayer(TileLayer tileLayer) { + return layerDao.insertTileLayer(tileLayer); + } + + @Override + public VectorLayer findeVectorLayerById(String layerId) { + return layerDao.findeVectorLayerById(layerId); + } + + @Override + public VectorLayer findeVectorLayerByName(String layerName) { + return layerDao.findeVectorLayerByName(layerName); + } + + @Override + public Integer insertVectorLayer(VectorLayer vectorLayer) { + return layerDao.insertVectorLayer(vectorLayer); + } +} diff --git a/src/main/java/com/gis3c/ol/service/impl/MapServiceImpl.java b/src/main/java/com/gis3c/ol/service/impl/MapServiceImpl.java index 104307c..01885be 100644 --- a/src/main/java/com/gis3c/ol/service/impl/MapServiceImpl.java +++ b/src/main/java/com/gis3c/ol/service/impl/MapServiceImpl.java @@ -1,12 +1,12 @@ package com.gis3c.ol.service.impl; import com.gis3c.ol.dao.MapDao; +import com.gis3c.ol.entity.Map; import com.gis3c.ol.service.MapService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; -import java.util.Map; /** * Created by hukekuan on 2017/12/14. diff --git a/src/main/java/com/gis3c/ol/service/impl/SourceServiceImpl.java b/src/main/java/com/gis3c/ol/service/impl/SourceServiceImpl.java new file mode 100644 index 0000000..ce59c8f --- /dev/null +++ b/src/main/java/com/gis3c/ol/service/impl/SourceServiceImpl.java @@ -0,0 +1,78 @@ +package com.gis3c.ol.service.impl; + +import com.gis3c.ol.dao.SourceDao; +import com.gis3c.ol.entity.source.TileArcGISRest; +import com.gis3c.ol.entity.source.TileSuperMapRest; +import com.gis3c.ol.entity.source.Vector; +import com.gis3c.ol.entity.source.Wmts; +import com.gis3c.ol.service.SourceService; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * Created by hukekuan on 2017/12/15. + */ +public class SourceServiceImpl implements SourceService { + @Autowired + private SourceDao sourceDao; + + @Override + public TileArcGISRest findTileArcGISRestById(String sourceId) { + return sourceDao.findTileArcGISRestById(sourceId); + } + + @Override + public TileArcGISRest findTileArcGISRestByName(String sourceName) { + return sourceDao.findTileArcGISRestByName(sourceName); + } + + @Override + public Integer insertTileArcGISRest(TileArcGISRest tileArcGISRest) { + return sourceDao.insertTileArcGISRest(tileArcGISRest); + } + + @Override + public TileSuperMapRest findTileTileSuperMapRestById(String sourceId) { + return sourceDao.findTileTileSuperMapRestById(sourceId); + } + + @Override + public TileSuperMapRest findTileTileSuperMapRestByName(String sourceName) { + return sourceDao.findTileTileSuperMapRestByName(sourceName); + } + + @Override + public Integer insertTileSuperMapRest(TileSuperMapRest tileSuperMapRest) { + return sourceDao.insertTileSuperMapRest(tileSuperMapRest); + } + + @Override + public Vector findVectorById(String sourceId) { + return sourceDao.findVectorById(sourceId); + } + + @Override + public Vector findVectorByName(String sourceName) { + return sourceDao.findVectorByName(sourceName); + } + + @Override + public Integer insertVector(Vector vector) { + return sourceDao.insertVector(vector); + } + + @Override + public Wmts findWmtsById(String sourceId) { + return sourceDao.findWmtsById(sourceId); + } + + @Override + public Wmts findWmtsByName(String sourceName) { + return sourceDao.findWmtsByName(sourceName); + } + + @Override + public Integer insertWmts(Wmts wmts) { + return sourceDao.insertWmts(wmts); + } + +} diff --git a/src/main/java/com/gis3c/ol/service/impl/ViewServiceImpl.java b/src/main/java/com/gis3c/ol/service/impl/ViewServiceImpl.java index f7e2d2d..49e245e 100644 --- a/src/main/java/com/gis3c/ol/service/impl/ViewServiceImpl.java +++ b/src/main/java/com/gis3c/ol/service/impl/ViewServiceImpl.java @@ -1,9 +1,29 @@ package com.gis3c.ol.service.impl; +import com.gis3c.ol.dao.ViewDao; +import com.gis3c.ol.entity.View; import com.gis3c.ol.service.ViewService; +import org.springframework.beans.factory.annotation.Autowired; /** * Created by hukekuan on 2017/12/14. */ public class ViewServiceImpl implements ViewService { + @Autowired + private ViewDao viewDao; + + @Override + public View findeViewById(String viewId) { + return viewDao.findeViewById(viewId); + } + + @Override + public View findeViewByName(String viewName) { + return viewDao.findeViewByName(viewName); + } + + @Override + public Integer insertView(View view) { + return viewDao.insertView(view); + } } diff --git a/src/main/java/com/gis3c/spatial/postgis/ArrayTypeHandler.java b/src/main/java/com/gis3c/spatial/postgis/ArrayTypeHandler.java new file mode 100644 index 0000000..ed8819c --- /dev/null +++ b/src/main/java/com/gis3c/spatial/postgis/ArrayTypeHandler.java @@ -0,0 +1,65 @@ +package com.gis3c.spatial.postgis; + +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.TypeException; + +import java.sql.*; + +/** + * Created by hukekuan on 2017/12/15. + */ +public class ArrayTypeHandler extends BaseTypeHandler { + private static final String TYPE_NAME_VARCHAR = "varchar"; + private static final String TYPE_NAME_BOOLEAN = "boolean"; + private static final String TYPE_NAME_INTEGER = "integer"; + private static final String TYPE_NAME_NUMERIC = "numeric"; + + + @Override + public void setNonNullParameter(PreparedStatement ps, int i, Object[] parameter, JdbcType jdbcType) throws SQLException { + String typeName = null; + if (parameter instanceof Integer[]) { + typeName = TYPE_NAME_INTEGER; + } else if (parameter instanceof String[]) { + typeName = TYPE_NAME_VARCHAR; + } else if (parameter instanceof Boolean[]) { + typeName = TYPE_NAME_BOOLEAN; + } else if (parameter instanceof Double[]) { + typeName = TYPE_NAME_NUMERIC; + } + + if (typeName == null) { + throw new TypeException("ArrayTypeHandler parameter typeName error, your type is " + parameter.getClass().getName()); + } + + Array array = ps.getConnection().createArrayOf(typeName, parameter); + ps.setArray(i, array); + } + + @Override + public Object[] getNullableResult(ResultSet rs, String columnName) throws SQLException { + return getArray(rs.getArray(columnName)); + } + + @Override + public Object[] getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + return getArray(rs.getArray(columnIndex)); + } + + @Override + public Object[] getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + return getArray(cs.getArray(columnIndex)); + } + + private Object[] getArray(Array array) { + if (array == null) { + return null; + } + try { + return (Object[]) array.getArray(); + } catch (Exception e) { + } + return null; + } +} diff --git a/src/main/java/com/gis3c/spatial/postgis/JsonTypeHandler.java b/src/main/java/com/gis3c/spatial/postgis/JsonTypeHandler.java new file mode 100644 index 0000000..44e0c49 --- /dev/null +++ b/src/main/java/com/gis3c/spatial/postgis/JsonTypeHandler.java @@ -0,0 +1,34 @@ +package com.gis3c.spatial.postgis; + +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * Created by hukekuan on 2017/12/15. + */ +public class JsonTypeHandler extends BaseTypeHandler { + @Override + public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException { + + } + + @Override + public Object getNullableResult(ResultSet rs, String columnName) throws SQLException { + return null; + } + + @Override + public Object getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + return null; + } + + @Override + public Object getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + return null; + } +} diff --git a/src/main/resources/init.sql b/src/main/resources/init.sql index 61fb7b2..13779cf 100644 --- a/src/main/resources/init.sql +++ b/src/main/resources/init.sql @@ -3,12 +3,12 @@ create table c3gis_ol_map( mapid varchar(50) not null PRIMARY KEY, mapname varchar(50) not null, view varchar(50) not null, - controls varchar(50) ARRAY, + controls varchar(50) [2][], pixelRatio integer, - interactions varchar(50) ARRAY, - layers varchar(50) ARRAY, + interactions varchar(50) [2][], + layers varchar(50) [2][], logo boolean, - overlays varchar(50) ARRAY, + overlays varchar(50) [2][], description varchar(50) ); diff --git a/src/main/resources/mappings/ol/MapDao.xml b/src/main/resources/mappings/ol/MapDao.xml index 403f501..ca9fd58 100644 --- a/src/main/resources/mappings/ol/MapDao.xml +++ b/src/main/resources/mappings/ol/MapDao.xml @@ -1,14 +1,30 @@ - + - + + + + + + + + + - mapid, - mapname + mapid + , mapname + , view + , controls + , pixelRatio + , interactions + , layers + , logo + , overlays + , description