Learn R Programming

maptools (version 1.1-6)

kmlLine: Create and write a KML file on the basis of a given Lines object

Description

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.

Usage

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

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.

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)

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

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>.

See Also

kmlOverlay, kmlPolygon, Line

Examples

Run this code
xx <- readShapeSpatial(system.file("shapes/fylk-val-ll.shp",
      package="maptools")[1], proj4string=CRS("+proj=longlat +ellps=WGS84"))
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
cat(kmlLine(kmlname="R Test", kmldescription="Hello")$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)

Run the code above in your browser using DataLab