kml

package module
v1.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2021 License: MIT Imports: 6 Imported by: 37

README

go-kml

PkgGoDev

Package kml provides convenience methods for creating and writing KML documents.

Key Features

  • Simple API for building arbitrarily complex KML documents.
  • Support for all KML elements, including Google Earth gx: extensions.
  • Compatibilty with the standard library encoding/xml package.
  • Pretty (neatly indented) and compact (minimum size) output formats.
  • Support for shared Style and StyleMap elements.
  • Simple mapping between functions and KML elements.
  • Convenience functions for using standard KML icons.
  • Convenience functions for spherical geometry.

Example

func ExampleKML() {
    k := kml.KML(
        kml.Placemark(
            kml.Name("Simple placemark"),
            kml.Description("Attached to the ground. Intelligently places itself at the height of the underlying terrain."),
            kml.Point(
                kml.Coordinates(kml.Coordinate{Lon: -122.0822035425683, Lat: 37.42228990140251}),
            ),
        ),
    )
    if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
        log.Fatal(err)
    }
}

Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Simple placemark</name>
    <description>Attached to the ground. Intelligently places itself at the height of the underlying terrain.</description>
    <Point>
      <coordinates>-122.0822035425683,37.42228990140251</coordinates>
    </Point>
  </Placemark>
</kml>

There are more examples in the documentation corresponding to the examples in the KML tutorial.

Subpackages

  • icon Convenience functions for using standard KML icons.
  • sphere Convenience functions for spherical geometry.

License

MIT

Documentation

Overview

Package kml provides convenience methods for creating and writing KML documents.

See https://developers.google.com/kml/

Goals

  • Convenient API for creating both simple and complex KML documents.
  • 1:1 mapping between functions and KML elements.

Non-goals

  • Protection against generating invalid documents.
  • Concealment of KML complexity.
  • Fine-grained control over generated XML.

Index

Examples

Constants

View Source
const GxNamespace = "http://www.google.com/kml/ext/2.2"

GxNamespace is the default namespace for Google Earth extensions.

View Source
const Namespace = "http://www.opengis.net/kml/2.2"

Namespace is the default namespace.

Variables

This section is empty.

Functions

This section is empty.

Types

type AltitudeModeEnum added in v1.4.0

type AltitudeModeEnum string

An AltitudeModeEnum is an altitudeModeEnumType.

const (
	AltitudeModeClampToGround    AltitudeModeEnum = "clampToGround"
	AltitudeModeRelativeToGround AltitudeModeEnum = "relativeToGround"
	AltitudeModeAbsolute         AltitudeModeEnum = "absolute"
)

AltitudeModeEnums.

type ColorModeEnum added in v1.4.0

type ColorModeEnum string

A ColorModeEnum is a colorModeEnumType.

const (
	ColorModeNormal ColorModeEnum = "normal"
	ColorModeRandom ColorModeEnum = "random"
)

ColorModeEnums.

type CompoundElement

type CompoundElement struct {
	xml.StartElement
	// contains filtered or unexported fields
}

A CompoundElement is an Element with children.

func Alias added in v1.5.0

func Alias(children ...Element) *CompoundElement

Alias returns a new Alias element.

func BalloonStyle

func BalloonStyle(children ...Element) *CompoundElement

BalloonStyle returns a new BalloonStyle element.

func Camera

func Camera(children ...Element) *CompoundElement

Camera returns a new Camera element.

func Change

func Change(children ...Element) *CompoundElement

Change returns a new Change element.

func Create

func Create(children ...Element) *CompoundElement

Create returns a new Create element.

func Data

func Data(children ...Element) *CompoundElement

Data returns a new Data element.

func Delete

func Delete(children ...Element) *CompoundElement

Delete returns a new Delete element.

func Document

func Document(children ...Element) *CompoundElement

Document returns a new Document element.

func ExtendedData

func ExtendedData(children ...Element) *CompoundElement

ExtendedData returns a new ExtendedData element.

func Folder

func Folder(children ...Element) *CompoundElement

Folder returns a new Folder element.

func GroundOverlay

func GroundOverlay(children ...Element) *CompoundElement

GroundOverlay returns a new GroundOverlay element.

