2

我想在 Google Earth 中显示空间数据,我认为最好的方法是使用多边形。我希望多边形的高度和颜色都代表数据。高度没问题,但我不知道如何强制多边形具有恒定的颜色和/或阴影。如果我将多边形的颜色设置为蓝色 (FFFF0000),从一个方向看时它会显示为浅蓝色,但从另一个方向看它会显示为深蓝色。例如,在下面的代码中,我有两个相互成 90 度的多边形。他们两个应该是相同的颜色。但是,当在 Google 地球中查看时,它们显然具有不同的颜色(或者可能只是不同的阴影,因为它们相对于观察者的角度不同)。大概这是设计使然,但我想制作具有恒定颜色(或阴影)的多边形,与视角无关。有人知道这是否可以做到吗?

谢谢

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2">
<Document>
  <name>kml toolbox tests</name>
  <Folder>
     <name>kml.poly3</name>
     <id>kml.poly3</id>
     <Placemark id="kml_poly3tpfc275749_9c60_474d_b419_d29a903da8be">
        <name>30</name>
        <visibility>1</visibility>
        <description/>
        <Style>
           <LineStyle>
              <color>FFFFFFFF</color>
              <width>5</width>
           </LineStyle>
           <PolyStyle>
              <color>FFFF0000</color>
           </PolyStyle>
        </Style>
        <Polygon id="Polygon_kml_poly3tpfc275749_9c60_474d_b419_d29a903da8be">
           <extrude>0</extrude>
           <tesselate>1</tesselate>
           <altitudeMode>relativeToGround</altitudeMode>
           <outerBoundaryIs>
              <LinearRing id="LinearRing_kml_poly3tpfc275749_9c60_474d_b419_d29a903da8be">
                 <coordinates>-111.98,40.6,0 
-111.97,40.6,0 
-111.97,40.6,1500 
-111.99,40.6,1500 
-111.99,40.6,0 </coordinates>
              </LinearRing>
           </outerBoundaryIs>
        </Polygon>
     </Placemark>
     <Placemark id="kml_poly3tpb12d0de1_b554_45ed_b9fd_63d120582f23">
        <name>31</name>
        <visibility>1</visibility>
        <description/>
        <Style>
           <LineStyle>
              <color>FFFFFFFF</color>
              <width>5</width>
           </LineStyle>
           <PolyStyle>
              <color>FFFF0000</color>
           </PolyStyle>
        </Style>
        <Polygon id="Polygon_kml_poly3tpb12d0de1_b554_45ed_b9fd_63d120582f23">
           <extrude>0</extrude>
           <tesselate>1</tesselate>
           <altitudeMode>relativeToGround</altitudeMode>
           <outerBoundaryIs>
              <LinearRing id="LinearRing_kml_poly3tpb12d0de1_b554_45ed_b9fd_63d120582f23">
                 <coordinates>-111.97,40.6,0 
-111.97,40.62,0 
-111.97,40.62,2000 
-111.97,40.6,2000 
-111.97,40.6,0 </coordinates>
              </LinearRing>
           </outerBoundaryIs>
        </Polygon>
     </Placemark>
<Camera id="ID">
  <TimePrimitive>...</TimePrimitive>
  <gx:ViewerOptions>
    <option> name="camera" type="boolean"></option>
  </gx:ViewerOptions>
  <longitude>-111.94</longitude>            <!-- kml:angle180 -->
  <latitude>40.53</latitude>              <!-- kml:angle90 -->
  <altitude>7500</altitude>              <!-- double -->
  <heading>340</heading>                <!-- kml:angle360 -->
  <tilt>60</tilt>                      <!-- kml:anglepos180 -->
  <roll>0</roll>                      <!-- kml:angle180 -->
  <altitudeMode>absolute</altitudeMode>
</Camera>
</Folder>
</Document>
</kml>
4

2 回答 2

0

这种多边形着色问题在 Google 地球的较新版本中更为严重。在最近的版本中,添加了一条评论,说现在只渲染多边形的一侧,所以我的下一步是用相反的点顺序旋转将多边形背靠背放置。这样,从太阳角度方向观察到的所有多边形至少可以一直保持阴影。

于 2014-04-04T05:45:11.600 回答
0

KML 标准以及 Google 地球不允许您指定高级渲染选项,例如阴影选项。当前的Google 地球 KML 扩展不允许更改此设置,并且设置稍微透明的颜色也没有效果。

如果视角和多边形的面相互垂直,则颜色最大,但当角度倾斜且角度接近 0 度时,颜色会变黑。在低于 5-10 度时,颜色几乎是全黑的。

只有当多边形在地面上并且视图是直下时才能获得统一的颜色。这允许您创建热图可视化

要请求新功能,您可以尝试以下步骤:

  1. 点击“帮助”菜单下的“发送反馈”,并填写一份对 Google 的详细回复。
  2. 在Google 地球论坛中开始讨论该功能。
  3. 通过https://code.google.com/p/earth-issues/issues/list提交功能请求
于 2014-02-10T23:34:37.060 回答