我刚开始学习如何操作KML文件。这是一个我不知道如何克服的问题....我创建了一个多边形并添加了一个描述以显示为气球,但只要Google Earth开始工作就可以看到多边形。我想要的是从多边形出现的特定距离显示气球(例如在LookAt元素的范围距离内)。 有谁知道如何管理? 我的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" mlns: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">
<LookAt>
<longitude>17.99514610290434</longitude>
<latitude>59.36293893395309</latitude>
<altitude>0</altitude>
<range>597.51212259908</range>
<tilt>52.34415598649959</tilt>
<heading>105.3974737169693</heading>
</LookAt>
<Placemark>
<name>Stadium</name>
<description>
<![CDATA[
this is <b><i>Råsunda soccer stadium</i></b>
]]>
</description>
<gx:balloonVisibility>1</gx:balloonVisibility>
<styleUrl>#msn_ylw-pushpin</styleUrl>
<Polygon>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
17.99514610290434,59.36293893395309,100 17.99651951950199,59.36209399425741,100 17.99752330705672,59.36252751885282,100 17.99613146514916,59.36335387902954,100 17.99514610290434,59.36293893395309,100
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
</Document>
</kml>
答案 0 :(得分:1)
通常你可以跳过渲染多边形,直到你得到Region元素所定义的足够“接近”,这是通过计算给定区域何时映射到最小或最大像素数来确定的。 p>
此外,无论Region是否处于活动状态,<gx:balloonVisibility>
标记都会强制在加载KML时显示描述气球。直接在KML中添加区域仍会显示弹出气球。
要执行您想要执行的操作,您必须使用带有NetworkLink的第二个KML文件包装KML文件,其中RegionLink仅在区域处于活动状态时(即足够接近)加载秒KML,此时描述为与多边形一起显示。
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<LookAt>
<longitude>17.99514610290434</longitude>
<latitude>59.36293893395309</latitude>
<altitude>0</altitude>
<heading>105.3974737169693</heading>
<tilt>52.34415598649959</tilt>
<range>597.51212259908</range>
</LookAt>
<NetworkLink>
<Region>
<LatLonAltBox>
<north>59.363792</north>
<south>59.361556</south>
<east>17.998029</east>
<west>17.994443</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>-1</maxLodPixels>
</Lod>
</Region>
<Link>
<href>target.kml</href>
</Link>
</NetworkLink>
</Document>
</kml>
target.kml文件包含您提供的原始KML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>Stadium</name>
...
</Placemark>
</kml>
您可以通过调整 minLodPixels 值和/或区域大小来更改要素+气球显示的距离。目前,当由多边形周围的区域定义的区域在屏幕上至少为128个像素时,将显示该特征。更改为32或64和/或使区域区域更大,使其看起来更快。
注意Google地球客户端不会为您提供编辑工具,甚至不会在地图上查看区域边界框,因此调试此操作非常棘手。您可以将KML粘贴到此tool中以生成KML,从而使区域边界区域可见。这有助于更轻松地调试区域。