Python df lat long in for循环
我想将代码更改为for循环,以便可以更改每个点的样式 以下代码在没有for循环的情况下运行良好:Python df lat long in for循环,python,pandas,dataframe,for-loop,simplekml,Python,Pandas,Dataframe,For Loop,Simplekml,我想将代码更改为for循环,以便可以更改每个点的样式 以下代码在没有for循环的情况下运行良好: import simplekml import pandas as pd excel_file = 'sample.xlsx' df=pd.read_excel(excel_file) kml = simplekml.Kml() df.apply(lambda X: kml.newpoint( coords=[( X["Long"],X["Lat"])]) ,axis=1) kml.save(pa
import simplekml
import pandas as pd
excel_file = 'sample.xlsx'
df=pd.read_excel(excel_file)
kml = simplekml.Kml()
df.apply(lambda X: kml.newpoint( coords=[( X["Long"],X["Lat"])]) ,axis=1)
kml.save(path = "data.kml")
我想在for循环中这样做,这样我就可以为每个点设置样式,但是我的for循环不起作用
import simplekml
import pandas as pd
kml = simplekml.Kml()
style = simplekml.Style()
excel_file = 'sample1.xlsx'
df=pd.read_excel(excel_file)
y=df.Long
x=df.Lat
MinLat=int(df.Lat.min())
MaxLat=int(df.Lat.max())
MinLong=int(df.Long.min())
MaxLong=int(df.Long.max())
multipnt =kml.newmultigeometry()
for long in range(MinLong,MaxLong): # Generate longitude values
for lat in range(MaxLat,MinLat): # Generate latitude values
multipnt.newpoint(coords=[(y,x)])
#kml.newpoint(coords=[(y,x)])
kml.save("Point Shared Style.kml")
如果要迭代Excel文件中的点集合,并使用for循环将它们作为多重几何体添加到单个Placemark,请尝试此操作
import simplekml
import pandas as pd
kml = simplekml.Kml()
style = simplekml.Style()
excel_file = 'sample1.xlsx'
df = pd.read_excel(excel_file)
multipnt = kml.newmultigeometry()
for row in df.itertuples(index=False):
multipnt.newpoint(coords=[(row.Lat, row.Long)])
kml.save("PointSharedStyle.kml")
如果要为点的边界框生成每十进制度数的点栅格,请尝试以下操作:
import simplekml
import pandas as pd
kml = simplekml.Kml()
style = simplekml.Style()
excel_file = 'sample1.xlsx'
df = pd.read_excel(excel_file)
MinLat = int(df.Lat.min())
MaxLat = int(df.Lat.max())
MinLong = int(df.Long.min())
MaxLong = int(df.Long.max())
for long in range(MinLong, MaxLong+1): # Generate longitude values
for lat in range(MinLat, MaxLat+1): # Generate latitude values
multipnt.newpoint(coords=[(long, lat)])
#kml.newpoint(coords=[(long,lat)])
kml.save("PointSharedStyle.kml")
请注意,样式指定给placemark而不是几何图形,因此多重几何图形只能为所有点指定一种样式。如果要为每个点创建不同的样式,则需要为每个点创建一个placemark,并为每个点指定其自己的样式
有关设置样式的帮助,请参见