Example
k := kml.KML(
	kml.Folder(
		kml.Name("Ground Overlays"),
		kml.Description("Examples of ground overlays"),
		kml.GroundOverlay(
			kml.Name("Large-scale overlay on terrain"),
			kml.Description("Overlay shows Mount Etna erupting on July 13th, 2001."),
			kml.Icon(
				kml.Href("https://developers.google.com/kml/documentation/images/etna.jpg"),
			),
			kml.LatLonBox(
				kml.North(37.91904192681665),
				kml.South(37.46543388598137),
				kml.East(15.35832653742206),
				kml.West(14.60128369746704),
				kml.Rotation(-0.1556640799496235),
			),
		),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Folder>
    <name>Ground Overlays</name>
    <description>Examples of ground overlays</description>
    <GroundOverlay>
      <name>Large-scale overlay on terrain</name>
      <description>Overlay shows Mount Etna erupting on July 13th, 2001.</description>
      <Icon>
        <href>https://developers.google.com/kml/documentation/images/etna.jpg</href>
      </Icon>
      <LatLonBox>
        <north>37.91904192681665</north>
        <south>37.46543388598137</south>
        <east>15.35832653742206</east>
        <west>14.60128369746704</west>
        <rotation>-0.1556640799496235</rotation>
      </LatLonBox>
    </GroundOverlay>
  </Folder>
</kml>

func GxAnimatedUpdate

func GxAnimatedUpdate(children ...Element) *CompoundElement

GxAnimatedUpdate returns a new AnimatedUpdate element.

func GxFlyTo

func GxFlyTo(children ...Element) *CompoundElement

GxFlyTo returns a new FlyTo element.

func GxKML

func GxKML(child Element) *CompoundElement

GxKML returns a new kml element with Google Earth extensions.

func GxLatLonQuad

func GxLatLonQuad(children ...Element) *CompoundElement

GxLatLonQuad returns a new LatLonQuad element.

func GxMultiTrack

func GxMultiTrack(children ...Element) *CompoundElement

GxMultiTrack returns a new MultiTrack element.

func GxPlaylist

func GxPlaylist(children ...Element) *CompoundElement

GxPlaylist returns a new Playlist element.

func GxSimpleArrayData added in v1.5.0

func GxSimpleArrayData(children ...Element) *CompoundElement

GxSimpleArrayData returns a new SimpleArrayData element.

func GxSimpleArrayField

func GxSimpleArrayField(name, _type string) *CompoundElement

GxSimpleArrayField returns a new gx:SimpleArrayField element.

func GxSoundCue

func GxSoundCue(children ...Element) *CompoundElement

GxSoundCue returns a new SoundCue element.

func GxTimeSpan added in v1.5.0

func GxTimeSpan(children ...Element) *CompoundElement

GxTimeSpan returns a new TimeSpan element.

func GxTimeStamp added in v1.5.0

func GxTimeStamp(children ...Element) *CompoundElement

GxTimeStamp returns a new TimeStamp element.

func GxTour

func GxTour(children ...Element) *CompoundElement

GxTour returns a new Tour element.

func GxTourControl

func GxTourControl(children ...Element) *CompoundElement

GxTourControl returns a new TourControl element.

func GxTrack

func GxTrack(children ...Element) *CompoundElement

GxTrack returns a new Track element.

func GxViewerOptions added in v1.5.0

func GxViewerOptions(children ...Element) *CompoundElement

GxViewerOptions returns a new ViewerOptions element.

func GxWait

func GxWait(children ...Element) *CompoundElement

GxWait returns a new Wait element.

func Icon

func Icon(children ...Element) *CompoundElement

Icon returns a new Icon element.

func IconStyle

func IconStyle(children ...Element) *CompoundElement

IconStyle returns a new IconStyle element.

func ImagePyramid added in v1.5.0

func ImagePyramid(children ...Element) *CompoundElement

ImagePyramid returns a new ImagePyramid element.

func InnerBoundaryIs

func InnerBoundaryIs(value Element) *CompoundElement

InnerBoundaryIs returns a new innerBoundaryIs element.

func ItemIcon added in v1.5.0

func ItemIcon(children ...Element) *CompoundElement

ItemIcon returns a new ItemIcon element.

func KML

func KML(child Element) *CompoundElement

KML returns a new kml element.

func LOD added in v1.5.0

func LOD(children ...Element) *CompoundElement

LOD returns a new Lod element.

func LabelStyle

func LabelStyle(children ...Element) *CompoundElement

LabelStyle returns a new LabelStyle element.

func LatLonAltBox added in v1.5.0

func LatLonAltBox(children ...Element) *CompoundElement

LatLonAltBox returns a new LatLonAltBox element.

func LatLonBox

func LatLonBox(children ...Element) *CompoundElement

LatLonBox returns a new LatLonBox element.

func LineString

func LineString(children ...Element) *CompoundElement

LineString returns a new LineString element.

Example
k := kml.KML(
	kml.Document(
		kml.Name("Paths"),
		kml.Description("Examples of paths. Note that the tessellate tag is by default set to 0. If you want to create tessellated lines, they must be authored (or edited) directly in KML."),
		kml.SharedStyle(
			"yellowLineGreenPoly",
			kml.LineStyle(
				kml.Color(color.RGBA{R: 255, G: 255, B: 0, A: 127}),
				kml.Width(4),
			),
			kml.PolyStyle(
				kml.Color(color.RGBA{R: 0, G: 255, B: 0, A: 127}),
			),
		),
		kml.Placemark(
			kml.Name("Absolute Extruded"),
			kml.Description("Transparent green wall with yellow outlines"),
			kml.StyleURL("#yellowLineGreenPoly"),
			kml.LineString(
				kml.Extrude(true),
				kml.Tessellate(true),
				kml.AltitudeMode(kml.AltitudeModeAbsolute),
				kml.Coordinates([]kml.Coordinate{
					{Lon: -112.2550785337791, Lat: 36.07954952145647, Alt: 2357},
					{Lon: -112.2549277039738, Lat: 36.08117083492122, Alt: 2357},
					{Lon: -112.2552505069063, Lat: 36.08260761307279, Alt: 2357},
					{Lon: -112.2564540158376, Lat: 36.08395660588506, Alt: 2357},
					{Lon: -112.2580238976449, Lat: 36.08511401044813, Alt: 2357},
					{Lon: -112.2595218489022, Lat: 36.08584355239394, Alt: 2357},
					{Lon: -112.2608216347552, Lat: 36.08612634548589, Alt: 2357},
					{Lon: -112.262073428656, Lat: 36.08626019085147, Alt: 2357},
					{Lon: -112.2633204928495, Lat: 36.08621519860091, Alt: 2357},
					{Lon: -112.2644963846444, Lat: 36.08627897945274, Alt: 2357},
					{Lon: -112.2656969554589, Lat: 36.08649599090644, Alt: 2357},
				}...),
			),
		),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>Paths</name>
    <description>Examples of paths. Note that the tessellate tag is by default set to 0. If you want to create tessellated lines, they must be authored (or edited) directly in KML.</description>
    <Style id="yellowLineGreenPoly">
      <LineStyle>
        <color>7f00ffff</color>
        <width>4</width>
      </LineStyle>
      <PolyStyle>
        <color>7f00ff00</color>
      </PolyStyle>
    </Style>
    <Placemark>
      <name>Absolute Extruded</name>
      <description>Transparent green wall with yellow outlines</description>
      <styleUrl>#yellowLineGreenPoly</styleUrl>
      <LineString>
        <extrude>1</extrude>
        <tessellate>1</tessellate>
        <altitudeMode>absolute</altitudeMode>
        <coordinates>-112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.2608216347552,36.08612634548589,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357</coordinates>
      </LineString>
    </Placemark>
  </Document>
</kml>

func LineStyle

func LineStyle(children ...Element) *CompoundElement

LineStyle returns a new LineStyle element.

func LinearRing

func LinearRing(children ...Element) *CompoundElement

LinearRing returns a new LinearRing element.

func Link(children ...Element) *CompoundElement

Link returns a new Link element.

func ListStyle

func ListStyle(children ...Element) *CompoundElement

ListStyle returns a new ListStyle element.

func Location added in v1.5.0

func Location(children ...Element) *CompoundElement

Location returns a new Location element.

func LookAt

func LookAt(children ...Element) *CompoundElement

LookAt returns a new LookAt element.

func Metadata added in v1.5.0

func Metadata(children ...Element) *CompoundElement

Metadata returns a new Metadata element.

func Model

func Model(children ...Element) *CompoundElement

Model returns a new Model element.

func MultiGeometry

func MultiGeometry(children ...Element) *CompoundElement

MultiGeometry returns a new MultiGeometry element.

func NetworkLink(children ...Element) *CompoundElement

NetworkLink returns a new NetworkLink element.

func NetworkLinkControl

func NetworkLinkControl(children ...Element) *CompoundElement

NetworkLinkControl returns a new NetworkLinkControl element.

func Orientation added in v1.5.0

func Orientation(children ...Element) *CompoundElement

Orientation returns a new Orientation element.

func OuterBoundaryIs

func OuterBoundaryIs(value Element) *CompoundElement

OuterBoundaryIs returns a new outerBoundaryIs element.

func Pair

func Pair(children ...Element) *CompoundElement

Pair returns a new Pair element.

func PhotoOverlay added in v1.5.0

func PhotoOverlay(children ...Element) *CompoundElement

PhotoOverlay returns a new PhotoOverlay element.

func Placemark

func Placemark(children ...Element) *CompoundElement

Placemark returns a new Placemark element.

Example
k := kml.KML(
	kml.Placemark(
		kml.Name("Simple placemark"),
		kml.Description("Attached to the ground. Intelligently places itself at the height of the underlying terrain."),
		kml.Point(
			kml.Coordinates(kml.Coordinate{Lon: -122.0822035425683, Lat: 37.42228990140251}),
		),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Simple placemark</name>
    <description>Attached to the ground. Intelligently places itself at the height of the underlying terrain.</description>
    <Point>
      <coordinates>-122.0822035425683,37.42228990140251</coordinates>
    </Point>
  </Placemark>
</kml>

func Point

func Point(children ...Element) *CompoundElement

Point returns a new Point element.

func PolyStyle

func PolyStyle(children ...Element) *CompoundElement

PolyStyle returns a new PolyStyle element.

func Polygon

func Polygon(children ...Element) *CompoundElement

Polygon returns a new Polygon element.

Example
k := kml.KML(
	kml.Placemark(
		kml.Name("The Pentagon"),
		kml.Polygon(
			kml.Extrude(true),
			kml.AltitudeMode(kml.AltitudeModeRelativeToGround),
			kml.OuterBoundaryIs(
				kml.LinearRing(
					kml.Coordinates([]kml.Coordinate{
						{Lon: -77.05788457660967, Lat: 38.87253259892824, Alt: 100},
						{Lon: -77.05465973756702, Lat: 38.87291016281703, Alt: 100},
						{Lon: -77.0531553685479, Lat: 38.87053267794386, Alt: 100},
						{Lon: -77.05552622493516, Lat: 38.868757801256, Alt: 100},
						{Lon: -77.05844056290393, Lat: 38.86996206506943, Alt: 100},
						{Lon: -77.05788457660967, Lat: 38.87253259892824, Alt: 100},
					}...),
				),
			),
			kml.InnerBoundaryIs(
				kml.LinearRing(
					kml.Coordinates([]kml.Coordinate{
						{Lon: -77.05668055019126, Lat: 38.87154239798456, Alt: 100},
						{Lon: -77.05542625960818, Lat: 38.87167890344077, Alt: 100},
						{Lon: -77.05485125901023, Lat: 38.87076535397792, Alt: 100},
						{Lon: -77.05577677433152, Lat: 38.87008686581446, Alt: 100},
						{Lon: -77.05691162017543, Lat: 38.87054446963351, Alt: 100},
						{Lon: -77.05668055019126, Lat: 38.87154239798456, Alt: 100},
					}...),
				),
			),
		),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>The Pentagon</name>
    <Polygon>
      <extrude>1</extrude>
      <altitudeMode>relativeToGround</altitudeMode>
      <outerBoundaryIs>
        <LinearRing>
          <coordinates>-77.05788457660967,38.87253259892824,100 -77.05465973756702,38.87291016281703,100 -77.0531553685479,38.87053267794386,100 -77.05552622493516,38.868757801256,100 -77.05844056290393,38.86996206506943,100 -77.05788457660967,38.87253259892824,100</coordinates>
        </LinearRing>
      </outerBoundaryIs>
      <innerBoundaryIs>
        <LinearRing>
          <coordinates>-77.05668055019126,38.87154239798456,100 -77.05542625960818,38.87167890344077,100 -77.05485125901023,38.87076535397792,100 -77.05577677433152,38.87008686581446,100 -77.05691162017543,38.87054446963351,100 -77.05668055019126,38.87154239798456,100</coordinates>
        </LinearRing>
      </innerBoundaryIs>
    </Polygon>
  </Placemark>
</kml>

func Region

func Region(children ...Element) *CompoundElement

Region returns a new Region element.

func ResourceMap added in v1.5.0

func ResourceMap(children ...Element) *CompoundElement

ResourceMap returns a new ResourceMap element.

func SchemaData

func SchemaData(schemaURL string, children ...Element) *CompoundElement

SchemaData returns a new SchemaData element.

func ScreenOverlay

func ScreenOverlay(children ...Element) *CompoundElement

ScreenOverlay returns a new ScreenOverlay element.

Example
k := kml.KML(
	kml.ScreenOverlay(
		kml.Name("Absolute Positioning: Top left"),
		kml.Icon(
			kml.Href("http://developers.google.com/kml/documentation/images/top_left.jpg"),
		),
		kml.OverlayXY(kml.Vec2{X: 0, Y: 1, XUnits: kml.UnitsFraction, YUnits: kml.UnitsFraction}),
		kml.ScreenXY(kml.Vec2{X: 0, Y: 1, XUnits: kml.UnitsFraction, YUnits: kml.UnitsFraction}),
		kml.RotationXY(kml.Vec2{X: 0, Y: 0, XUnits: kml.UnitsFraction, YUnits: kml.UnitsFraction}),
		kml.Size(kml.Vec2{X: 0, Y: 0, XUnits: kml.UnitsFraction, YUnits: kml.UnitsFraction}),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <ScreenOverlay>
    <name>Absolute Positioning: Top left</name>
    <Icon>
      <href>http://developers.google.com/kml/documentation/images/top_left.jpg</href>
    </Icon>
    <overlayXY x="0" y="1" xunits="fraction" yunits="fraction"></overlayXY>
    <screenXY x="0" y="1" xunits="fraction" yunits="fraction"></screenXY>
    <rotationXY x="0" y="0" xunits="fraction" yunits="fraction"></rotationXY>
    <size x="0" y="0" xunits="fraction" yunits="fraction"></size>
  </ScreenOverlay>
</kml>

func SimpleField

func SimpleField(name, _type string, children ...Element) *CompoundElement

SimpleField returns a new SimpleField element.

func Style

func Style(children ...Element) *CompoundElement

Style returns a new Style element.

Example
k := kml.KML(
	kml.Document(
		kml.SharedStyle(
			"transBluePoly",
			kml.LineStyle(
				kml.Width(1.5),
			),
			kml.PolyStyle(
				kml.Color(color.RGBA{R: 0, G: 0, B: 255, A: 125}),
			),
		),
		kml.Placemark(
			kml.Name("Building 41"),
			kml.StyleURL("#transBluePoly"),
			kml.Polygon(
				kml.Extrude(true),
				kml.AltitudeMode(kml.AltitudeModeRelativeToGround),
				kml.OuterBoundaryIs(
					kml.LinearRing(
						kml.Coordinates([]kml.Coordinate{
							{Lon: -122.0857412771483, Lat: 37.42227033155257, Alt: 17},
							{Lon: -122.0858169768481, Lat: 37.42231408832346, Alt: 17},
							{Lon: -122.085852582875, Lat: 37.42230337469744, Alt: 17},
							{Lon: -122.0858799945639, Lat: 37.42225686138789, Alt: 17},
							{Lon: -122.0858860101409, Lat: 37.4222311076138, Alt: 17},
							{Lon: -122.0858069157288, Lat: 37.42220250173855, Alt: 17},
							{Lon: -122.0858379542653, Lat: 37.42214027058678, Alt: 17},
							{Lon: -122.0856732640519, Lat: 37.42208690214408, Alt: 17},
							{Lon: -122.0856022926407, Lat: 37.42214885429042, Alt: 17},
							{Lon: -122.0855902778436, Lat: 37.422128290487, Alt: 17},
							{Lon: -122.0855841672237, Lat: 37.42208171967246, Alt: 17},
							{Lon: -122.0854852065741, Lat: 37.42210455874995, Alt: 17},
							{Lon: -122.0855067264352, Lat: 37.42214267949824, Alt: 17},
							{Lon: -122.0854430712915, Lat: 37.42212783846172, Alt: 17},
							{Lon: -122.0850990714904, Lat: 37.42251282407603, Alt: 17},
							{Lon: -122.0856769818632, Lat: 37.42281815323651, Alt: 17},
							{Lon: -122.0860162273783, Lat: 37.42244918858722, Alt: 17},
							{Lon: -122.0857260327004, Lat: 37.42229239604253, Alt: 17},
							{Lon: -122.0857412771483, Lat: 37.42227033155257, Alt: 17},
						}...),
					),
				),
			),
		),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Style id="transBluePoly">
      <LineStyle>
        <width>1.5</width>
      </LineStyle>
      <PolyStyle>
        <color>7dff0000</color>
      </PolyStyle>
    </Style>
    <Placemark>
      <name>Building 41</name>
      <styleUrl>#transBluePoly</styleUrl>
      <Polygon>
        <extrude>1</extrude>
        <altitudeMode>relativeToGround</altitudeMode>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates>-122.0857412771483,37.42227033155257,17 -122.0858169768481,37.42231408832346,17 -122.085852582875,37.42230337469744,17 -122.0858799945639,37.42225686138789,17 -122.0858860101409,37.4222311076138,17 -122.0858069157288,37.42220250173855,17 -122.0858379542653,37.42214027058678,17 -122.0856732640519,37.42208690214408,17 -122.0856022926407,37.42214885429042,17 -122.0855902778436,37.422128290487,17 -122.0855841672237,37.42208171967246,17 -122.0854852065741,37.42210455874995,17 -122.0855067264352,37.42214267949824,17 -122.0854430712915,37.42212783846172,17 -122.0850990714904,37.42251282407603,17 -122.0856769818632,37.42281815323651,17 -122.0860162273783,37.42244918858722,17 -122.0857260327004,37.42229239604253,17 -122.0857412771483,37.42227033155257,17</coordinates>
          </LinearRing>
        </outerBoundaryIs>
      </Polygon>
    </Placemark>
  </Document>
</kml>

func StyleMap

func StyleMap(children ...Element) *CompoundElement

StyleMap returns a new StyleMap element.

func TimeSpan

func TimeSpan(children ...Element) *CompoundElement

TimeSpan returns a new TimeSpan element.

func TimeStamp

func TimeStamp(children ...Element) *CompoundElement

TimeStamp returns a new TimeStamp element.

func URL added in v1.5.0

func URL(children ...Element) *CompoundElement

URL returns a new Url element.

func Update added in v1.5.0

func Update(children ...Element) *CompoundElement

Update returns a new Update element.

func ViewVolume added in v1.5.0

func ViewVolume(children ...Element) *CompoundElement

ViewVolume returns a new ViewVolume element.

func (*CompoundElement) Add

func (ce *CompoundElement) Add(children ...Element) *CompoundElement

Add adds children to ce.

func (*CompoundElement) MarshalXML

func (ce *CompoundElement) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML marshals ce to e. start is ignored.

func (*CompoundElement) SetChildren added in v1.5.2

func (ce *CompoundElement) SetChildren(children []Element)

SetChildren sets ce's children.

func (*CompoundElement) Write

func (ce *CompoundElement) Write(w io.Writer) error

Write writes an XML header and ce to w.

func (*CompoundElement) WriteIndent

func (ce *CompoundElement) WriteIndent(w io.Writer, prefix, indent string) error

WriteIndent writes an XML header and ce to w.

type Coordinate

type Coordinate struct {
	Lon, Lat, Alt float64
}

A Coordinate represents a single geographical coordinate. Lon and Lat are in degrees, Alt is in meters.

type CoordinatesArrayElement

type CoordinatesArrayElement struct {
	// contains filtered or unexported fields
}

CoordinatesArrayElement is a coordinates element.

func CoordinatesArray

func CoordinatesArray(value ...[]float64) *CoordinatesArrayElement

CoordinatesArray returns a new CoordinatesArrayElement.

func (*CoordinatesArrayElement) MarshalXML

func (cae *CoordinatesArrayElement) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML marshals cae to e. start is ignored.

func (*CoordinatesArrayElement) Write

func (cae *CoordinatesArrayElement) Write(w io.Writer) error

Write writes an XML header and cae to w.

func (*CoordinatesArrayElement) WriteIndent

func (cae *CoordinatesArrayElement) WriteIndent(w io.Writer, prefix, indent string) error

WriteIndent writes an XML header and cae to w.

type CoordinatesElement

type CoordinatesElement struct {
	// contains filtered or unexported fields
}

CoordinatesElement is a coordinates element.

func Coordinates

func Coordinates(value ...Coordinate) *CoordinatesElement

Coordinates returns a new CoordinatesElement.

func (*CoordinatesElement) MarshalXML

func (ce *CoordinatesElement) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML marshals ce to e. start is ignored.

func (*CoordinatesElement) Write

func (ce *CoordinatesElement) Write(w io.Writer) error

Write writes an XML header and ce to w.

func (*CoordinatesElement) WriteIndent

func (ce *CoordinatesElement) WriteIndent(w io.Writer, prefix, indent string) error

WriteIndent writes an XML header and ce to w.

type CoordinatesFlatElement

type CoordinatesFlatElement struct {
	// contains filtered or unexported fields
}

CoordinatesFlatElement is a coordinates element.

func CoordinatesFlat

func CoordinatesFlat(flatCoords []float64, offset, end, stride, dim int) *CoordinatesFlatElement

CoordinatesFlat returns a new Coordinates element from flat coordinates.

func (*CoordinatesFlatElement) MarshalXML

func (cfe *CoordinatesFlatElement) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML marshals cfe to e. start is ignored.

func (*CoordinatesFlatElement) Write

func (cfe *CoordinatesFlatElement) Write(w io.Writer) error

Write writes an XML header and cfe to w.

func (*CoordinatesFlatElement) WriteIndent

func (cfe *CoordinatesFlatElement) WriteIndent(w io.Writer, prefix, indent string) error

WriteIndent writes an XML header and cfe to w.

type DisplayModeEnum added in v1.4.0

type DisplayModeEnum string

A DisplayModeEnum is a displayModeEnumType.

const (
	DisplayModeDefault DisplayModeEnum = "default"
	DisplayModeHide    DisplayModeEnum = "hide"
)

DisplayModeEnums.

type Element

type Element interface {
	xml.Marshaler
	Write(io.Writer) error
	WriteIndent(io.Writer, string, string) error
}

An Element represents an abstract KML element.

type GridOriginEnum added in v1.4.0

type GridOriginEnum string

A GridOriginEnum is a gridOriginEnumType.

const (
	GridOriginLowerLeft GridOriginEnum = "lowerLeft"
	GridOriginUpperLeft GridOriginEnum = "upperLeft"
)

GridOriginEnums.

type GxAltitudeModeEnum added in v1.5.0

type GxAltitudeModeEnum string

A GxAltitudeModeEnum is an altitudeModeEnumType.

const (
	GxAltitudeModeClampToGround      GxAltitudeModeEnum = "clampToGround"
	GxAltitudeModeRelativeToGround   GxAltitudeModeEnum = "relativeToGround"
	GxAltitudeModeAbsolute           GxAltitudeModeEnum = "absolute"
	GxAltitudeModeClampToSeaFloor    GxAltitudeModeEnum = "clampToSeaFloor"
	GxAltitudeModeRelativeToSeaFloor GxAltitudeModeEnum = "relativeToSeaFloor"
)

GxAltitudeModeEnums.

type GxAngle

type GxAngle struct {
	Heading, Tilt, Roll float64
}

A GxAngle represents an angle.

type GxFlyToModeEnum added in v1.5.0

type GxFlyToModeEnum string

A GxFlyToModeEnum is a flyToModeEnumType.

const (
	GxFlyToModeBounce GxFlyToModeEnum = "bounce"
	GxFlyToModeSmooth GxFlyToModeEnum = "smooth"
)

GxFlyToModeEnums.

type GxOptionName added in v1.5.0

type GxOptionName string

A GxOptionName is a gx:option name.

const (
	GxOptionNameHistoricalImagery GxOptionName = "historicalimagery"
	GxOptionNameStreetView        GxOptionName = "streetview"
	GxOptionNameSunlight          GxOptionName = "sunlight"
)

GxOptionNames.

type GxPlayModeEnum added in v1.5.0

type GxPlayModeEnum string

A GxPlayModeEnum is a playModeEnumType.

const (
	GxPlayModePause GxPlayModeEnum = "pause"
)

GxPlayModeEnums.

type ItemIconStateEnum added in v1.5.0

type ItemIconStateEnum string

A ItemIconStateEnum is a itemIconStateEnumType.

const (
	ItemIconStateOpen      ItemIconStateEnum = "open"
	ItemIconStateClosed    ItemIconStateEnum = "closed"
	ItemIconStateError     ItemIconStateEnum = "error"
	ItemIconStateFetching0 ItemIconStateEnum = "fetching0"
	ItemIconStateFetching1 ItemIconStateEnum = "fetching1"
	ItemIconStateFetching2 ItemIconStateEnum = "fetching2"
)

ItemIconStateEnums.

type ListItemTypeEnum added in v1.4.0

type ListItemTypeEnum string

A ListItemTypeEnum is a listItemTypeEnumType.

const (
	ListItemTypeRadioFolder       ListItemTypeEnum = "radioFolder"
	ListItemTypeCheck             ListItemTypeEnum = "check"
	ListItemTypeCheckHideChildren ListItemTypeEnum = "checkHideChildren"
	ListItemTypeCheckOffOnly      ListItemTypeEnum = "checkOffOnly"
)

ListItemTypeEnums.

type RefreshModeEnum added in v1.4.0

type RefreshModeEnum string

A RefreshModeEnum is a refreshModeEnumType.

const (
	RefreshModeOnChange   RefreshModeEnum = "onChange"
	RefreshModeOnInterval RefreshModeEnum = "onInterval"
	RefreshModeOnExpire   RefreshModeEnum = "onExpire"
)

RefreshModeEnums.

type ShapeEnum added in v1.4.0

type ShapeEnum string

A ShapeEnum is a shapeEnumType.

const (
	ShapeRectangle ShapeEnum = "rectangle"
	ShapeCylinder  ShapeEnum = "cylinder"
	ShapeSphere    ShapeEnum = "sphere"
)

ShapeEnums.

type SharedElement

type SharedElement struct {
	CompoundElement
	// contains filtered or unexported fields
}

A SharedElement is an element with an id.

func Schema

func Schema(id, name string, children ...Element) *SharedElement

Schema returns a new Schema element.

func SharedStyle

func SharedStyle(id string, children ...Element) *SharedElement

SharedStyle returns a new shared Style element.

func SharedStyleMap

func SharedStyleMap(id string, children ...Element) *SharedElement

SharedStyleMap returns a new shared StyleMap element.

Example
k := kml.KML(
	kml.Document(
		kml.Name("Highlighted Icon"),
		kml.Description("Place your mouse over the icon to see it display the new icon"),
		kml.SharedStyle(
			"highlightPlacemark",
			kml.IconStyle(
				kml.Icon(
					kml.Href("http://maps.google.com/mapfiles/kml/paddle/red-stars.png"),
				),
			),
		),
		kml.SharedStyle(
			"normalPlacemark",
			kml.IconStyle(
				kml.Icon(
					kml.Href("http://maps.google.com/mapfiles/kml/paddle/wht-blank.png"),
				),
			),
		),
		kml.SharedStyleMap(
			"exampleStyleMap",
			kml.Pair(
				kml.Key(kml.StyleStateNormal),
				kml.StyleURL("#normalPlacemark"),
			),
			kml.Pair(
				kml.Key(kml.StyleStateHighlight),
				kml.StyleURL("#highlightPlacemark"),
			),
		),
		kml.Placemark(
			kml.Name("Roll over this icon"),
			kml.StyleURL("#exampleStyleMap"),
			kml.Point(
				kml.Coordinates(kml.Coordinate{Lon: -122.0856545755255, Lat: 37.42243077405461}),
			),
		),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>Highlighted Icon</name>
    <description>Place your mouse over the icon to see it display the new icon</description>
    <Style id="highlightPlacemark">
      <IconStyle>
        <Icon>
          <href>http://maps.google.com/mapfiles/kml/paddle/red-stars.png</href>
        </Icon>
      </IconStyle>
    </Style>
    <Style id="normalPlacemark">
      <IconStyle>
        <Icon>
          <href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href>
        </Icon>
      </IconStyle>
    </Style>
    <StyleMap id="exampleStyleMap">
      <Pair>
        <key>normal</key>
        <styleUrl>#normalPlacemark</styleUrl>
      </Pair>
      <Pair>
        <key>highlight</key>
        <styleUrl>#highlightPlacemark</styleUrl>
      </Pair>
    </StyleMap>
    <Placemark>
      <name>Roll over this icon</name>
      <styleUrl>#exampleStyleMap</styleUrl>
      <Point>
        <coordinates>-122.0856545755255,37.42243077405461</coordinates>
      </Point>
    </Placemark>
  </Document>
</kml>

func (*SharedElement) ID

func (se *SharedElement) ID() string

ID returns se's id.

func (*SharedElement) SetID added in v1.5.2

func (se *SharedElement) SetID(id string)

SetID sets se's id.

func (*SharedElement) URL

func (se *SharedElement) URL() string

URL returns se's URL.

type SimpleElement

type SimpleElement struct {
	xml.StartElement
	// contains filtered or unexported fields
}

A SimpleElement is an Element with a single value.

func Address

func Address(value string) *SimpleElement

Address returns a new address element.

func Altitude

func Altitude(value float64) *SimpleElement

Altitude returns a new altitude element.

func AltitudeMode

func AltitudeMode(value AltitudeModeEnum) *SimpleElement

AltitudeMode returns a new altitudeMode element.

func Begin

func Begin(value time.Time) *SimpleElement

Begin returns a new begin element.

func BgColor

func BgColor(value color.Color) *SimpleElement

BgColor returns a new bgColor element.

func BottomFOV added in v1.5.0

func BottomFOV(value float64) *SimpleElement

BottomFOV returns a new bottomFov element.

func Color

func Color(value color.Color) *SimpleElement

Color returns a new color element.

func ColorMode

func ColorMode(value ColorModeEnum) *SimpleElement

ColorMode returns a new colorMode element.

func Cookie(value string) *SimpleElement

Cookie returns a new cookie element.

func Description

func Description(value string) *SimpleElement

Description returns a new description element.

Example
k := kml.KML(
	kml.Document(
		kml.Placemark(
			kml.Name("CDATA example"),
			kml.Description(`<h1>CDATA Tags are useful!</h1> <p><font color="red">Text is <i>more readable</i> and <b>easier to write</b> when you can avoid using entity references.</font></p>`),
			kml.Point(
				kml.Coordinates(kml.Coordinate{Lon: 102.595626, Lat: 14.996729}),
			),
		),
	),
)
if err := k.WriteIndent(os.Stdout, "", "  "); err != nil {
	log.Fatal(err)
}
Output:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Placemark>
      <name>CDATA example</name>
      <description>&lt;h1&gt;CDATA Tags are useful!&lt;/h1&gt; &lt;p&gt;&lt;font color=&#34;red&#34;&gt;Text is &lt;i&gt;more readable&lt;/i&gt; and &lt;b&gt;easier to write&lt;/b&gt; when you can avoid using entity references.&lt;/font&gt;&lt;/p&gt;</description>
      <Point>
        <coordinates>102.595626,14.996729</coordinates>
      </Point>
    </Placemark>
  </Document>
</kml>

func DisplayMode added in v1.4.0

func DisplayMode(value DisplayModeEnum) *SimpleElement

DisplayMode returns a new displayMode element.

func DisplayName

func DisplayName(value string) *SimpleElement

DisplayName returns a new displayName element.

func DrawOrder

func DrawOrder(value int) *SimpleElement

DrawOrder returns a new drawOrder element.

func East

func East(value float64) *SimpleElement

East returns a new east element.

func End

func End(value time.Time) *SimpleElement

End returns a new end element.

func Expires

func Expires(value time.Time) *SimpleElement

Expires returns a new expires element.

func Extrude

func Extrude(value bool) *SimpleElement

Extrude returns a new extrude element.

func Fill

func Fill(value bool) *SimpleElement

Fill returns a new fill element.

func FlyToView

func FlyToView(value bool) *SimpleElement

FlyToView returns a new flyToView element.

func GridOrigin added in v1.4.0

func GridOrigin(value GridOriginEnum) *SimpleElement

GridOrigin returns a new gridOrigin element.

func GxAltitudeMode

func GxAltitudeMode(value GxAltitudeModeEnum) *SimpleElement

GxAltitudeMode returns a new altitudeMode element.

func GxAltitudeOffset

func GxAltitudeOffset(value float64) *SimpleElement

GxAltitudeOffset returns a new altitudeOffset element.

func GxAngles

func GxAngles(value GxAngle) *SimpleElement

GxAngles returns a new gx:angles element.

func GxBalloonVisibility

func GxBalloonVisibility(value bool) *SimpleElement

GxBalloonVisibility returns a new balloonVisibility element.

func GxCoord

func GxCoord(value Coordinate) *SimpleElement

GxCoord returns a new gx:coord element.

func GxDelayedStart

func GxDelayedStart(value float64) *SimpleElement

GxDelayedStart returns a new delayedStart element.

func GxDrawOrder added in v1.5.0

func GxDrawOrder(value int) *SimpleElement

GxDrawOrder returns a new drawOrder element.

func GxDuration

func GxDuration(value float64) *SimpleElement

GxDuration returns a new duration element.

func GxFlyToMode added in v1.5.0

func GxFlyToMode(value GxFlyToModeEnum) *SimpleElement

GxFlyToMode returns a new flyToMode element.

func GxH added in v1.5.0

func GxH(value int) *SimpleElement

GxH returns a new h element.

func GxHorizFOV added in v1.5.0

func GxHorizFOV(value float64) *SimpleElement

GxHorizFOV returns a new horizFov element.

func GxInterpolate added in v1.5.0

func GxInterpolate(value bool) *SimpleElement

GxInterpolate returns a new interpolate element.

func GxLabelVisibility

func GxLabelVisibility(value bool) *SimpleElement

GxLabelVisibility returns a new labelVisibility element.

func GxOption added in v1.5.0

func GxOption(name GxOptionName, enabled bool) *SimpleElement

GxOption returns a new gx:option element.

func GxOuterColor

func GxOuterColor(value color.Color) *SimpleElement

GxOuterColor returns a new outerColor element.

func GxOuterWidth

func GxOuterWidth(value float64) *SimpleElement

GxOuterWidth returns a new outerWidth element.

func GxPhysicalWidth

func GxPhysicalWidth(value float64) *SimpleElement

GxPhysicalWidth returns a new physicalWidth element.

func GxPlayMode added in v1.4.0

func GxPlayMode(value GxPlayModeEnum) *SimpleElement

GxPlayMode returns a new playMode element.

func GxRank added in v1.5.0

func GxRank(value float64) *SimpleElement

GxRank returns a new rank element.

func GxValue added in v1.5.0

func GxValue(value string) *SimpleElement

GxValue returns a new value element.

func GxW added in v1.5.0

func GxW(value int) *SimpleElement

GxW returns a new w element.

func GxX added in v1.5.0

func GxX(value int) *SimpleElement

GxX returns a new x element.

func GxY added in v1.5.0

func GxY(value int) *SimpleElement

GxY returns a new y element.

func HTTPQuery

func HTTPQuery(value string) *SimpleElement

HTTPQuery returns a new httpQuery element.

func Heading

func Heading(value float64) *SimpleElement

Heading returns a new heading element.

func HotSpot

func HotSpot(value Vec2) *SimpleElement

HotSpot returns a new hotSpot element.

func Href

func Href(value string) *SimpleElement

Href returns a new href element.

func Key

func Key(value StyleStateEnum) *SimpleElement

Key returns a new key element.

func Latitude

func Latitude(value float64) *SimpleElement

Latitude returns a new latitude element.

func LeftFOV added in v1.5.0

func LeftFOV(value float64) *SimpleElement

LeftFOV returns a new leftFov element.

func LinkDescription

func LinkDescription(value string) *SimpleElement

LinkDescription returns a new linkDescription element.

func LinkName

func LinkName(value string) *SimpleElement

LinkName returns a new linkName element.

func LinkSnippet

func LinkSnippet(maxLines int, value string) *SimpleElement

LinkSnippet returns a new linkSnippet element.

func ListItemType

func ListItemType(value ListItemTypeEnum) *SimpleElement

ListItemType returns a new listItemType element.

func Longitude

func Longitude(value float64) *SimpleElement

Longitude returns a new longitude element.

func MaxAltitude

func MaxAltitude(value float64) *SimpleElement

MaxAltitude returns a new maxAltitude element.

func MaxFadeExtent

func MaxFadeExtent(value float64) *SimpleElement

MaxFadeExtent returns a new maxFadeExtent element.

func MaxHeight added in v1.5.0

func MaxHeight(value int) *SimpleElement

MaxHeight returns a new maxHeight element.

func MaxLODPixels added in v1.5.0

func MaxLODPixels(value float64) *SimpleElement

MaxLODPixels returns a new maxLodPixels element.

func MaxSessionLength added in v1.5.0

func MaxSessionLength(value float64) *SimpleElement

MaxSessionLength returns a new maxSessionLength element.

func MaxSnippetLines added in v1.5.0

func MaxSnippetLines(value int) *SimpleElement

MaxSnippetLines returns a new maxSnippetLines element.

func MaxWidth added in v1.5.0

func MaxWidth(value int) *SimpleElement

MaxWidth returns a new maxWidth element.

func Message

func Message(value string) *SimpleElement

Message returns a new message element.

func MinAltitude

func MinAltitude(value float64) *SimpleElement

MinAltitude returns a new minAltitude element.

func MinFadeExtent

func MinFadeExtent(value float64) *SimpleElement

MinFadeExtent returns a new minFadeExtent element.

func MinLODPixels added in v1.5.0

func MinLODPixels(value float64) *SimpleElement

MinLODPixels returns a new minLodPixels element.

func MinRefreshPeriod added in v1.5.0

func MinRefreshPeriod(value float64) *SimpleElement

MinRefreshPeriod returns a new minRefreshPeriod element.

func Name

func Name(value string) *SimpleElement

Name returns a new name element.

func Near added in v1.5.0

func Near(value float64) *SimpleElement

Near returns a new near element.

func North

func North(value float64) *SimpleElement

North returns a new north element.

func Open

func Open(value bool) *SimpleElement

Open returns a new open element.

func Outline

func Outline(value bool) *SimpleElement

Outline returns a new outline element.

func OverlayXY

func OverlayXY(value Vec2) *SimpleElement

OverlayXY returns a new overlayXY element.

func PhoneNumber

func PhoneNumber(value string) *SimpleElement

PhoneNumber returns a new phoneNumber element.

func Range

func Range(value float64) *SimpleElement

Range returns a new range element.

func RefreshInterval

func RefreshInterval(value float64) *SimpleElement

RefreshInterval returns a new refreshInterval element.

func RefreshMode

func RefreshMode(value RefreshModeEnum) *SimpleElement

RefreshMode returns a new refreshMode element.

func RefreshVisibility

func RefreshVisibility(value bool) *SimpleElement

RefreshVisibility returns a new refreshVisibility element.

func RightFOV added in v1.5.0

func RightFOV(value float64) *SimpleElement

RightFOV returns a new rightFov element.

func Roll

func Roll(value float64) *SimpleElement

Roll returns a new roll element.

func Rotation

func Rotation(value float64) *SimpleElement

Rotation returns a new rotation element.

func RotationXY

func RotationXY(value Vec2) *SimpleElement

RotationXY returns a new rotationXY element.

func Scale

func Scale(value float64) *SimpleElement

Scale returns a new scale element.

func ScreenXY

func ScreenXY(value Vec2) *SimpleElement

ScreenXY returns a new screenXY element.

func Shape added in v1.4.0

func Shape(value ShapeEnum) *SimpleElement

Shape returns a new shape element.

func SimpleData

func SimpleData(name, value string) *SimpleElement

SimpleData returns a new SimpleData element.

func Size

func Size(value Vec2) *SimpleElement

Size returns a new size element.

func Snippet

func Snippet(value string) *SimpleElement

Snippet returns a new snippet element.

func SourceHref added in v1.5.0

func SourceHref(value string) *SimpleElement

SourceHref returns a new sourceHref element.

func South

func South(value float64) *SimpleElement

South returns a new south element.

func State added in v1.4.0

func State(value ItemIconStateEnum) *SimpleElement

State returns a new state element.

func StyleURL

func StyleURL(value string) *SimpleElement

StyleURL returns a new styleUrl element.

func TargetHref

func TargetHref(value string) *SimpleElement

TargetHref returns a new targetHref element.

func Tessellate

func Tessellate(value bool) *SimpleElement

Tessellate returns a new tessellate element.

func Text

func Text(value string) *SimpleElement

Text returns a new text element.

func TextColor added in v1.5.0

func TextColor(value color.Color) *SimpleElement

TextColor returns a new textColor element.

func TileSize added in v1.5.0

func TileSize(value int) *SimpleElement

TileSize returns a new tileSize element.

func Tilt

func Tilt(value float64) *SimpleElement

Tilt returns a new tilt element.

func TopFOV added in v1.5.0

func TopFOV(value float64) *SimpleElement

TopFOV returns a new topFov element.

func Value

func Value(value string) *SimpleElement

Value returns a new value element.

func ViewBoundScale

func ViewBoundScale(value float64) *SimpleElement

ViewBoundScale returns a new viewBoundScale element.

func ViewFormat

func ViewFormat(value string) *SimpleElement

ViewFormat returns a new viewFormat element.

func ViewRefreshMode

func ViewRefreshMode(value ViewRefreshModeEnum) *SimpleElement

ViewRefreshMode returns a new viewRefreshMode element.

func ViewRefreshTime

func ViewRefreshTime(value float64) *SimpleElement

ViewRefreshTime returns a new viewRefreshTime element.

func Visibility

func Visibility(value bool) *SimpleElement

Visibility returns a new visibility element.

func West

func West(value float64) *SimpleElement

West returns a new west element.

func When

func When(value time.Time) *SimpleElement

When returns a new when element.

func Width

func Width(value float64) *SimpleElement

Width returns a new width element.

func X added in v1.5.0

func X(value float64) *SimpleElement

X returns a new x element.

func Y added in v1.5.0

func Y(value float64) *SimpleElement

Y returns a new y element.

func Z added in v1.5.0

func Z(value float64) *SimpleElement

Z returns a new z element.

func (*SimpleElement) MarshalXML

func (se *SimpleElement) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML marshals se to e. start is ignored.

func (*SimpleElement) SetBool added in v1.5.2

func (se *SimpleElement) SetBool(value bool)

SetBool sets se's value from a bool.

func (*SimpleElement) SetColor added in v1.5.2

func (se *SimpleElement) SetColor(value color.Color)

SetColor sets se's value from a color.Color.

func (*SimpleElement) SetFloat added in v1.5.2

func (se *SimpleElement) SetFloat(value float64)

SetFloat set se's value from a float64.

func (*SimpleElement) SetInt added in v1.5.2

func (se *SimpleElement) SetInt(value int)

SetInt sets se's value from an int.

func (*SimpleElement) SetString added in v1.5.2

func (se *SimpleElement) SetString(value string)

SetString sets se's value from a string.

func (*SimpleElement) SetTime added in v1.5.2

func (se *SimpleElement) SetTime(value time.Time)

SetTime sets se'ss value from a time.Time.

func (*SimpleElement) Write

func (se *SimpleElement) Write(w io.Writer) error

Write writes an XML header and se to w.

func (*SimpleElement) WriteIndent

func (se *SimpleElement) WriteIndent(w io.Writer, prefix, indent string) error

WriteIndent writes an XML header and se to w.

type StyleStateEnum added in v1.4.0

type StyleStateEnum string

A StyleStateEnum is a styleStateEnumType.

const (
	StyleStateNormal    StyleStateEnum = "normal"
	StyleStateHighlight StyleStateEnum = "highlight"
)

StyleStateEnums.

type UnitsEnum added in v1.4.0

type UnitsEnum string

A UnitsEnum is a unitsEnumType.

const (
	UnitsFraction    UnitsEnum = "fraction"
	UnitsPixels      UnitsEnum = "pixels"
	UnitsInsetPixels UnitsEnum = "insetPixels"
)

UnitsEnums.

type Vec2

type Vec2 struct {
	X, Y           float64
	XUnits, YUnits UnitsEnum
}

A Vec2 represents a screen position.

type ViewRefreshModeEnum added in v1.4.0

type ViewRefreshModeEnum string

A ViewRefreshModeEnum is a viewRefreshModeEnumType.

const (
	ViewRefreshModeNever     ViewRefreshModeEnum = "never"
	ViewRefreshModeOnRequest ViewRefreshModeEnum = "onRequest"
	ViewRefreshModeOnStop    ViewRefreshModeEnum = "onStop"
	ViewRefreshModeOnRegion  ViewRefreshModeEnum = "onRegion"
)

ViewRefreshModeEnums.

Directories

Path Synopsis
examples
hike-and-fly-route-kml
hike-and-fly-route prints a KML file of the route of popular races.
hike-and-fly-route prints a KML file of the route of popular races.
Package icon provides helper functions for standard Google Earth icons.
Package icon provides helper functions for standard Google Earth icons.
internal
Package sphere contains convenience methods for generating coordinates on a sphere.
Package sphere contains convenience methods for generating coordinates on a sphere.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL