Using a Xml streaming library to read the kml file and convert the hierarchal data into relational data that GeoPackages can store.
$ npm install @ngageoint/geopackage-kml-js
./cli /path/to/file/to/convert.kml /path/to/file/to/create.gpkg
const { KMLToGeoPackage } = require('@ngageoint/geopackage-kml-js');
const kmlFile = './test.kml';
const geoPackageFile = './test.gpkg';
const tableName = 'features';
// Convert CSV to GeoPackage feature table
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);
});
- 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
- color converted to rgba
- GroundOverlay tags
- Image converision from EPSG: 4326 to EPSG: 3857 Web-mercator
- 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
- Network Links
- ScreenOverlays
- Folder and Document structure
- PhotoOverlays
- StyleMaps
- currently only captures normal style
- Region
- gx:x, gx:y, gx:h and gx:w
- 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