预先确定最佳的叶放大倍数

时间:2019-09-30 05:59:28

标签: python geolocation zoom folium

我正在用叶片绘制一些地图。 工作相当顺利。 但是,我不知道如何预先计算正确的缩放水平

我可以自动设置

import folium
m = folium.Map([point_of_interest.iloc[0].Lat, point_of_interest.iloc[0].Long])

但是在我的用例中,我需要预先计算zoom_start,使得:

  • 我的(Lat,Long)的{​​{1}}数据框中的所有夫妇pandas都在地图内
  • 缩放级别为possilbe最高

1 个答案:

答案 0 :(得分:2)

folium的fit_bounds方法应该对您有用

一些随机样本数据

import folium
import numpy as np
import pandas as pd

center_point = [40, -90]

data = (
    np.random.normal(size=(100, 2)) *
    np.array([[.5, .5]]) +
    np.array([center_point])
)

df = pd.DataFrame(data, columns=['Lat', 'Long'])

使用一些标记创建地图

m = folium.Map(df[['Lat', 'Long']].mean().values.tolist())

for lat, lon in zip(df['Lat'], df['Long']):
    folium.Marker([lat, lon]).add_to(m)

fit_bounds要求数据的“边界”以西南角和东北角的形式出现。您还可以使用一些填充参数

sw = df[['Lat', 'Long']].min().values.tolist()
ne = df[['Lat', 'Long']].max().values.tolist()

m.fit_bounds([sw, ne]) 
m

enter image description here