{"id":21819992,"url":"https://github.com/ngageoint/geopackage-kml-js","last_synced_at":"2025-03-21T10:45:52.941Z","repository":{"id":57683205,"uuid":"483747980","full_name":"ngageoint/geopackage-kml-js","owner":"ngageoint","description":"GeoPackage KML Converter","archived":false,"fork":false,"pushed_at":"2022-10-28T18:25:50.000Z","size":12578,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-04-28T22:22:44.868Z","etag":null,"topics":["converter","geopackage","kml"],"latest_commit_sha":null,"homepage":"http://ngageoint.github.io/geopackage-kml-js/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ngageoint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-20T17:20:03.000Z","updated_at":"2023-05-05T18:29:24.000Z","dependencies_parsed_at":"2022-09-19T00:32:03.166Z","dependency_job_id":null,"html_url":"https://github.com/ngageoint/geopackage-kml-js","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngageoint%2Fgeopackage-kml-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngageoint%2Fgeopackage-kml-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngageoint%2Fgeopackage-kml-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngageoint%2Fgeopackage-kml-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngageoint","download_url":"https://codeload.github.com/ngageoint/geopackage-kml-js/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244782360,"owners_count":20509805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["converter","geopackage","kml"],"created_at":"2024-11-27T16:27:50.755Z","updated_at":"2025-03-21T10:45:52.910Z","avatar_url":"https://github.com/ngageoint.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## KML and KMZ files to Geopackage files\n\nUsing a Xml streaming library to read the kml file and convert the hierarchal data into relational data that GeoPackages can store.\n\n### Installation ###\n\n[![NPM](https://img.shields.io/npm/v/@ngageoint/geopackage-kml-js.svg)](https://www.npmjs.com/package/@ngageoint/geopackage-kml-js)\n\n```sh\n$ npm install @ngageoint/geopackage-kml-js\n```\n\n### Usage\n\n```sh\n./cli /path/to/file/to/convert.kml /path/to/file/to/create.gpkg\n```\n\n### Javascript\n```javascript\nconst { KMLToGeoPackage } = require('@ngageoint/geopackage-kml-js');\nconst kmlFile = './test.kml';\nconst geoPackageFile = './test.gpkg';\nconst tableName = 'features';\n\n// Convert CSV to GeoPackage feature table\nconst converter = new KMLToGeoPackage();\nconverter.convert({ kmlOrKmzPath: kmlFile, geoPackage: geoPackageFile, tableName: tableName }).then(() =\u003e {\n  console.log('File conversion complete');\n  console.log('Converted %s to %s', kmlFile, geoPackageFile);\n});\n```\n---\n### Currently Supports\n- Placemark tags with and without coordinates\n  Stored as features in a feature table with any additional tags stored in a column of the table.\n    - Multigeometry tags\n    - Polygon tags\n        - inner and outer boundaries.\n    - LineString tags\n    - Point tags\n- Most of Icon, Polygon and Line Style tags\n    - color converted to rgba\n- GroundOverlay tags\n    - Image converision from EPSG: 4326 to EPSG: 3857 Web-mercator\n        - Image manipulation preformed by [Jimp](https://github.com/oliver-moran/jimp).\n        - Coordinate converision from [Proj4](https://github.com/proj4js/proj4js).\n    - Creates a tile set at appropriate from the zoomlevels.\n        - Starting at the zoomlevel where the GroundOverlay is covered by one tile.\n        - Ending where the image resolution matches that of the tile.\n        - This is done in steps of 2.\n- Default Stylings of Google Earth.\n- gx:altitudeMode\n- ExtendedData\n---\n### Does not support but plan on supporting\n- [ ] Network Links\n- [ ] ScreenOverlays\n- [ ] Folder and Document structure\n- [ ] PhotoOverlays\n- [ ] StyleMaps\n    - currently only captures normal style\n- [ ] Region\n- [x] gx:x, gx:y, gx:h and gx:w\n\n---\n### Does not support and no plans to support currently\n- lookAt tags\n    - Current it is stored as a JSON string in a column of the feature table\n- Most of gx extensions\n- Models tags\n- Camera\n- colorMode\n- gx:LatLonQuad\n- Google Sky\n- ListStyle\n- NetworkLinkControl\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngageoint%2Fgeopackage-kml-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngageoint%2Fgeopackage-kml-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngageoint%2Fgeopackage-kml-js/lists"}