如何在python3 simplekml中为一个点添加高度?

如何解决如何在python3 simplekml中为一个点添加高度?

我试图在大约 1000m 处为飞机绘制一个点。文档说我可以在坐标之后添加它,但它不起作用。我正在使用 Jupyter,但这是我的代码。当我在坐标后不添加任何数据时,它会将点放在地面上。当我在坐标后添加高度时,它的作用相同。它似乎没有改变任何东西。

import simplekml
import csv
import pandas

csv_dir = 'C:\Data\Merg_Convert\Output'
csv_in = csv_dir + '\\' + 'Consol.csv'

colnames = ['Time','Freq','ATTN','RSSI','AZ','PlatLat','PlatLon','SourceLat','SourceLon','CellipMaj','CellipMin','CellipTilt','Comments','EndLat','EndLong']
ROUND = 4

data = pandas.read_csv(csv_in,names=colnames)
freqs = data.Freq.tolist()
freqs.pop(0)
[float(i) for i in freqs]
round_ = [round(float(num),ROUND) for num in freqs]
res = [] 
[res.append(x) for x in round_ if x not in res] 
print('Done') #This kicks back a warning but not sure how to stop it. 

def build_kml(freq):
    kml=simplekml.Kml()
    kml_out = csv_dir + '\\KML\\' + str(freq) + '.kml'
    inputfile = csv.reader(open(csv_in,'r'))
    for row in inputfile:
        if row[1] != 'Freq(MHz)':
            rnd_ = round(float(row[1]),ROUND)
            if rnd_ == freq:
                if row[8] != '':
                    kml.newpoint(name=row[1],coords=[(row[8],row[7])])

                pnt = kml.newpoint()
                pnt.coords = [(row[6],row[5],1000.0)] #This is the issue
                pnt.style.iconstyle.icon.href = 'http://maps.google.com/mapfiles/kml/shapes/airports.png'

                ls = kml.newlinestring(name=row[1])
                ls.coords = [(row[6],5000),(row[14],row[13],0)]

                ls.altitudemode = simplekml.AltitudeMode.relativetoground
                ls.style.linestyle.width = 1
                ls.style.linestyle.color = simplekml.Color.blue

    kml.save(kml_out)

for f in res:
    build_kml(f)

这是我的数据示例。

['Time','Freq(MHz)','ATTN(dB)','RSSI(dBm)','AZ(deg)','CellipMaj(m)','CellipMin(m)','CellipTilt(deg)','EndLong']
['2020-02-20 08:40:26Z','190.591','18','-67.4','53','32.814603','66.015223','32.815613','66.016815','125','111.5','-48.7','Point1','33.298794','66.787735']
['2020-02-20 08:40:27Z','Point2','66.787735']
['2020-02-20 08:40:28Z','-66.4','54.8','32.814967','66.015294','32.815797','66.016694','107.7','-52.8','Point3','33.278522','66.805527']
['2020-02-20 08:40:29Z','-66.9','58.7','32.815151','66.015326','32.815909','66.016809','122.6','65.7','Point4','33.232468','66.841217']

解决方法

我知道这是一个老问题....但以防万一....我认为您需要将高度模式添加到这一点。您只对此处显示的线串进行了操作。 即 pnt.altitudemode = simplekml.AltitudeMode.relativetoground

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?