diff --git a/pom.xml b/pom.xml index cceb445..b009c3f 100644 --- a/pom.xml +++ b/pom.xml @@ -229,6 +229,11 @@ gt-swing ${geotools.version} + + no.ecc.vectortile + java-vector-tile + 1.2.1 + @@ -242,5 +247,9 @@ Open Source Geospatial Foundation Repository http://download.osgeo.org/webdav/geotools/ + + ECC + https://github.com/ElectronicChartCentre/ecc-mvn-repo/raw/master/releases + diff --git a/src/main/java/com/gis3c/Main.java b/src/main/java/com/gis3c/Main.java index d5948d1..c7b58ea 100644 --- a/src/main/java/com/gis3c/Main.java +++ b/src/main/java/com/gis3c/Main.java @@ -1,8 +1,11 @@ package com.gis3c; import com.gis3c.entity.C3Map; -import org.apache.commons.dbcp.datasources.SharedPoolDataSource; -import org.geotools.data.FeatureSource; +import com.gis3c.entity.GeoCity; +import com.gis3c.service.PostGISService; +import no.ecc.vectortile.VectorTileDecoder; +import no.ecc.vectortile.VectorTileEncoder; +import org.apache.commons.collections.map.HashedMap; import org.geotools.data.FileDataStore; import org.geotools.data.FileDataStoreFinder; import org.geotools.data.shapefile.ShapefileDataStore; @@ -14,17 +17,20 @@ import org.geotools.styling.SLD; import org.geotools.styling.SLDParser; import org.geotools.styling.Style; import org.geotools.styling.StyleFactory; -import org.geotools.swing.JMapFrame; import org.geotools.swing.data.JFileDataStoreChooser; -import org.geotools.swing.dialog.JExceptionReporter; -import org.geotools.swing.styling.JSimpleStyleDialog; -import org.opengis.feature.simple.SimpleFeatureType; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; -import java.io.File; -import java.io.IOException; +import java.io.*; import java.nio.charset.Charset; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class Main { + public static ApplicationContext ContextInit(){ + return new ClassPathXmlApplicationContext("classpath:spring-config.xml"); + } public static StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); // public static Style createStyle(File file, FeatureSource featureSource) { // File sld = toSLDFile(file); @@ -61,7 +67,7 @@ public class Main { // } // return null; // } - public static void main(String[] args) throws IOException { + public static void StyleTest()throws IOException{ File file = JFileDataStoreChooser.showOpenFile("shp",null); if(file == null){ return; @@ -83,7 +89,39 @@ public class Main { map.addLayer(layer); map.saveImage("D://mapimage//1.jpg",256); System.out.println("image has saved"); -// JMapFrame.showMap(map); + } + public static void copy(Reader in,Writer out) throws IOException { + int c = -1; + while((c = in.read()) != -1) { + out.write(c); + } + } + public static void VectorTilesTest()throws IOException{ + ApplicationContext context =ContextInit(); + PostGISService postGISService = (PostGISService) context.getBean("postGISService"); + List geoCities = postGISService.AllCities(); + + VectorTileEncoder encoder = new VectorTileEncoder(); + VectorTileDecoder d = new VectorTileDecoder(); + byte[] encoded; + geoCities.forEach(city -> { + Map cityAttr = new HashMap<>(); + cityAttr.put("name",city.getName()); + cityAttr.put("code",city.getCode()); + encoder.addFeature("city",cityAttr,city.getGeom()); + }); + encoded = encoder.encode(); + + Reader in = new FileReader("C:\\Users\\Administrator\\Desktop\\0.vector.pbf"); + StringWriter out = new StringWriter(); + copy(in,out); + +// System.out.println(out.toString()); + System.out.println(d.decode(out.toString().getBytes())); + } + public static void main(String[] args) throws IOException { + VectorTilesTest(); + //VectorTilesTest(); } diff --git a/src/main/java/com/gis3c/sqlmaps/PostGISMapper.xml b/src/main/java/com/gis3c/sqlmaps/PostGISMapper.xml index 0de1d2a..8ad7fb7 100644 --- a/src/main/java/com/gis3c/sqlmaps/PostGISMapper.xml +++ b/src/main/java/com/gis3c/sqlmaps/PostGISMapper.xml @@ -119,7 +119,7 @@