View in MAUI UWP WPF WinUI View on GitHub
import InlineCode from "@esri-dx/starship-doc-components/components/InlineCode.astro";

Display KML from a URL, portal item, or local KML file.

Image of display KML

Use case

Keyhole Markup Language (KML) is a data format used by Google Earth. KML is popular as a transmission format for consumer use and for sharing geographic data between apps. You can use Runtime to display KML files, with full support for a variety of features, including network links, 3D models, screen overlays, and tours.

How to use the sample

Use the UI to select a source. A KML file from that source will be loaded and displayed in the scene.

How it works

  1. To create a KML layer from a URL, create a
    using the URL to the KML file. Then pass the dataset to the
    constructor.
  2. To create a KML layer from a portal item, construct a
    with a
    and the KML portal item ID. Pass the portal item to the
    constructor.
  3. To create a KML layer from a local file, create a
    using the absolute file path to the local KML file. Then pass the dataset to the
    constructor.
  4. Add the layer as an operational layer to the scene with
    .

Relevant API

  • KmlDataset
  • KmlLayer

Offline data

LinkLocal Location
US State Capitals

About the data

This sample displays three different KML files:

  • From URL - this is a map of the convective outlook produced by NOAA/NWS Storm Prediction Center. It uses KML network links to always show the latest data.
  • From local file - this is a map of U.S. state capitals. It doesn’t define an icon, so the default pushpin is used for the points.
  • From portal item - this is a map of U.S. states.

Tags

keyhole, KML, KMZ, OGC

Sample Code

DisplayKml.xaml DisplayKml.xaml DisplayKml.xaml.cs
<UserControl x:Class="ArcGIS.WinUI.Samples.DisplayKml.DisplayKml"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:esriUI="using:Esri.ArcGISRuntime.UI.Controls">
<Grid>
<esriUI:SceneView x:Name="MySceneView" />
<Border Style="{StaticResource BorderStyle}">
<StackPanel Orientation="Vertical">
<TextBlock FontWeight="SemiBold"
HorizontalTextAlignment="Center"
Text="Choose a KML data source." />
<ComboBox x:Name="LayerPicker"
HorizontalAlignment="Stretch"
IsEnabled="False" />
</StackPanel>
</Border>
</Grid>
</UserControl>