如何解决如何在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 举报,一经查实,本站将立刻删除。