Skip to content

Commit 4f11e95

Browse files
authored
Merge pull request #36 from ngageoint/develop
2.0.2 release
2 parents 00d1132 + e3f6d74 commit 4f11e95

File tree

17 files changed

+1062
-25
lines changed

17 files changed

+1062
-25
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,13 @@ Adheres to [Semantic Versioning](http://semver.org/).
44

55
---
66

7-
## 2.0.2 (TBD)
7+
## [2.0.2](https://github.com/ngageoint/geopackage-core-java/releases/tag/2.0.2) (03-20-2018)
88

9-
* TBD
9+
* Tile Scaling extension for scaling missing tiles from nearby zoom levels
10+
* Projection Transform "is same projection" method
11+
* Tile DAO zoom level improvements and approximate zoom level determinations
12+
* IO Utils close quietly method and stream closing
13+
* RTree Trigger Update 3 spec fix
1014

1115
## [2.0.1](https://github.com/ngageoint/geopackage-core-java/releases/tag/2.0.1) (02-13-2018)
1216

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ The [GeoPackage Java](https://github.com/ngageoint/geopackage-java) library is a
3737

3838
### Installation ###
3939

40-
Pull from the [Maven Central Repository](http://search.maven.org/#artifactdetails|mil.nga.geopackage|geopackage-core|2.0.1|jar) (JAR, POM, Source, Javadoc)
40+
Pull from the [Maven Central Repository](http://search.maven.org/#artifactdetails|mil.nga.geopackage|geopackage-core|2.0.2|jar) (JAR, POM, Source, Javadoc)
4141

4242
<dependency>
4343
<groupId>mil.nga.geopackage</groupId>
4444
<artifactId>geopackage-core</artifactId>
45-
<version>2.0.1</version>
45+
<version>2.0.2</version>
4646
</dependency>
4747

4848
### Build ###

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ <h2 class="project-tagline">by the National Geospatial-Intelligence Agency</h2>
1818
<a href="http://ngageoint.github.io/geopackage-core-java/docs/api/" class="btn">API</a>
1919
<a href="https://github.com/ngageoint/geopackage-core-java/zipball/master" class="btn">.zip</a>
2020
<a href="https://github.com/ngageoint/geopackage-core-java/tarball/master" class="btn">.tar.gz</a>
21-
<a href="http://search.maven.org/#artifactdetails|mil.nga.geopackage|geopackage-core|2.0.1|jar" class="btn">The Central Repository</a>
21+
<a href="http://search.maven.org/#artifactdetails|mil.nga.geopackage|geopackage-core|2.0.2|jar" class="btn">The Central Repository</a>
2222
</section>
2323

2424
<section class="main-content">

src/main/java/mil/nga/geopackage/GeoPackageCore.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import mil.nga.geopackage.extension.index.GeometryIndexDao;
1818
import mil.nga.geopackage.extension.index.TableIndexDao;
1919
import mil.nga.geopackage.extension.link.FeatureTileLinkDao;
20+
import mil.nga.geopackage.extension.scale.TileScalingDao;
2021
import mil.nga.geopackage.features.columns.GeometryColumns;
2122
import mil.nga.geopackage.features.columns.GeometryColumnsDao;
2223
import mil.nga.geopackage.features.columns.GeometryColumnsSfSqlDao;
@@ -743,4 +744,20 @@ public AttributesTable createAttributesTable(String tableName,
743744
public AttributesTable createAttributesTable(String tableName,
744745
List<AttributesColumn> columns);
745746

747+
/**
748+
* Get a Tile Scaling DAO
749+
*
750+
* @return tile scaling dao
751+
* @since 2.0.2
752+
*/
753+
public TileScalingDao getTileScalingDao();
754+
755+
/**
756+
* Create the Tile Scaling Table if it does not exist
757+
*
758+
* @return true if created
759+
* @since 2.0.2
760+
*/
761+
public boolean createTileScalingTable();
762+
746763
}

src/main/java/mil/nga/geopackage/db/GeoPackageTableCreator.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,17 @@ public int createFeatureTileLink() {
192192
PropertyConstants.SQL, "feature_tile_link"));
193193
}
194194

195+
/**
196+
* Create Tile Scaling table
197+
*
198+
* @return executed statements
199+
* @since 2.0.2
200+
*/
201+
public int createTileScaling() {
202+
return createTable(GeoPackageProperties.getProperty(
203+
PropertyConstants.SQL, "tile_scaling"));
204+
}
205+
195206
/**
196207
* Create a table using the table script
197208
*

src/main/java/mil/nga/geopackage/extension/NGAExtensions.java

Lines changed: 84 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import mil.nga.geopackage.extension.link.FeatureTileLink;
1313
import mil.nga.geopackage.extension.link.FeatureTileLinkDao;
1414
import mil.nga.geopackage.extension.link.FeatureTileTableCoreLinker;
15+
import mil.nga.geopackage.extension.scale.TileScaling;
16+
import mil.nga.geopackage.extension.scale.TileScalingDao;
17+
import mil.nga.geopackage.extension.scale.TileTableScaling;
1518

1619
import com.j256.ormlite.support.ConnectionSource;
1720
import com.j256.ormlite.table.TableUtils;
@@ -29,13 +32,16 @@ public class NGAExtensions {
2932
* Delete all NGA table extensions for the table within the GeoPackage
3033
*
3134
* @param geoPackage
35+
* GeoPackage
3236
* @param table
37+
* table name
3338
*/
3439
public static void deleteTableExtensions(GeoPackageCore geoPackage,
3540
String table) {
3641

3742
deleteGeometryIndex(geoPackage, table);
3843
deleteFeatureTileLink(geoPackage, table);
44+
deleteTileScaling(geoPackage, table);
3945

4046
// Delete future extensions for the table here
4147
}
@@ -45,6 +51,7 @@ public static void deleteTableExtensions(GeoPackageCore geoPackage,
4551
* GeoPackage
4652
*
4753
* @param geoPackage
54+
* GeoPackage
4855
*/
4956
public static void deleteExtensions(GeoPackageCore geoPackage) {
5057
deleteExtensions(geoPackage, false);
@@ -55,6 +62,7 @@ public static void deleteExtensions(GeoPackageCore geoPackage) {
5562
* GeoPackage
5663
*
5764
* @param geoPackage
65+
* GeoPackage
5866
* @param ignoreErrors
5967
* true to ignore errors when deleting tables
6068
*/
@@ -63,6 +71,7 @@ public static void deleteExtensions(GeoPackageCore geoPackage,
6371

6472
deleteGeometryIndexExtension(geoPackage, ignoreErrors);
6573
deleteFeatureTileLinkExtension(geoPackage, ignoreErrors);
74+
deleteTileScalingExtension(geoPackage, ignoreErrors);
6675

6776
// Delete future extension tables here
6877
}
@@ -71,7 +80,9 @@ public static void deleteExtensions(GeoPackageCore geoPackage,
7180
* Delete the Geometry Index extension for the table
7281
*
7382
* @param geoPackage
83+
* GeoPackage
7484
* @param table
85+
* table name
7586
* @since 1.1.5
7687
*/
7788
public static void deleteGeometryIndex(GeoPackageCore geoPackage,
@@ -100,7 +111,9 @@ public static void deleteGeometryIndex(GeoPackageCore geoPackage,
100111
* custom tables
101112
*
102113
* @param geoPackage
114+
* GeoPackage
103115
* @param ignoreErrors
116+
* true to ignore errors
104117
* @since 1.1.5
105118
*/
106119
public static void deleteGeometryIndexExtension(GeoPackageCore geoPackage,
@@ -122,8 +135,8 @@ public static void deleteGeometryIndexExtension(GeoPackageCore geoPackage,
122135
ignoreErrors);
123136
}
124137
if (extensionsDao.isTableExists()) {
125-
extensionsDao.deleteByExtension(
126-
FeatureTableCoreIndex.EXTENSION_NAME);
138+
extensionsDao
139+
.deleteByExtension(FeatureTableCoreIndex.EXTENSION_NAME);
127140
}
128141
} catch (SQLException e) {
129142
throw new GeoPackageException(
@@ -137,7 +150,9 @@ public static void deleteGeometryIndexExtension(GeoPackageCore geoPackage,
137150
* Delete the Feature Tile Link extensions for the table
138151
*
139152
* @param geoPackage
153+
* GeoPackage
140154
* @param table
155+
* table name
141156
* @since 1.1.5
142157
*/
143158
public static void deleteFeatureTileLink(GeoPackageCore geoPackage,
@@ -161,7 +176,9 @@ public static void deleteFeatureTileLink(GeoPackageCore geoPackage,
161176
* and custom tables
162177
*
163178
* @param geoPackage
179+
* GeoPackage
164180
* @param ignoreErrors
181+
* true to ignore errors
165182
* @since 1.1.5
166183
*/
167184
public static void deleteFeatureTileLinkExtension(
@@ -178,8 +195,8 @@ public static void deleteFeatureTileLinkExtension(
178195
ignoreErrors);
179196
}
180197
if (extensionsDao.isTableExists()) {
181-
extensionsDao.deleteByExtension(
182-
FeatureTileTableCoreLinker.EXTENSION_NAME);
198+
extensionsDao
199+
.deleteByExtension(FeatureTileTableCoreLinker.EXTENSION_NAME);
183200
}
184201
} catch (SQLException e) {
185202
throw new GeoPackageException(
@@ -189,4 +206,67 @@ public static void deleteFeatureTileLinkExtension(
189206

190207
}
191208

209+
/**
210+
* Delete the Tile Scaling extensions for the table
211+
*
212+
* @param geoPackage
213+
* GeoPackage
214+
* @param table
215+
* table name
216+
* @since 2.0.2
217+
*/
218+
public static void deleteTileScaling(GeoPackageCore geoPackage, String table) {
219+
220+
TileScalingDao tileScalingDao = geoPackage.getTileScalingDao();
221+
ExtensionsDao extensionsDao = geoPackage.getExtensionsDao();
222+
223+
try {
224+
if (tileScalingDao.isTableExists()) {
225+
tileScalingDao.deleteById(table);
226+
}
227+
if (extensionsDao.isTableExists()) {
228+
extensionsDao.deleteByExtension(
229+
TileTableScaling.EXTENSION_NAME, table);
230+
}
231+
} catch (SQLException e) {
232+
throw new GeoPackageException(
233+
"Failed to delete Tile Scaling. GeoPackage: "
234+
+ geoPackage.getName() + ", Table: " + table, e);
235+
}
236+
}
237+
238+
/**
239+
* Delete the Tile Scaling extension including the extension entries and
240+
* custom tables
241+
*
242+
* @param geoPackage
243+
* GeoPackage
244+
* @param ignoreErrors
245+
* true to ignore errors
246+
* @since 2.0.2
247+
*/
248+
public static void deleteTileScalingExtension(GeoPackageCore geoPackage,
249+
boolean ignoreErrors) {
250+
251+
TileScalingDao tileScalingDao = geoPackage.getTileScalingDao();
252+
ExtensionsDao extensionsDao = geoPackage.getExtensionsDao();
253+
ConnectionSource connectionSource = geoPackage.getDatabase()
254+
.getConnectionSource();
255+
try {
256+
if (tileScalingDao.isTableExists()) {
257+
TableUtils.dropTable(connectionSource, TileScaling.class,
258+
ignoreErrors);
259+
}
260+
if (extensionsDao.isTableExists()) {
261+
extensionsDao
262+
.deleteByExtension(TileTableScaling.EXTENSION_NAME);
263+
}
264+
} catch (SQLException e) {
265+
throw new GeoPackageException(
266+
"Failed to delete Tile Scaling extension and table. GeoPackage: "
267+
+ geoPackage.getName(), e);
268+
}
269+
270+
}
271+
192272
}

0 commit comments

Comments
 (0)