KML 中的路径遵循赤道而不是坐标
Path in KML follows equator instead of coordinates
我想在 Google 地球上展示一条路径。
下面的 KML 生成一条在东经 28 度 45 分和西经 81 度 52 分之间的赤道路径。
我没有看到 KML 可能存在的明显问题。有人可以就这个问题给我建议吗?
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Paths</name>
<Style id="transPurpleLineGreenPoly">
<LineStyle>
<color>7f00ff00</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>7f00ff00</color>
</PolyStyle>
</Style>
<Placemark>
<visibility>1</visibility>
<description>Path from Chile to Florida</description>
<styleUrl>#transPurpleLineGreenPoly</styleUrl>
<LineString>
<tessellate>1</tessellate>
<altitudeMode>clampToGround</altitudeMode>
<coordinates>
-70.900, -27.117, 0
-72.800, -29.600, 0
-80.000, -20.000, 0
-80.000, -10.000, 0
-80.200, -7.300, 0
-81.900, -5.250, 0
-81.250, -3.000, 0
-81.800, -0.900, 0
-80.000, 7.000, 0
-79.453, 8.781, 0
-79.521, 8.888, 0
-79.559, 8.938, 0
-79.569, 8.950, 0
-79.585, 8.990, 0
-79.591, 8.996, 0
-79.599, 9.004, 0
-79.604, 9.010, 0
-79.619, 9.023, 0
-79.643, 9.038, 0
-79.656, 9.056, 0
-79.672, 9.069, 0
-79.691, 9.107, 0
-79.703, 9.115, 0
-79.717, 9.118, 0
-79.750, 9.121, 0
-79.768, 9.112, 0
-79.806, 9.120, 0
-79.815, 9.161, 0
-79.844, 9.182, 0
-79.850, 9.183, 0
-79.862, 9.181, 0
-79.874, 9.182, 0
-79.924, 9.211, 0
-79.924, 9.256, 0
-79.924, 9.267, 0
-79.921, 9.285, 0
-79.919, 9.302, 0
-79.919, 9.327, 0
-79.919, 9.349, 0
-79.919, 9.366, 0
-79.919, 9.379, 0
-79.919, 9.390, 0
-80.008, 9.474, 0
-75.000, 18.500, 0
-73.673, 20.340, 0
-75.516, 21.986, 0
-76.767, 23.657, 0
-77.500, 24.900, 0
-79.341, 26.743, 0
-79.889, 26.794, 0
-79.987, 27.193, 0
-80.058, 27.476, 0
-80.128, 27.604, 0
-80.269, 27.939, 0
-80.452, 28.414, 0
-80.508, 28.659, 0
-80.589, 28.744, 0
</coordinates>
</LineString>
</Placemark>
</Document>
</kml>
这是一个常见错误。 KML 在 {longitude,latitude,altitude} 元组中不能有空格,否则会导致每个值都被解释为缺少纬度和高度值的经度。 KML 规范在其定义上是严格的,并且使用空格来分隔每个元组。 KML Reference 表示 "do not include spaces within a tuple"。
KML 是这样描述的:
<coordinates>
-70.900, -27.117, 0
-72.800, -29.600, 0
...
</coordinates>
空白实际上描绘了坐标元组,因此“-70.900”成为一个元组,其中经度为 -70,纬度为 0,海拔高度为 0。所有点都将分配纬度 0 并显示为一条线赤道。此 "line" 被解释为:
<coordinates>
-70.900,0,0
-27.117,0,0
0,0,0
-72.8,0,0
-29.6,0,0
0,0,0
...
</coordinates>
此问题在 KML Errata 中有更详细的描述。
要修复,需要去除每组坐标内的空白:
<coordinates>
-70.900,-27.117,0
-72.800,-29.600,0
...
</coordinates>
我想在 Google 地球上展示一条路径。
下面的 KML 生成一条在东经 28 度 45 分和西经 81 度 52 分之间的赤道路径。
我没有看到 KML 可能存在的明显问题。有人可以就这个问题给我建议吗?
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Paths</name>
<Style id="transPurpleLineGreenPoly">
<LineStyle>
<color>7f00ff00</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>7f00ff00</color>
</PolyStyle>
</Style>
<Placemark>
<visibility>1</visibility>
<description>Path from Chile to Florida</description>
<styleUrl>#transPurpleLineGreenPoly</styleUrl>
<LineString>
<tessellate>1</tessellate>
<altitudeMode>clampToGround</altitudeMode>
<coordinates>
-70.900, -27.117, 0
-72.800, -29.600, 0
-80.000, -20.000, 0
-80.000, -10.000, 0
-80.200, -7.300, 0
-81.900, -5.250, 0
-81.250, -3.000, 0
-81.800, -0.900, 0
-80.000, 7.000, 0
-79.453, 8.781, 0
-79.521, 8.888, 0
-79.559, 8.938, 0
-79.569, 8.950, 0
-79.585, 8.990, 0
-79.591, 8.996, 0
-79.599, 9.004, 0
-79.604, 9.010, 0
-79.619, 9.023, 0
-79.643, 9.038, 0
-79.656, 9.056, 0
-79.672, 9.069, 0
-79.691, 9.107, 0
-79.703, 9.115, 0
-79.717, 9.118, 0
-79.750, 9.121, 0
-79.768, 9.112, 0
-79.806, 9.120, 0
-79.815, 9.161, 0
-79.844, 9.182, 0
-79.850, 9.183, 0
-79.862, 9.181, 0
-79.874, 9.182, 0
-79.924, 9.211, 0
-79.924, 9.256, 0
-79.924, 9.267, 0
-79.921, 9.285, 0
-79.919, 9.302, 0
-79.919, 9.327, 0
-79.919, 9.349, 0
-79.919, 9.366, 0
-79.919, 9.379, 0
-79.919, 9.390, 0
-80.008, 9.474, 0
-75.000, 18.500, 0
-73.673, 20.340, 0
-75.516, 21.986, 0
-76.767, 23.657, 0
-77.500, 24.900, 0
-79.341, 26.743, 0
-79.889, 26.794, 0
-79.987, 27.193, 0
-80.058, 27.476, 0
-80.128, 27.604, 0
-80.269, 27.939, 0
-80.452, 28.414, 0
-80.508, 28.659, 0
-80.589, 28.744, 0
</coordinates>
</LineString>
</Placemark>
</Document>
</kml>
这是一个常见错误。 KML 在 {longitude,latitude,altitude} 元组中不能有空格,否则会导致每个值都被解释为缺少纬度和高度值的经度。 KML 规范在其定义上是严格的,并且使用空格来分隔每个元组。 KML Reference 表示 "do not include spaces within a tuple"。
KML 是这样描述的:
<coordinates>
-70.900, -27.117, 0
-72.800, -29.600, 0
...
</coordinates>
空白实际上描绘了坐标元组,因此“-70.900”成为一个元组,其中经度为 -70,纬度为 0,海拔高度为 0。所有点都将分配纬度 0 并显示为一条线赤道。此 "line" 被解释为:
<coordinates>
-70.900,0,0
-27.117,0,0
0,0,0
-72.8,0,0
-29.6,0,0
0,0,0
...
</coordinates>
此问题在 KML Errata 中有更详细的描述。
要修复,需要去除每组坐标内的空白:
<coordinates>
-70.900,-27.117,0
-72.800,-29.600,0
...
</coordinates>