заранее определить оптимальный уровень увеличения в фолиевой - PullRequest
1 голос
/ 30 сентября 2019

Я строю некоторые карты, используя фолиум. Работает довольно плавно. Тем не менее, я не мог понять, как предварительно рассчитать правильный уровень масштабирования

. Я могу установить его автоматически

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

, но в моем случае мне нужно было бы предварительно рассчитать zoom_start такое, что:

  • все пары (Lat,Long) из моего pandas кадра данных point_of_interest находятся в пределах карты
  • уровень масштабирования - это минимально возможное значение

1 Ответ

1 голос
/ 01 октября 2019
Метод

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...