Make KML LineString follow roads - kml

I am working on a KML file with two co ordinates that I use to draw line strings. It works fine when the roads are straight, but whenever the road curves the lines do not curve. Here is the KML code I use
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<open>1</open>
<Style id="s_ylw-pushpin_hl">
<IconStyle>
<color>ffff5500</color>
<scale>0.583333</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href>
</Icon>
</IconStyle>
<LabelStyle>
<color>00ffffff</color>
</LabelStyle>
<ListStyle />
<LineStyle>
<color>ff0000ff</color>
<width>3.6</width>
</LineStyle>
<PolyStyle>
<fill>0</fill>
</PolyStyle>
</Style>
<StyleMap id="m_pushpin">
<Pair>
<key>normal</key>
<styleUrl>#s_ylw-pushpin</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#s_ylw-pushpin_hl</styleUrl>
</Pair>
</StyleMap>
<Style id="s_ylw-pushpin">
<IconStyle>
<color>ffff5500</color>
<scale>0.5</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href>
</Icon>
</IconStyle>
<LabelStyle>
<color>00ffffff</color>
</LabelStyle>
<ListStyle />
<LineStyle>
<color>ff0000ff</color>
<width>3.6</width>
</LineStyle>
<PolyStyle>
<fill>0</fill>
</PolyStyle>
</Style>
<Placemark>
<name>Test Fac 10-26-2020</name>
<description>Sidewalk</description>
<sidewalk_missing>No</sidewalk_missing>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<coordinates>-104.818968772888,39.710975093838,0 -104.810267686844,39.708465999778,0</coordinates>
</LineString>
<Style>
<LineStyle>
<color>ffff0000</color>
<width>5</width>
</LineStyle>
</Style>
</Placemark>
<Placemark>
<name>Test Fac 10-26-2020</name>
<description>Sidewalk 1</description>
<sidewalk_missing>No</sidewalk_missing>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<coordinates>-104.819033145905,39.707747919881,0 -104.814473390579,39.70400883137,0</coordinates>
</LineString>
<Style>
<LineStyle>
<color>ffff0000</color>
<width>5</width>
</LineStyle>
</Style>
</Placemark>
</Document>
</kml>
I would like the LineString to follow similar to the yellow lines on the road. I looked into Directions API, but can't figure out a better way.

I was able to query Google Roads API as below and parse the json response and add multi geometry to KML file with the resulting co-ordinates
string url = #"https://roads.googleapis.com/v1/snapToRoads?path=" + beginLat + "," + beginLon + "|" + endLat + "," + endLon + "&interpolate=true&key=";
System.Net.WebRequest request = System.Net.WebRequest.Create(url);
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream data = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(data);
string responseFromServer = reader.ReadToEnd();
response.Close();
Here is the json parser code. The co-ordinates are inside the "locations" table inside the dataset.
jsonString = $"{{ \"snappedPoints\": {{{jsonString.Trim().TrimStart('{').TrimEnd('}')}}} }}";
var xd = JsonConvert.DeserializeXmlNode(jsonString);
var result = new DataSet();
result.ReadXml(new XmlNodeReader(xd), mode);
return result;
Thank you all for the help and pointing me towards the right direction.

Related

Generate kml with address and not with point

