The function is used to create and write a KML file on the basis of a given Lines object (a list of Line objects) for the usage in Google Earth resp. Google Maps.

kmlLine(obj=NULL, kmlfile=NULL, 
    name="R Line", description="", col=NULL, visibility=1, lwd=1,
    kmlname="", kmldescription="")

Arguments

obj

a Lines or SpatialLinesDataFrame object

kmlfile

if not NULL the name as character string of the kml file to be written

name

the name of the KML line

description

the description of the KML line (HTML tags allowed)

col

the stroke color (see also Color Specification) of the KML line

visibility

if set to 1 or TRUE specifies that the KML line should be visible after loading

lwd

the stroke width for the KML line

kmlname

the name of the KML layer

kmldescription

the description of the KML layer (HTML tags allowed)

Details

The function is used to convert a given Lines object (a list of Line objects) or the first Lines object listed in a passed SpatialLinesDataFrame object into KML line(s). If kmlfile is not NULL the result will be written into that file. If kmlfile is NULL the generated KML lines will be returned (see also value).

For a passed Lines object the function generates a <Style> tag whereby its id attribute is set to the passed object's ID.

Note that the geometries should be in geographical coordinates with datum WGS84.

The resulting KML line will be embedded in <Placemark><MultiGeometry><LineString>.

Value

x is a list with the elements style and content containing the generated lines of the KML file as character vectors if kmlfile is NULL.

y is a list with the elements header and footer representing the KML file' header resp. footer if obj is NULL.

Color Specification

The following color specifications are allowed: 'red', 2, or as hex code '#RRGGBB' resp. '#RRGGBBAA' for passing the alpha value.

Author

Hans-J. Bibiko

Examples

xx <- readShapeSpatial(system.file("shapes/fylk-val-ll.shp",
      package="maptools")[1], proj4string=CRS("+proj=longlat +ellps=WGS84"))
#> Warning: shapelib support is provided by GDAL through the sf and terra packages among others
#> Warning: shapelib support is provided by GDAL through the sf and terra paackages among others
#> Warning: shapelib support is provided by GDAL through the sf and terra packages among others
out <- sapply(slot(xx, "lines"), function(x) { kmlLine(x,
    name=slot(x, "ID"), col="blue", lwd=1.5, 
    description=paste("river:", slot(x, "ID"))) })
tf <- tempfile()
kmlFile <- file(tf, "w")
tf
#> [1] "/tmp/RtmpY1blZ9/file8a34d62760c61"
cat(kmlLine(kmlname="R Test", kmldescription="<i>Hello</i>")$header, 
    file=kmlFile, sep="\n")
cat(unlist(out["style",]), file=kmlFile, sep="\n")
cat(unlist(out["content",]), file=kmlFile, sep="\n")
cat(kmlLine()$footer, file=kmlFile, sep="\n")
close(kmlFile)