我想根据以公里为单位的圆半径检索最近的坐标点,并将结果绘制在散点图框上.但我不知道如何画出圆的形状半径.有人知道怎么画圆的形状半径吗?
到目前为止,我的结果只是圆半径的数据,没有它的圆形状.这是我的代码
import plotly.graph_objects as go
import plotly.express as px
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2):
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
r = 6371
return c * r
center_point = pd.DataFrame({'Longitude':[long_input], 'Latitude':[lat_input]})
test_point = df_latlong[['Longitude','Latitude']].reset_index().drop('index',axis=1)
lat1 = center_point['Latitude'][0]
lon1 = center_point['Longitude'][0]
df_nearest = []
for i, (index, row) in enumerate(df_latlong.iterrows()):
lat2 = test_point['Latitude'][i]
lon2 = test_point['Longitude'][i]
a = haversine(lon1, lat1, lon2, lat2)
df_nearest.append(a)
df_latlong['Distance'] = df_nearest
df_radius = df_latlong[df_latlong['Distance'] <= 5] #5 kilometers for radius
fig_map3 = px.scatter_mapbox(df_radius, lon=df_radius['Longitude'], lat=df_radius['Latitude'],
hover_name='#WELL', zoom=9, width=300, height=500)
fig_map3.update_layout(mapbox_style='open-street-map', margin={'r':0, 't':0, 'l':0, 'b':0})
fig_map3.show()
它具有基于我在CENTER_POINT中定义的质心的圆形半径.我怎么能那样画出黑圈呢?半径为5公里.有什么主意吗?谢谢!