org.jetbrains.letsPlot.toolkit.geotools.GeometryEx.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lets-plot-kotlin-geotools Show documentation
Show all versions of lets-plot-kotlin-geotools Show documentation
Lets-Plot Kotlin GeoTools Bridge.
Requires GeoTools artifacts:
- org.geotools:gt-main:[30,)
- org.geotools:gt-geojson:[30,)
/*
* Copyright (c) 2022. JetBrains s.r.o.
* Use of this source code is governed by the MIT license that can be found in the LICENSE file.
*/
package org.jetbrains.letsPlot.toolkit.geotools
import org.geotools.geojson.geom.GeometryJSON
import org.jetbrains.letsPlot.spatial.SpatialDataset
import org.locationtech.jts.geom.Geometry
/**
* Transforms Geometry to SpatialDataset with feature geometries encoded in GEOJSON format.
*
* @param decimals the number of decimals to use when encoding floating point numbers.
*/
fun Geometry.toSpatialDataset(decimals: Int = 10): SpatialDataset {
require(this.isValid) { "Invalid geometry: ${this.geometryType}" }
val geoJson = GeometryJSON(decimals).toString(this)
return SpatialDataset.withGEOJSON(emptyMap(), listOf(geoJson))
}