1、按照60度小区波瓣,制作+30及-30数列,间隔10度
bandcut=np.linspace(-30,30,10)
2、根据差分的数列,按照方向角循环制作小区绘图边框上的点
(0)、引入geopy 的distance 及Point的方法
from geopy import distance as geodistance,Point
for x in bandcut:
(1)、基站坐标点转换成geopy的Point格式
start=Point(33,117)
(2)、制作geodistance的VincentyDistance的方法定制基站绘图的半径
d=geodistance.VincentyDistance(kilometers=0.5)
(3)、根据定制方法的半径,使用destination方法,通过方向角加偏移量,制作一定角度和半径的点,dpoint.longitude,dpoint.latitude
dpoint=d.destination(point=start,bearing=358+x)
print(dpoint.longitude,dpoint.latitude)
(4)、所有点聚合在一区为边框
bandang.append([dpoint.latitude,dpoint.longitude])
(5)、加上原始点产生闭合
folium.Marker(location=[dpoint.latitude,dpoint.longitude],icon=folium.Icon(color='red')).add_to(m)
bandang.append([33, 117])
print(bandang)
folium.Polygon(locations=bandang,fill_color=‘red’,).add_to(m)
m.save(‘test.html’)
webbrowser.open(‘test.html’)