2016-05-26 4 views
3

документация Folium неполна в это время: https://folium.readthedocs.io/en/latest/Создать Легенду на карте Folium

Согласно индексу неполных документов Легенда и слои, или будет поддерживаться. Я потратил некоторое время на поиск примеров в Интернете, но пока ничего не нашел. Если кто-нибудь знает, как создавать эти вещи, или может указать мне на документ или учебник, я был бы очень благодарен.

ответ

2

У меня был тот же вопрос, и использовать этот быстрый хак в HTML, порожденного Folium добавить легенду. Это не особенно грациозно, но это работает. Поскольку мне это только нужно было несколько раз, я вручную сгенерировал легенду как изображение (legend.png), но, я думаю, вы могли бы создать сценарий для автоматического создания легенды, если бы вы делали это часто. Я добавил следующие компоненты в соответствующих разделах HTML файла, выход Folium моя карта на:

  <style> #background_img { 
      position : absolute; 
      background:url('legend.png'); 
      width : 16.9%; 
      height: 17.7%; 
      right: 20px; 
      bottom: 50px; 
      z-index: 99; 
      background-repeat: no-repeat; 
      background-size: contain; 
      } 
     </style> 

     <div id="background_img" class="backgroundimg" ></div> 

Вам также необходимо изменить Z-индекс элемента карты стиль на что-то меньшее, чем 99, так что легенда помещена над картой.

3

Попробуйте использовать

feature_group = FeatureGroup(name='Layer1') 
feature_group2 = FeatureGroup(name='Layer2') 

Затем добавить на карту

map = folium.Map(zoom_start=6) 

# coordinates to locate your marker 
COORDINATE = [(333,333)] # example coordinate 
COORDINATE2 = [(444,444)] 

# add marker to your map 
folium.Marker(location=COORDINATE).add_to(feature_group) 
folium.Marker(location=COORDINATE2).add_to(feature_group2) 

map.add_child(feature_group) 
map.add_child(feature_group2) 

# turn on layer control 
map.add_child(folium.map.LayerControl()) 
+0

Спасибо , это не легенда, поскольку она не коррелирует с маркером на карте с определенной вещью, но она по-прежнему является полезным советом. – sparrow

0

Я подправил код Дэ немного, и она работала для меня ...

<style>.legend 
     { 
      position: absolute; 
      top: 60px; 
      left:80px; 
      width : 16.9%; 
      height: 17.7%; 
      right: 20px; 
      bottom: 50px; 
      z-index: 150; 
      background-repeat: no-repeat; 
      background-size: contain; 

     } 

     </style> 

<div > 
       <img src="data:image/jpeg;base64, 
       iVBORw0KGgoAAAANSUhEUgAAAasAAAB/CAYA..." 
       class="legend"> 

      </div> 

Я также кодируется изображением для использования в качестве легенды, чтобы сделать его в HTML-файле в качестве основы 64.