我想在Google地球中显示空间数据,我认为最好的方法是使用多边形。我既喜欢多边形的高度,也喜欢它的颜色来表示数据。高度没问题,但我无法弄清楚如何强制多边形具有恒定的颜色和/或阴影。如果我将多边形的颜色设置为蓝色(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>
答案 0 :(得分:0)
KML标准以及Google地球不允许您指定高级渲染选项,例如着色选项。当前Google Earth KML extensions不允许更改此选项,设置稍微透明的颜色也无效。
如果视角和多边形的面相互垂直,则颜色最大,但当角度倾斜并且角度接近0度时,颜色会变黑。在低于5-10度时,颜色几乎完全变黑。
如果多边形在地面上并且视图正向下看,则只能获得均匀着色。这允许您创建heat map visualizations。
要申请新功能,您可以尝试以下步骤:
答案 1 :(得分:0)
在更新版本的Google地球中,此多边形着色问题更加严重。在最近的版本中添加了一条注释,表示现在只渲染多边形的一面,所以我的下一步是将多边形背靠背放置,并进行相反的点顺序旋转。这样,从太阳角方向观察的所有多边形都可以至少显示为阴影。