gpt4 book ai didi

algorithm - 以编程方式在 KML 中创建矢量箭头

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:42:43 24 4
gpt4 key购买 nike

有没有人有在 KML 中以编程方式将图标绘制为矢量的任何实际示例?具体来说,我有给定坐标处的幅度和方位角数据,我希望根据这些值生成图标(或其他图形元素)。

关于我可能如何处理它的一些想法:

  1. 图像目录(一种强力方式):制作一个包含 360 个不同图像文件(可能是批量旋转单个图像)的图像目录,每个图像文件都指向一个对应的方位角。我见过类似“Excel to KML”的东西,但我正在寻找可以在程序中使用的代码,而不是 Web 实用程序。 问题:箭头不包含幅度上下文,因此它必须是一个标签。我宁愿动态地加长箭头。

  2. KML 中的线创建:也许创建一个公式,以坐标点为原点创建线,线的长度与星等成正比,角度根据方位角.然后还会有两条线,从前一条线的末端延伸大约 30 度,以构成箭头。 问题:不是单独的图像图标,因此不确定它在 KML 中的工作方式。也不确定生成此算法有多容易。

  3. 单独生成图片:也许创建一个PHP文件,使用imagemagick或类似的东西以与上述类似的方法动态生成.png文件,然后使用链接到图标URI“domain.tld/imagegen.php?magnitude=magvalue&azimuth=azmvalue”。 问题:在实际编写图像生成算法时仍然存在问题。

那么,问题:有没有其他人想出程序化矢量(而不仅仅是箭头)生成的解决方案?

最佳答案

我已经看到(在 Fortran 中!)使用选项 1 的变体完成此操作,但仅使用一个箭头图像并使用 KML IconStyle 元素设置大小和方向。

诀窍是首先将您的向量从您拥有的任何格式转换为标题(以从北顺时针旋转的度数为单位,因此介于 0 和 360 度之间),并将向量长度转换为比例因子(十进制 float )。您还需要为每个向量指定一个唯一的名称。然后为每个矢量创建一个 KML block ,比如矢量“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>

然后将矢量放置在 map 上并引用 IconStyle:

<Placemark>
<styleUrl>#my-vector-1</styleUrl>
<Point>
<coordinates>-10.5,10.8</coordinates>
</Point>

将所有内容总结为:

<kml><Document> ... </Document></kml> 

你应该显示一堆矢量。获得正确的比例因子可能需要一些实验(并且将取决于箭头图像的大小),但这种方法应该比加载大量不同的图像快得多。如果有任何帮助,我可能会挖出 Fortran 语言来执行此操作...

关于algorithm - 以编程方式在 KML 中创建矢量箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1178951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com