在 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>

解决方法是将区域置于从地标到文件夹或文档的更高级别。 效果很好。