KML 运动线方向

Posted

技术标签:

【中文标题】KML 运动线方向【英文标题】:KML Direction of Movement Line 【发布时间】:2017-05-12 07:26:50 【问题描述】:

我一直在与 NASA WorldWind 和 Google Earth 合作。我使用 KML placemark 作为图标,我希望在 KML 中复制标题/引线。我想要一个类似于 DIRECTION_OF_MOVEMENT 线在 WorldWind 中的工作方式的引导线,因为它在 2525 符号系统上实现。基本上,这条线表示对象正在移动的方向,并且无论地图的方向如何,它都会保持指向该方向,如所附屏幕截图中的黑线所示。如何在 Google 地球中使用 KML 进行复制?

【问题讨论】:

【参考方案1】:

抱歉,我无法在 cmets 中要求澄清(我没有足够的声誉)。我假设您正在寻找一种输入标题并让 Google 地球自动指向该方向的方法,因为目前要绘制该线,您必须计算要放下的每条标题线的开始和结束坐标.

如果是这样,我发现唯一允许我指定标题的地方是 IconStyle。我就是这样做的:

    创建一个图标,描绘您的航向线向上,将其旋转 0 度指向北,例如一条垂直线(使用图标可以在您在 Google 地球上放大和缩小时进行缩放) 使用 Style 和 IconStyle 来使用步骤 1 中的图标。 在地标中使用样式,并添加其他样式来设置标题。

下面是一个示例实现:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<kml xmlns="http://earth.google.com/kml/2.1">
    <Document>
        <Style id="headingexample">
            <IconStyle>
                <scale>1</scale>
                <Icon>
                    <href>http://freevector.co/wp-content/uploads/2013/11/1625-vertical-line3.png</href>
                </Icon>
            </IconStyle>
        </Style>
        <Placemark>
            <styleUrl>#headingexample</styleUrl>
            <Style>
                <IconStyle>
                    <heading>135</heading>
                </IconStyle>
            </Style>
            <Point>
                <coordinates>-99.21,40.01</coordinates>
            </Point>
        </Placemark>
    </Document>
</kml>

【讨论】:

正是我想要的。谢谢! 请在接受之前检查它是否有效,我都是凭记忆完成的 :) 如果标题在内联样式的 IconStyle 标记中不起作用,您可能需要将其移回原来的样式定义,在工作流程方面稍微麻烦一些,但仍然比手动计算端点好。 @dubdubdubdot 嘿伙计们,不确定这是否同样有效。它的移动很有趣,具体取决于您倾斜它的方式。看:NASA:i.imgur.com/1inWyy4.gif - 和谷歌(安德鲁的解决方案):i.imgur.com/Np1vZ4e.gif 好点。这令人沮丧。就我而言,自上而下的视图是最重要的,但侧视图的倾斜并不理想。 @dubdubdubdot 我在我的答案中添加了一个将地标图标与一条线相结合的结果的 GIF,你能检查一下并告诉我你的印象吗?【参考方案2】:

将自定义浮动地标与 3D 轨迹结合使用会怎样?

See it working.

See the NASA Worldwind reference.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<kml xmlns="http://earth.google.com/kml/2.1">
    <Document>

        <!-- Icon -->
        <Style id="tactical_symbol_placemark">
            <IconStyle>
                <scale>4</scale>
                <Icon>
                    <href>http://i.imgur.com/EEhQcPj.png</href>
                </Icon>
            </IconStyle>
        </Style>
        <Placemark>
            <styleUrl>#tactical_symbol_placemark</styleUrl>
            <Point>
                <altitudeMode>relativeToGround</altitudeMode>
                <coordinates>-114.19327,51.4292695,6000</coordinates>
            </Point>
        </Placemark>

        <!-- Line -->
        <Style id="track_line">
            <LineStyle>
                <color>FF000000</color>
                <width>5.0</width>
            </LineStyle>
        </Style>
        <Folder>
            <name>tactical_symbols</name>
            <Placemark>
                <name>testing-Placemark-2</name>
                <styleUrl>#track_line</styleUrl>
                <LineString>
                    <extrude>false</extrude>
                    <altitudeMode>relativeToGround</altitudeMode>
                    <coordinates>-114.19827,51.279256,6000 -114.18827,51.579283,6000</coordinates>
                </LineString>
            </Placemark>
        </Folder>
    </Document>
</kml>

【讨论】:

这有点像我想要的,只是我希望这条线指向轨道前进的方向(例如距离北极 135 度) 是的,就像 WorldWind 屏幕截图中所示的那样,但有一条引导线。

以上是关于KML 运动线方向的主要内容,如果未能解决你的问题,请参考以下文章

利用Global Mapper实现kml转换dwg文件。投影如何设置,请教。

如何区分方向键运动和操纵杆运动?

统一。如何使玩家转向运动方向

使用 OpenCV 比较连续帧以确定运动方向

UNITY怎么让粒子朝向发射方向运动

如何在 Flutter 中检测设备运动方向?