https://github.com/engim-eu/gpx_kml
A Ruby Gem to convert GPX to KML, and KML to GPX
https://github.com/engim-eu/gpx_kml
ruby
Last synced: about 1 year ago
JSON representation
A Ruby Gem to convert GPX to KML, and KML to GPX
- Host: GitHub
- URL: https://github.com/engim-eu/gpx_kml
- Owner: Engim-eu
- License: other
- Created: 2021-10-04T08:10:12.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-01-20T14:20:58.000Z (over 4 years ago)
- Last Synced: 2025-04-13T13:16:55.287Z (about 1 year ago)
- Topics: ruby
- Language: Ruby
- Homepage:
- Size: 101 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# GpxKml
[](http://www.gnu.org/licenses/lgpl-3.0) [](#coverage)
This gem adds the capability to convert GPS Exchange Format (GPX) files to Keyhole Markup Language (KML) files and viceversa
## Before using
Please take note that this only converts essentials data for the gpx and kml files compatibility.
However the gem doesn't just include the converter, it also transforms gpx files and kml files (only their track/route/point parts) into a Gpx/Kml instance, which could be useful for new forks or other uses.
Just dig in deep, tests are present for everything you need.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'gpx_kml'
```
And then execute:
$ bundle install
Or install it yourself as:
$ gem install gpx_kml
## Usage
To use it just ```require 'gpx_kml'``` in the script you need the converter and perform the following actions:
Create an instance of the file you want to convert as follows:
- ```gpx = GPXKML::GpxKml.new_gpx('file_path')``` for a gpx file
- ```kml = GPXKML::GpxKml.new_kml('file_path')``` for a kml file
Now: you may want to check if the file you imported is actually a gpx or a kml.
You can do that by usign the ```gpx?``` & ```kml?``` functions on the instance you just created:
- ```GPXKML::GpxKml.gpx?(gpx)```
- ```GPXKML::GpxKml.kml?(kml)```
Note: this step is optional since the conversions method below do the same thing inside of themselves, but this method could turn out to be useful.
Now you can actually convert the instance to create the new file needed.
The function will return the entire path to the file just created!
- ```path_of_the_new_file = GPXKML::GpxKml.kml_to_gpx('gpx', 'destination_path')```
- ```path_of_the_new_file = GPXKML::GpxKml.gpx_to_kml('kml', 'destination_path')```
IMPORTANT : ```destination_path``` must be a directory
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/Engim-eu/gpx_kml. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/gpx_kml/blob/master/CODE_OF_CONDUCT.md).
## Coverage
Coverage can be checked running `rake spec`. This command will generate the coverage files needed.
## Code of Conduct
Everyone interacting in the GpxKml project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/gpx_kml/blob/master/CODE_OF_CONDUCT.md).