{"id":18890411,"url":"https://github.com/workingdog/scalakml","last_synced_at":"2025-04-14T23:31:10.817Z","repository":{"id":6616419,"uuid":"7859905","full_name":"workingDog/scalakml","owner":"workingDog","description":"a kml 2.2 library in scala","archived":false,"fork":false,"pushed_at":"2020-03-19T23:02:24.000Z","size":19189,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T11:43:18.001Z","etag":null,"topics":["kml","scala"],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/workingDog.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-01-27T23:44:15.000Z","updated_at":"2021-06-10T19:31:45.000Z","dependencies_parsed_at":"2022-09-16T07:51:37.651Z","dependency_job_id":null,"html_url":"https://github.com/workingDog/scalakml","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2Fscalakml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2Fscalakml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2Fscalakml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workingDog%2Fscalakml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/workingDog","download_url":"https://codeload.github.com/workingDog/scalakml/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248978587,"owners_count":21192817,"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":["kml","scala"],"created_at":"2024-11-08T07:55:27.919Z","updated_at":"2025-04-14T23:31:10.441Z","avatar_url":"https://github.com/workingDog.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scalakml is a KML Version 2.2 library written in scala.\n\n\n## KML an Open Geospatial Consortium (OGC) standard\n\nFrom reference 1, \"KML is an XML language focused on geographic visualization, including annotation of maps and images. Geographic visualization includes not only the presentation of graphical data on the globe, but also the control of the user's navigation in the sense of where to go and where to look.\"\n\nSpecifically KML is used in Google Earth to display various geographic elements, such as; images, \nplace marks, polygon shapes, 3D models, etc...\n\nThe **scalakml** library provides the KML elements as scala classes. \n\n## References\n \n1) [OGC 07-147r2 Version: 2.2.0, Category: OGC Standard, Editor: Tim Wilson](http://www.opengeospatial.org/standards/kml)\n\n2) [Google developers KML Reference](https://developers.google.com/kml/documentation/kmlreference)\n\n## Packages\n\nThe **scalakml** library consists of 4 major packages:\n\n1) com.scalakml.kml, the set of KML classes\n \n2) com.scalakml.gx, the Google's GX extensions classes derived from the official kml22gx.xsd\n \n3) com.scalakml.io, the reading and writing of kml elements\n \n4) com.scalakml.atom, the Atom classes\n\n## Installation\n\nAdd the following dependency to build.sbt:\n\n    libraryDependencies += \"com.github.workingDog\" %% \"scalakml\" % \"1.5\"\n\nTo compile and generate a jar file from the source:\n\n    sbt package\n\nThe jar file (scalakml_2.13-1.6-SNAPSHOT.jar) will be in the \"./target/scala-2.13\" directory.\n\n## Dependencies\n\n**scalakml** depends on the [Scala XML library](https://github.com/scala/scala-xml).\n\nRemoved the dependency on [scalaxal](https://github.com/workingDog/scalaxal), that has the extensible Address Language (xAL) classes representing the AddressDetails. This means AddressDetails is now just a String. \n\nSee also build.sbt. Using Scala 2.13.\n\n## Documentation\n\nSee reference 1 and 2 for the full documentation of kml.\nMost of the kml documentation are included the code documentation.\n\nMost kml elements described in the references have been implemented with the same or similar class name.\nThere is one exception, and that is the FeaturePart.\nThis class represents the abstract feature part described in the references.\nHere it is a concrete class called FeaturePart and holds the elements of the abstract feature.\nSuch that, for example, Placemark has a featurePart element, so to get the name of the placemark\nyou could write:\n- placemark.featurePart.name\n\nThe following (Feature) classes use FeaturePart:\nDocument, Folder, Placemark, NetworkLink, PhotoOverlay, ScreenOverlay, GroundOverlay and Tour.\nA FeaturePart can be created and is typically added as an element to: Document, Folder, Placemark, etc...\n\nExample [kml files] (http://code.google.com/p/kml-samples/) are included in the kml-files directory.\nThe file KML_Samples.kml contains CDATA elements. The same file without\nthe CDATA elements (example-no-cdata.kml) is also included.\n\nTo generate the scaladoc, type: \n\n    sbt doc\n\n## Usage\n\n    object WriteExample4 {\n      def main(args: Array[String])  {\n        // create a scala Kml object with a Placemark that contains a Point\n        val kml = new Kml(new Placemark(\"Sydney\", new Point(RelativeToGround, 151.21037, -33.8526, 12345.0)))\n        // write the kml object to System.out \n        new KmlPrintWriter().write(kml, new PrettyPrinter(80, 3))\n      }\n    }\n\nSee [scalakml-example](https://github.com/workingDog/scalakml-example) for basic examples of using **scalakml** library.\n\n## Status\n\nStable.\n\nThe gx: extension has what is in the official kml22gx.xsd schema,\nit does not include some of the gx: elements from Google listed in reference 2.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkingdog%2Fscalakml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkingdog%2Fscalakml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkingdog%2Fscalakml/lists"}