KML and KMZ files to Geopackage files
Using a Xml streaming library to read the kml file and convert the hierarchal data into relational data that GeoPackages can store.
Installation
$ npm install @ngageoint/geopackage-kml-js
Usage
./cli /path/to/file/to/convert.kml /path/to/file/to/create.gpkg
Javascript
const { KMLToGeoPackage } = require('@ngageoint/geopackage-kml-js');
const kmlFile = './test.kml';
const geoPackageFile = './test.gpkg';
const tableName = 'features';
const converter = new KMLToGeoPackage();
converter.convert({ kmlOrKmzPath: kmlFile, geoPackage: geoPackageFile, tableName: tableName }).then(() => {
console.log('File conversion complete');
console.log('Converted %s to %s', kmlFile, geoPackageFile);
});
Currently Supports
- Placemark tags with and without coordinates
Stored as features in a feature table with any additional tags stored in a column of the table.
- Multigeometry tags
- Polygon tags
- inner and outer boundaries.
- LineString tags
- Point tags
- Most of Icon, Polygon and Line Style tags
- GroundOverlay tags
- Image converision from EPSG: 4326 to EPSG: 3857 Web-mercator
- Image manipulation preformed by Jimp.
- Coordinate converision from Proj4.
- Creates a tile set at appropriate from the zoomlevels.
- Starting at the zoomlevel where the GroundOverlay is covered by one tile.
- Ending where the image resolution matches that of the tile.
- This is done in steps of 2.
- Default Stylings of Google Earth.
- gx:altitudeMode
- ExtendedData
Does not support but plan on supporting
Does not support and no plans to support currently
- lookAt tags
- Current it is stored as a JSON string in a column of the feature table
- Most of gx extensions
- Models tags
- Camera
- colorMode
- gx:LatLonQuad
- Google Sky
- ListStyle
- NetworkLinkControl