/gtran-kml

convert geojson to kml file and backwards

Primary LanguageJavaScriptMIT LicenseMIT

gtran-kml

npm Build Status

Convert geojson to kml file and backwards.

This is a sub-project of gtran.

Installation

npm install gtran-kml

Functions

  • fromGeoJson(geojson, fileName, options)

    Save the geojson into the given file name.

    Since 1.1.11, it also supports Mapbox's simplestyle-spec.

    options:

    • documentName - Specify the name of the full document. The Default value is 'My KML'.

    • documentDescription - Specify the description of the full document. The Default value is 'Converted from GeoJson by gtran-kml'.

    • name - Specify the feature name using a geojson property. The Default value is 'name'.

    • featureStyleKey - Specify the xml style key in the xml feature properties.

    • symbol - Specify feature Symbol. It accepts an symbol object or a function to return the symbol per feature.

      Supported styles:

      • Point

        • color - HTML color code or array of RGB values, indicating feature color.

        • alpha - An integer value (0-255), indicating the color opacity

        • scale - Feature size, a float number.

        • icon - Link of feature icons. Some generally used icons can be found here.

      • LineString

        • color - HTML color code or array of RGB values, indicating feature color.

        • alpha - An integer value (0-255), indicating the color opacity

        • width - A float value, indicating line width.

      • Polygon

        • color - HTML color code or array of RGB values, indicating feature color.

        • alpha - An integer value (0-255), indicating the color opacity

        • fill - A boolean value, indicating whether to fill the polygon.

        • outline - A boolean value, indicating whether to outline the polygon.

    See the detail explaination at KML format reference.

    • pretty - Pretty print the output KML. The default value is false.
  • toGeoJson(fileName)

    Read the given file into geojson.

Use Example

const kml = require('gtran-kml');

// Specify promise library if necessary
kml.setPromiseLib(require('bluebird'));

// Read KML file
kml
  .toGeoJson('source.kml')
  .then((object) {
    const geojson = object;
  });

const geojson = {
  'type': 'FeatureCollection',
  'features': [{
    'type': 'Feature',
    'geometry': {"type":"Point","coordinates":[-70.2532459795475,43.6399758607149]},
    'properties': {
      'id': 1,
      'Name': 'test'
    }
  }]
};

// Define a symbol for all features in the layer
const pointSymbol = {
  color: '#2dcd86',
  alpha: 255,
  scale: 1,
  icon: 'http://maps.google.com/mapfiles/kml/shapes/square.png'
};

// Save geojson into KML file
kml.fromGeoJson(geojson, 'point.kml', {
  symbol: pointSymbol,
  name: 'Name'
})

// Define a symbol for each individual feature
kml.fromGeoJson(geojson, 'point.kml', {
  symbol: (feature) => {
    return {
      color: '#2dcd86',
      alpha: 255 * Math.random(),
      scale: 1,
      icon: 'http://maps.google.com/mapfiles/kml/shapes/square.png'
    }
  },
  name: 'Name'
})