How to Highlight KML Icons & Labels

Liz Sanderson
Liz Sanderson
  • Updated

Introduction

In Google KML, you can control the visibility of feature labels and icons using KML StyleMap elements. To create highlighted icons, it is required to define two styles: normal and highlight. With FME, you need to create a dummy feature and then set up two StyleMaps using the KMLStyler transformers. These transformers create <StyleMap> elements that have two key-value pairs, mapping each icon style to an icon state. An example of how to control the visibility of features’ labels is shown in the demo workspace. For more information about StyleMaps, see the Google Developers KML Reference.

Step-by-step Instructions

1. Create Normal and Highlight StyleMaps

Open FME Workbench, then start a blank workspace. First, we need to create a dummy feature to create the StyleMaps. Add a Creator to the canvas, then connect two KMLStylers to it.

KMLStylers.png

The first KMLStyler will be the normal style. This KMLStyler will create the StyleMap attribute, which will be the normal style of the features when viewed in Google Earth. In the KMLStyler parameters, set Allow Unique Styles Per Feature to No, then expand the Icon section and set the Name to C2. Confirm that the Scale for both the Icon and Label is set to 0.5. Finally, to set the Style ID, change the Transformer Name to mystyle-normal. This will be referenced when we create the StyleMap attributes. 

KMLNormal.png

The second KMLStyler will be the style of the features when one hovers over the icon with the cursor in Google Earth. In the KMLStyler_2 parameters, set Allow Unique Styles Per Feature to No, then expand the Icon section and set Icon Name to C2 with a Scale of 0.7. Next, expand the Label section and set the Scale to 1.0. Finally, to set the Style ID, change the Transformer Name to mystyle-highlight. This will be referenced when we create the StyleMap attributes. 

KMLStyler1.png

2. Write Out Style

Now, let’s write out our KML Style to wrap up this section of the workspace. Add an OGC/Google KML Writer to the canvas and browse to a location to save the dataset. Name the file HighlightOnHover.kml, then change the Feature Type Definition to Manual and click OK. 

StyleWriter.png

In the Feature Type dialog, set the Feature Type Name to Style, then click OK. Connect the Style writer feature type to both KMLStylers. 

StyleFTConnection.png

3. Add FoodVendors

Now we will create the point features to attach the StyleMaps to. Add an Esri Geodatabase (File Geodb Open API( reader to the canvas. Browse to the CommunityMapping.gdb dataset that is available to download from the Files section of this article. Click OK to add the reader. 

GdbReader.png

In the Select Feature Types dialog, select only FoodVendors, then click OK. 

SelectFT.png

4. Reproject Data

Google Earth and the OGC KML format only accept coordinate systems in latitude and longitude. Add a CsmapReprojector to the canvas and connect it to the FoodVendors reader feature type. In the parameters, set the Destination Coordinate System to LL84, then click OK. 

Reprojector.png

5. Create KML StyleMap Attributes

Now, we will use the AttributeCreator to create the StyleMap attributes. These attributes assign the created StyleMaps to the FoodVendor point features. Add an AttributeCreator to the canvas and connect it to the CsmapReprojector. In the parameters, create the following attributes:

Attribute Name Value
kml_target_style_normal mystyle-normal
kml_target_style_highlight mystyle-highlight

AttributeCreator.png

6. Set Values for FoodVendor Labels

Now we need to create labels for each of the Food Vendors. Add a KMLPropertySetter to the canvas and connect it to the AttributeCreator. In the parameters, set the Name to VendorName, then set Include Attribute Table to No. 

KMLPropSet.png

7. Write Out FoodVendors

We will write out the FoodVendors to the same KML writer we used for Style. On the top menu bar, go to Writers > Add Feature Type. 

AddFT.png

In the Feature Type dialog, set the Feature Type Name to FoodVendors, then click OK. Connect the FoodVendors writer feature type to the KMLPropertySetter.

FoodVendorsConnection.png

After connecting the FoodVendors writer feature type, if you reopen the parameters and switch to the User Attributes tab, you’ll notice that the attributes we created with the AttributeCreator are not there. This is because they are format attributes; switch to the Format Attributes tab to see these attributes. 

FormatAttributes.png

8. Run Workspace and View Output in Google Earth

Run the workspace, then view the output in Google Earth. Hover over an icon to see the style change. 

GoogleEarth.png

Data Attribution

The data used here originates from open data made available by the City of Vancouver, British Columbia. It contains information licensed under the Open Government License - Vancouver.

Was this article helpful?

We're sorry to hear that.

Please tell us why.

As of January 14th, 2026, comments on knowledge base articles have been closed. To make sure questions don’t get missed and to enable more community support, we’ve moved discussions to the FME Community. If you have a question or a comment about this article, please create a new post or create a support ticket.