Joh*_*tta 6 algorithm vector kml
有没有人有任何以编程方式将图标绘制为KML中的矢量的实际示例?具体来说,我在给定坐标处具有幅度和方位角的数据,并且我希望基于这些值生成图标(或其他图形元素).
关于如何处理它的一些想法:
图像目录(强力方式):制作360个不同图像文件的图像控制器(可能批量旋转单个图像),每个图像文件指向相应的方位角.我见过像" Excel to KML " 这样的东西,但我正在寻找可以在程序中使用的代码,而不是Web实用程序.问题:箭头不包含幅度上下文,因此必须是标签.我宁愿动态地拉长箭头.
在KML中创建线:也许创建一个公式,在坐标点处创建一条原点线,线的长度与大小成比例,并根据方位角成角度.然后会有两条线,可能是30度左右,从前一条线的末端延伸出来以形成箭头.问题:不是单独的图像图标,因此不确定它在KML中的工作方式.还不确定生成此算法有多容易.
单独的图像生成:也许创建一个使用imagemagick或类似的PHP文件以类似于上面的方法动态生成.png文件,然后使用URI"domain.tld/imagegen.php?magnitude =链接到图标magvalue&方位角= azmvalue".问题:仍然存在实际编写图像生成算法的问题.
所以,问题是:有没有其他人提出程序化矢量(而不仅仅是箭头)生成的解决方案?
我已经看到(在 Fortran 中!)使用选项 1的变体完成此操作,但仅使用一张箭头图像并使用 KML IconStyle 元素设置大小和方向。
诀窍是首先将矢量从任何格式转换为标题(以北顺时针角度为单位,因此在 0 到 360 度之间),并将矢量长度转换为比例因子(十进制浮点数)。您还需要为每个向量指定一个唯一的名称。然后为每个向量创建一个 KML 块,假设向量“my-vector-1”的比例为 1.8,航向为 90.0(即东):
<IconStyle id="my-vector-1">
<scale>1.8</scale>
<heading>90.0</heading>
<Icon>
<href>/path/to/arrow.png</href>
</Icon>
</IconStyle>
Run Code Online (Sandbox Code Playgroud)
然后将矢量放置在地图上,引用 IconStyle:
<Placemark>
<styleUrl>#my-vector-1</styleUrl>
<Point>
<coordinates>-10.5,10.8</coordinates>
</Point>
Run Code Online (Sandbox Code Playgroud)
将所有内容概括为:
<kml><Document> ... </Document></kml>
Run Code Online (Sandbox Code Playgroud)
你应该显示一堆向量。获得正确的比例因子可能需要一些实验(并且取决于箭头图像的大小),但这种方法应该比加载大量不同的图像快得多。如果有任何帮助的话,我可能会挖出 Fortran 来做到这一点......