在 GE 的 kml 文件上使用区域时不显示线标签
Line label not displayed when using Region on kml file for GE
我有一个基于 Google Earth developer website and by this link 提供的教程的 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">
<Document>
<name>KmlFile</name>
<Placemark>
<name>SFO to LAX</name>
<Style id="line_label">
<LabelStyle>
<scale>10</scale>
</LabelStyle>
<LineStyle>
<color>ff00ffff</color>
<width>5</width>
<gx:labelVisibility>1</gx:labelVisibility>
</LineStyle>
</Style>
<LineString>
<tessellate>1</tessellate>
<coordinates>
-118.40897,33.943492,0 -122.383103,37.617112,0
</coordinates>
</LineString>
<Region>
<LatLonAltBox>
<north>37.617112</north>
<south>33.943492</south>
<east>-118.40897</east>
<west>-122.383103</west>
<minAltitude>0</minAltitude>
<maxAltitude>200000</maxAltitude>
<altitudeMode>clampToGround</altitudeMode>
</LatLonAltBox>
<Lod>
<minLodPixels>1024</minLodPixels>
<minFadeExtent>1024</minFadeExtent>
</Lod>
</Region>
</Placemark>
<Placemark>
<name>BOH to MAH</name>
<Style id="line_label">
<LabelStyle>
<scale>1.3</scale>
</LabelStyle>
<LineStyle>
<color>ff00ffff</color>
<width>5</width>
<gx:labelVisibility>1</gx:labelVisibility>
</LineStyle>
</Style>
<LineString>
<tessellate>1</tessellate>
<coordinates>
-117.40897,34.943492,0 -121.383103,38.617112,0
</coordinates>
</LineString>
</Placemark>
</Document>
</kml>
你能建议我实现目标的方法吗?
显然,当功能激活时,将区域添加到地标并不能正确启用线条样式中的 labelVisibility mode。这是 Google 地球中的错误。 LabelVisibility 仅在您不使用区域时有效。
您可以解决这个问题,方法是在 MultiGeometry 中添加一个点到地标以激活区域。有了点就可以显示标签,标签就显示在点所在的位置。
<Placemark>
<name>SFO to LAX</name>
<Style>
<IconStyle>
<Icon/>
</IconStyle>
<LabelStyle>
<scale>1.3</scale>
</LabelStyle>
<LineStyle>
<color>ff00ffff</color>
<width>5</width>
<gx:labelVisibility>1</gx:labelVisibility>
</LineStyle>
</Style>
<Region>
...
</Region>
<MultiGeometry>
<Point>
<coordinates>-119.884604,35.349412</coordinates>
</Point>
<LineString>
<tessellate>1</tessellate>
<coordinates>
-118.40897,33.943492 -122.383103,37.617112
</coordinates>
</LineString>
</MultiGeometry>
</Placemark>
解决方法是将区域置于从地标到文件夹或文档的更高级别。
效果很好。
我有一个基于 Google Earth developer website and by this link 提供的教程的 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">
<Document>
<name>KmlFile</name>
<Placemark>
<name>SFO to LAX</name>
<Style id="line_label">
<LabelStyle>
<scale>10</scale>
</LabelStyle>
<LineStyle>
<color>ff00ffff</color>
<width>5</width>
<gx:labelVisibility>1</gx:labelVisibility>
</LineStyle>
</Style>
<LineString>
<tessellate>1</tessellate>
<coordinates>
-118.40897,33.943492,0 -122.383103,37.617112,0
</coordinates>
</LineString>
<Region>
<LatLonAltBox>
<north>37.617112</north>
<south>33.943492</south>
<east>-118.40897</east>
<west>-122.383103</west>
<minAltitude>0</minAltitude>
<maxAltitude>200000</maxAltitude>
<altitudeMode>clampToGround</altitudeMode>
</LatLonAltBox>
<Lod>
<minLodPixels>1024</minLodPixels>
<minFadeExtent>1024</minFadeExtent>
</Lod>
</Region>
</Placemark>
<Placemark>
<name>BOH to MAH</name>
<Style id="line_label">
<LabelStyle>
<scale>1.3</scale>
</LabelStyle>
<LineStyle>
<color>ff00ffff</color>
<width>5</width>
<gx:labelVisibility>1</gx:labelVisibility>
</LineStyle>
</Style>
<LineString>
<tessellate>1</tessellate>
<coordinates>
-117.40897,34.943492,0 -121.383103,38.617112,0
</coordinates>
</LineString>
</Placemark>
</Document>
</kml>
你能建议我实现目标的方法吗?
显然,当功能激活时,将区域添加到地标并不能正确启用线条样式中的 labelVisibility mode。这是 Google 地球中的错误。 LabelVisibility 仅在您不使用区域时有效。
您可以解决这个问题,方法是在 MultiGeometry 中添加一个点到地标以激活区域。有了点就可以显示标签,标签就显示在点所在的位置。
<Placemark>
<name>SFO to LAX</name>
<Style>
<IconStyle>
<Icon/>
</IconStyle>
<LabelStyle>
<scale>1.3</scale>
</LabelStyle>
<LineStyle>
<color>ff00ffff</color>
<width>5</width>
<gx:labelVisibility>1</gx:labelVisibility>
</LineStyle>
</Style>
<Region>
...
</Region>
<MultiGeometry>
<Point>
<coordinates>-119.884604,35.349412</coordinates>
</Point>
<LineString>
<tessellate>1</tessellate>
<coordinates>
-118.40897,33.943492 -122.383103,37.617112
</coordinates>
</LineString>
</MultiGeometry>
</Placemark>
解决方法是将区域置于从地标到文件夹或文档的更高级别。 效果很好。