I am trying to generate a KML file, I am attaching 2 examples, all right if I use the POINT tag but if I replace it with the ADDRESS tag I lose the styles and the folder when I upload the file to My Maps or Google Earth ... I am wrong the formatting ?
basically the only change I made is to replace the POINT tag with the ADDRESS tag, the latter also functions perfectly, as a positioning, but the colors of the styles and the name of the folder disappear.
Sample with point
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Esempio clienti</name>
<description/>
<Style id="icon-1899-0288D1-normal">
<IconStyle>
<color>ffd18802</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-1899-0288D1-highlight">
<IconStyle>
<color>ffd18802</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-1899-0288D1">
<Pair>
<key>normal</key>
<styleUrl>#icon-1899-0288D1-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-1899-0288D1-highlight</styleUrl>
</Pair>
</StyleMap>
<Style id="icon-1899-0F9D58-normal">
<IconStyle>
<color>ff589d0f</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-1899-0F9D58-highlight">
<IconStyle>
<color>ff589d0f</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-1899-0F9D58">
<Pair>
<key>normal</key>
<styleUrl>#icon-1899-0F9D58-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-1899-0F9D58-highlight</styleUrl>
</Pair>
</StyleMap>
<Style id="icon-1899-FF5252-normal">
<IconStyle>
<color>ff5252ff</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-1899-FF5252-highlight">
<IconStyle>
<color>ff5252ff</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-1899-FF5252">
<Pair>
<key>normal</key>
<styleUrl>#icon-1899-FF5252-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-1899-FF5252-highlight</styleUrl>
</Pair>
</StyleMap>
<Folder>
<name>Clienti</name>
<Placemark>
<name>Zerod</name>
<description><![CDATA[Descrizione<br>a capo]]></description>
<styleUrl>#icon-1899-0F9D58</styleUrl>
<Point>
<coordinates>
10.4023066,45.4184623,0
</coordinates>
</Point>
</Placemark>
<Placemark>
<name>MR77</name>
<description><![CDATA[Descrizione<br>a capo]]></description>
<styleUrl>#icon-1899-0288D1</styleUrl>
<Point>
<coordinates>
10.3659798,45.4232393,0
</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Selleria</name>
<description><![CDATA[Descrizione<br>a capo]]></description>
<styleUrl>#icon-1899-FF5252</styleUrl>
<Point>
<coordinates>
10.3672378,45.4239679,0
</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>
sample with address
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Esempio clienti</name>
<description/>
<Style id="icon-1899-0288D1-normal">
<IconStyle>
<color>ffd18802</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-1899-0288D1-highlight">
<IconStyle>
<color>ffd18802</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-1899-0288D1">
<Pair>
<key>normal</key>
<styleUrl>#icon-1899-0288D1-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-1899-0288D1-highlight</styleUrl>
</Pair>
</StyleMap>
<Style id="icon-1899-0F9D58-normal">
<IconStyle>
<color>ff589d0f</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-1899-0F9D58-highlight">
<IconStyle>
<color>ff589d0f</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-1899-0F9D58">
<Pair>
<key>normal</key>
<styleUrl>#icon-1899-0F9D58-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-1899-0F9D58-highlight</styleUrl>
</Pair>
</StyleMap>
<Style id="icon-1899-FF5252-normal">
<IconStyle>
<color>ff5252ff</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-1899-FF5252-highlight">
<IconStyle>
<color>ff5252ff</color>
<scale>1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
</Icon>
<hotSpot x="32" xunits="pixels" y="64" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-1899-FF5252">
<Pair>
<key>normal</key>
<styleUrl>#icon-1899-FF5252-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-1899-FF5252-highlight</styleUrl>
</Pair>
</StyleMap>
<Folder>
<name>Clienti</name>
<Placemark>
<name>Zerod</name>
<description><![CDATA[Descrizione<br>a capo]]></description>
<address>Via G.Falcone,136 Montichiari Brescia Lombardia</address>
<styleUrl>#icon-1899-0F9D58</styleUrl>
</Placemark>
<Placemark>
<name>MR77</name>
<description><![CDATA[Descrizione<br>a capo]]></description>
<address>Via San Bernardino, 5 Montichiari Brescia Lombardia</address>
<styleUrl>#icon-1899-0288D1</styleUrl>
</Placemark>
<Placemark>
<name>Selleria</name>
<description><![CDATA[Descrizione<br>a capo]]></description>
<address>Via Via Enrico Fermi, 4 Montichiari Brescia</address>
<styleUrl>#icon-1899-FF5252</styleUrl>
</Placemark>
</Folder>
</Document>
</kml>
Google Earth for Web (aka Google Earth for Chrome) does not use the <address> tag in a KML placemark to display it on the map. The KML Placemark must have a geometry (Point, Line, or Polygon) to be visible on the map.
Placemarks with only an address (and no geometry) is supported in Google Earth Pro for Desktop. When loaded in Google Earth, the location for addresses are automatically looked up (using Google's Geocoding API) and a pin for the placemark is positioned at its location.
To use Google Earth for Web or My Maps, you can first open the KML file in Google Earth Pro then export it. The saved KML will have a Point location for the address and a bounding box as a LinearRing in each of the Placemarks, which you can import in Google Earth for Web or My Maps.
Also note that the icon style with urls using https://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png will not work in Google Earth Web or My Maps so you will need to replace with the standard Google Earth icon; e.g. http://maps.google.com/mapfiles/kml/paddle/wht-blank.png.

Setting marker style from kml file in Here maps api

I have a kml file:
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>Ab Kettleby</name>
<Icon>
<href>https://wcsb.nz/wellringers/dove6.bmp</href>
</Icon>
<Point>
<coordinates>-0.92747,52.79858</coordinates>
</Point>
</Placemark>
</kml>
I reference this from an html file with a piece of javascript:
let reader = new H.data.kml.Reader('doveshort1.kml');
reader.parse();
kml = reader.getLayer();
map.addLayer(kml);
The file is read because a map is produced with the default bubble marker in the right place. Why is the referenced marker not used?
Your KML is not valid, see the KML Reference.
<Placemark id="ID">
<StyleSelector>...</StyleSelector>
</Placemark>
<StyleSelector> is abstract, extended By <Style>
<Style id="ID">
<!-- extends StyleSelector -->
<!-- specific to Style -->
<IconStyle>...</IconStyle>
</Style>
<IconStyle id="ID">
<!-- specific to IconStyle -->
<Icon>
<href>...</href>
</Icon>
</IconStyle>
This works:
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>Ab Kettleby</name>
<Style id="ID">
<!-- specific to Style -->
<IconStyle>
<Icon>
<href>https://wcsb.nz/wellringers/dove6.bmp</href>
</Icon>
</IconStyle>
</Style>
<Point>
<coordinates>-0.92747,52.79858</coordinates>
</Point>
</Placemark>
</kml>
live example
code snippet:
function initMap() {
const map = new google.maps.Map(document.getElementById("map"), {
zoom: 11,
center: {
lat: 41.876,
lng: -87.624
},
});
const ctaLayer = new google.maps.KmlLayer({
url: "http://www.geocodezip.com/geoxml3_test/kml/SO_20210121_Icon1.kml",
map: map,
});
}
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
<!DOCTYPE html>
<html>
<head>
<title>KML Layers</title>
<script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap&libraries=&v=weekly" defer></script>
<!-- jsFiddle will insert css and js -->
</head>
<body>
<div id="map"></div>
</body>
</html>

Altitude of Polygon is ignored in KML / Google Earth

I have a KML-file which uses a polygon to draw a filled area in Google Earth. In this case it is a circle. Unfortunately the altitude is ignored when displaying the file with Google Earth 7.1.7.2606 (which is the latest version to date). The KML-file itself should correspond to KML standard 2.2.
The following code reprents the full file (just the xml namespace (<kml xmlns="http://www.opengis.net/kml/2.2">) is hidden below), and when opening with GE you should see the "problem" that the altitude of 500km (=500000.00m), which is the altitude the user should see the polygon, is ignored:
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<name>orbits</name>
<open>1</open>
<Snippet>orbits</Snippet>
<Style>
<ListStyle>
<ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/sunny.png</href></ItemIcon>
</ListStyle>
</Style>
<!-- begin: Group 1, Graph 1 -->
<Folder>
<name>Group: Orbit 1</name>
<visibility>1</visibility>
<open>1</open>
<Style>
<ListStyle>
<ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/arrow-reverse.png</href></ItemIcon>
</ListStyle>
</Style>
<!-- begin: TrimLinesAndPatches -->
<Folder>
<name>TrimLinesAndPatches</name>
<open>0</open>
<Style>
<ListStyle>
<ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/target.png</href></ItemIcon>
</ListStyle>
</Style>
<Folder>
<name>Relative Patches</name>
<Style id="check-hide-children">
<ListStyle>
<listItemType>checkHideChildren</listItemType>
</ListStyle>
</Style>
<styleUrl>#check-hide-children</styleUrl>
<open>0</open>
<Style>
<ListStyle>
<ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/target.png</href></ItemIcon>
</ListStyle>
</Style>
<Placemark id="polygon">
<name>Relative Patches</name>
<TimeSpan><begin>2017-04-12T13:16:44.123Z</begin><end>2017-04-12T13:21:44.123Z</end></TimeSpan>
<visibility>1</visibility>
<Style>
<LineStyle>
<color>64FFCCFF</color>
<width>0</width>
</LineStyle>
<PolyStyle>
<color>64FFCCFF</color>
</PolyStyle>
</Style>
<MultiGeometry>
<extrude>0</extrude>
<altitudeMode>absolute</altitudeMode>
<tessellate>1</tessellate>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-12.1159516,-26.3651097,500000.00
-13.0844128,-26.4374313,500000.00
-14.0272910,-26.6524670,500000.00
-14.9194371,-27.0044676,500000.00
-15.7365727,-27.4839749,500000.00
-16.4557337,-28.0780054,500000.00
-17.0557319,-28.7703022,500000.00
-17.5176459,-29.5416541,500000.00
-17.8253587,-30.3702824,500000.00
-17.9661527,-31.2323009,500000.00
-17.9313683,-32.1022573,500000.00
-17.7171071,-32.9537663,500000.00
-17.3249379,-33.7602445,500000.00
-16.7625260,-34.4957477,500000.00
-16.0440739,-35.1359009,500000.00
-15.1904382,-35.6588849,500000.00
-14.2287935,-36.0464258,500000.00
-13.1917549,-36.2847064,500000.00
-12.1159516,-36.3651097,500000.00
-11.0401483,-36.2847064,500000.00
-10.0031097,-36.0464258,500000.00
-9.0414649,-35.6588849,500000.00
-8.1878292,-35.1359009,500000.00
-7.4693772,-34.4957477,500000.00
-6.9069653,-33.7602445,500000.00
-6.5147960,-32.9537663,500000.00
-6.3005348,-32.1022573,500000.00
-6.2657504,-31.2323009,500000.00
-6.4065445,-30.3702824,500000.00
-6.7142572,-29.5416541,500000.00
-7.1761713,-28.7703022,500000.00
-7.7761695,-28.0780054,500000.00
-8.4953305,-27.4839749,500000.00
-9.3124660,-27.0044676,500000.00
-10.2046122,-26.6524670,500000.00
-11.1474904,-26.4374313,500000.00
-12.1159516,-26.3651097,500000.00
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</MultiGeometry>
</Placemark>
</Folder>
</Folder>
<!-- end: TrimLinesAndPatches -->
</Folder>
</Document>
I tried also to "extrude" it, but also there no effect.
Is there something wrong with my file or is there a bug in GE?
The altitudeMode must be associated with the Polygon not the MultiGeometry.
Extrude and tessellate must also be child elements under the Polygon element.
The corrected KML would be this:
<MultiGeometry>
<Polygon>
<extrude>0</extrude>
<tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode> ***
<outerBoundaryIs>
<LinearRing>...</LinearRing>
</outerBoundaryIs>
</Polygon>
</MultiGeometry>
Also, if you only have a single geometry in the multiGeometry then you should discard the multiGeometry entirely and just use the Polygon.

KML file - Is there a way to completely disable description bubbles?

I have a rather simple .kml file to display a polygon on a Google Map. By default, the polygon causes the cursor to switch to a hand/pointer, and when clicked, displays an empty description bubble.
I have no description, therefore the white bubble (infowindow) is empty.
And what I want is NO bubble at all. I'd love for the hand/pointer cursor to go away as well.
I've found nothing on the web that answers this question.
Thanks!
I have added my code to my original question.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>RMAhidden.kml</name>
<Style id="poly-000000-1-76-nodesc-normal0">
<LineStyle>
<color>004b8800</color>
<width>0</width>
</LineStyle>
<PolyStyle>
<color>99359ca3</color>
</PolyStyle>
</Style>
<Style id="poly-000000-1-76-nodesc-highlight0">
<LineStyle>
<color>004b8800</color>
<width>0</width>
</LineStyle>
<PolyStyle>
<color>99359ca3</color>
</PolyStyle>
</Style>
<StyleMap id="poly-000000-1-76-nodesc1">
<Pair>
<key>normal</key>
<styleUrl>#poly-000000-1-76-nodesc-normal0</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#poly-000000-1-76-nodesc-highlight0</styleUrl>
</Pair>
</StyleMap>
<Placemark>
<styleUrl>#poly-000000-1-76-nodesc1</styleUrl>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<tessellate>1</tessellate>
<coordinates>
-104.7937775,39.87088139999999,0 -104.8653603,39.87061789999999,0 -104.8996925,39.8413634,0 -104.8979759,39.8397817,0 -104.8978043,39.836091,0 -104.8978043,39.83371830000001,0 -104.8996925,39.8317409,0 -104.9022675,39.830159,0 -104.9034691,39.8268633,0 -104.9031258,39.8127557,0 -104.9010658,39.8126238,0 -104.9000359,39.8113052,0 -104.8981476,39.8087998,0 -104.895401,39.8074811,0 -104.8916245,39.80734919999999,0 -104.8845863,39.8070855,0 -104.884511,39.812922,0 -104.8667336,39.8131513,0 -104.8667336,39.7985133,0 -104.8478508,39.7986452,0 -104.8478508,39.8004916,0 -104.8435593,39.8004916,0 -104.8437309,39.7982495,0 -104.7917175,39.7979858,0 -104.7910309,39.8611313,0 -104.7912025,39.8661383,0 -104.7937775,39.87088139999999,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
<description></description>
<ExtendedData>
<Data name="Id">
</Data>
<Data name="T_NAME">
</Data>
<Data name="T_STATUS">
</Data>
<Data name="T_R_LENGTH">
</Data>
<Data name="T_SOURCE">
</Data>
<Data name="T_BIKE">
</Data>
<Data name="FEAT_RAST">
</Data>
<Data name="Section">
</Data>
<Data name="Sect_Name">
</Data>
</ExtendedData>
</Placemark>
</Document>
</kml>
To disable the popup balloon you can add a BalloonStyle with displayMode=hide to your Style.
If <displayMode> is hide, Google Earth does not display the balloon.
<Style id="poly-000000-1-76-nodesc-normal0">
<BalloonStyle>
<displayMode>hide</displayMode> <!-- default or hide -->
</BalloonStyle>
<LineStyle>
<color>004b8800</color>
<width>0</width>
</LineStyle>
<PolyStyle>
<color>99359ca3</color>
</PolyStyle>
</Style>
Note that <BalloonStyle> and <displayMode> elements may not be supported in all JavaScript libraries if that is how you are rendering the KML

KML to geojson with ogr2ogr not copying styles

I am running the following command to convert a kml file to geojson:
$ ogr2ogr -f GeoJSON geojson.json doc.kml -nln test -append
In the KML styles look like this:
<Document id="Point" xsi:schemaLocation="http://www.opengis.net/kml/2.2 http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd http://www.google.com/kml/ext/2.2 http://code.google.com/apis/kml/schema/kml22gx.xsd">
<name>Point</name>
<Snippet maxLines="0"></Snippet>
<Style id="IconStyleOne">
<IconStyle>
<scale>0.8125</scale>
<Icon>
<href>images/one.png</href>
</Icon>
</IconStyle>
<LabelStyle>
<color>00000000</color>
<scale>0</scale>
</LabelStyle>
<PolyStyle>
<color>ff000000</color>
<outline>0</outline>
</PolyStyle>
</Style>
<Style id="IconStyleTwo">
<IconStyle>
<Icon>
<href>images/two.png</href>
</Icon>
</IconStyle>
<LabelStyle>
<color>00000000</color>
<scale>0</scale>
</LabelStyle>
<PolyStyle>
<color>ff000000</color>
<outline>0</outline>
</PolyStyle>
</Style>
And the layer looks like this:
<Folder id="FeatureLayer0">
<name>City</name>
<Snippet maxLines="0"></Snippet>
<Placemark id="ID_00000">
<name>NameOne</name>
<Snippet maxLines="0"></Snippet>
<description>Some desc</description>
<styleUrl>#IconStyleOne</styleUrl>
<Point>
<coordinates>2,2,0</coordinates>
</Point>
</Placemark>
But when I convert the style is totally lost:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Name": "NameOne",
"Description": "Some desc",
"geometry": {
"type": "Point",
"coordinates": [ 2, 2, 0.0 ]
}
}
}
Any way to get a reference to the style in the geojson?

Resources