WorldWindAndroid icon indicating copy to clipboard operation
WorldWindAndroid copied to clipboard

Fix GeoPackage support implementation.

Open EMaksymenko opened this issue 5 years ago • 0 comments

Description of the Change

Basic GeoPackage implementation does not support level sets started not in -90, -180 coordinates, but according standard any external system exports GeoPackage files with the tile origin equals south west corner of visible tile set.

That's why GeoPackage requires following improvements:

  • Add support of local tile origin based on tile matrix set extent instead of full sphere origin.
  • Add surface image name based on content identifier.
  • Change level set sector initialization based on tile matrix set extent instead of content extent.
  • Change first level tile delta and number of levels calculation based on tile matrix zoom levels.
  • Fix row calculation in tile factory.

General API requires following improvements:

  • Add tile origin attribute to level set.
  • Enhance tile row and column calculation routines with tile origin parameter.
  • Fix level width and height calculation in case of non-full sphere level set sector used.

This PR is based on Mercator PR https://github.com/NASAWorldWind/WorldWindAndroid/pull/242 due to this fix also related to MercatorTile calculations.

Why Should This Be In Core?

Support of GeoPackage files exported from ArcGis or GlobalMapper is not possible without this improvements. Now GeoPackage works only with WorldWind test example, which was made with violation of GeoPackage specification requirements. Other words GeoPackage implementation is wrong now.

Benefits

Adding correct support of EPSG 4326 GeoPackage offline cache.

Potential Drawbacks

None. Backward compatible with current incorrect GeoPackage example.

EMaksymenko avatar Dec 07 '20 17:12 EMaksymenko