忽略地标查看范围
Placemarks lookat range ignored
我正在使用这个 KML 文件(我们称之为 load.kml)
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<NetworkLink>
<refreshVisibility>1</refreshVisibility>
<flyToView>1</flyToView>
<Link> <href>C:\Users\bridenstinek\workspace\AlertServlet\resources\outboundKML\test.kml</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>20</refreshInterval>
</Link>
</NetworkLink>
</Document>
</kml>
将 Google Earth 指向一个 kml 文件(我们称之为 test.kml)。当我定期加载 test.kml(不使用 load.kml)时,我设置的范围正常工作(缩放级别是我设置的方式)。
但是当使用 load.kml 加载 test.kml 时,范围不正确。地标放大得非常远,忽略了我在 test.kml 文件中设置的范围。
load.kml 内是否有覆盖范围的内容?
test.kml的例子:
<?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" xmlns:location="http://example.com">
<Document>
<name>Example</name>
<Style id="alertKMLStyle">
<BalloonStyle>
<text><![CDATA[<center>
<b><font color="#CC0000" size="+8">$[name]</font></b>
<br/></center><br/>
<font size="+2">$[description]</font>
<br/><br/>
]]></text>
</BalloonStyle>
</Style>
<Placemark>
<name>Example Name</name>
<description>Example Description</description>
<LookAt>
<location:coordinates>800</location:coordinates>
<longitude>2.294</longitude>
<latitude>48.858</latitude>
<altitude>0.5</altitude>
<heading>12.23742976490019</heading>
<tilt>0</tilt>
<range>115718.4889366544</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#alertKMLStyle</styleUrl>
<gx:balloonVisibility>1</gx:balloonVisibility>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>2.294,48.858,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
直接加载 KML 与通过 NetworkLink 加载时存在一些未记录的差异。
当您通过 NetworLink 加载 KML 时,它会在最外层元素(即 test.kml 文件中的文档)中查找 LookAt 或 Camera。
您可以 1) copy/move <LookAt>
从地标到 test.kml 中的父文档元素或 2) 复制 <LookAt>
并插入 NetworkLink在 load.kml 中并使 flyToView=0.
如果目标 KML 具有时间戳,则通过网络链接的行为与直接加载它不同。见相关 issue.
我正在使用这个 KML 文件(我们称之为 load.kml)
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<NetworkLink>
<refreshVisibility>1</refreshVisibility>
<flyToView>1</flyToView>
<Link> <href>C:\Users\bridenstinek\workspace\AlertServlet\resources\outboundKML\test.kml</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>20</refreshInterval>
</Link>
</NetworkLink>
</Document>
</kml>
将 Google Earth 指向一个 kml 文件(我们称之为 test.kml)。当我定期加载 test.kml(不使用 load.kml)时,我设置的范围正常工作(缩放级别是我设置的方式)。
但是当使用 load.kml 加载 test.kml 时,范围不正确。地标放大得非常远,忽略了我在 test.kml 文件中设置的范围。
load.kml 内是否有覆盖范围的内容?
test.kml的例子:
<?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" xmlns:location="http://example.com">
<Document>
<name>Example</name>
<Style id="alertKMLStyle">
<BalloonStyle>
<text><![CDATA[<center>
<b><font color="#CC0000" size="+8">$[name]</font></b>
<br/></center><br/>
<font size="+2">$[description]</font>
<br/><br/>
]]></text>
</BalloonStyle>
</Style>
<Placemark>
<name>Example Name</name>
<description>Example Description</description>
<LookAt>
<location:coordinates>800</location:coordinates>
<longitude>2.294</longitude>
<latitude>48.858</latitude>
<altitude>0.5</altitude>
<heading>12.23742976490019</heading>
<tilt>0</tilt>
<range>115718.4889366544</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#alertKMLStyle</styleUrl>
<gx:balloonVisibility>1</gx:balloonVisibility>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>2.294,48.858,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
直接加载 KML 与通过 NetworkLink 加载时存在一些未记录的差异。
当您通过 NetworLink 加载 KML 时,它会在最外层元素(即 test.kml 文件中的文档)中查找 LookAt 或 Camera。
您可以 1) copy/move <LookAt>
从地标到 test.kml 中的父文档元素或 2) 复制 <LookAt>
并插入 NetworkLink在 load.kml 中并使 flyToView=0.
如果目标 KML 具有时间戳,则通过网络链接的行为与直接加载它不同。见相关 issue.