首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以编程方式在KML中创建向量箭头

以编程方式在KML中创建向量箭头
EN

Stack Overflow用户
提问于 2009-07-24 17:11:43
回答 1查看 5K关注 0票数 6

有没有人有在KML中以编程方式绘制图标作为向量的实际示例?具体来说,我有在给定坐标下具有大小和方位的数据,我希望根据这些值生成图标(或另一个图形元素)。

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

  1. 图像目录(一种蛮力方式):制作一个包含360个不同图像文件(可能是批量旋转单个图像)的图像指示符,每个图像指向一个协同的方位角。我见过"Excel to KML“之类的东西,但我正在寻找可以在程序中使用的代码,而不是web实用程序。问题:箭头不包含大小上下文,因此必须是一个标签。我宁愿动态地加长箭头。
  2. 在KML中创建线:也许创建一个公式,在坐标点上创建一条与原点成正比的直线,并根据方位角成角。然后还有两条线,从前一条线的末端延伸30度左右,形成箭头头。发布:不是单独的图像图标,所以不确定它在KML中如何工作。也不确定生成这个算法有多容易。
  3. 单独的图像生成:可能创建一个使用imagemagick或类似的方法动态生成与上述方法类似的.png文件的文件,然后使用URI 链接到图标问题:还存在实际编写图像生成算法的问题。

所以,问题:还有其他人想出了程序向量(而不仅仅是箭头)生成的解决方案吗?

EN

Stack Overflow用户

发布于 2010-03-31 20:28:57

我见过(在Fortran!)使用选项1的变体,但只使用箭头的一个图像,并使用KML IconStyle元素设置大小和方向。

诀窍是首先将矢量从任何格式转换为标题(从北向顺时针方向,所以在0到360度之间),并将矢量长度转换为刻度因子(十进制浮点数)。您还需要给每个向量一个唯一的名称。然后,对于每个向量创建一个KML块,例如对于向量"my-vector-1“,其刻度为1.8,标题为90.0 (即东方):

代码语言:javascript
运行
复制
<IconStyle id="my-vector-1">
    <scale>1.8</scale>
    <heading>90.0</heading>
    <Icon>
        <href>/path/to/arrow.png</href>
    </Icon> 
</IconStyle>

然后将向量放在地图上引用IconStyle:

代码语言:javascript
运行
复制
<Placemark>
  <styleUrl>#my-vector-1</styleUrl>
  <Point>
     <coordinates>-10.5,10.8</coordinates>
  </Point>

把所有这些都包起来:

代码语言:javascript
运行
复制
<kml><Document> ... </Document></kml> 

你应该展示一堆矢量。要使缩放因子正确可能需要一些实验(并将取决于箭头图像的大小),但是这种方法应该比加载许多不同的图像要快得多。如果有什么帮助的话,我可能会挖出Fortran来做这个.

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1178951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档