Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python df lat long in for循环_Python_Pandas_Dataframe_For Loop_Simplekml - Fatal编程技术网

Python df lat long in 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

我想将代码更改为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(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,并为每个点指定其自己的样式

有关设置样式的帮助,请参见