In [1]:
# This is to import the repository's version of folium ; not the installed one.
import sys, os
sys.path.insert(0,'..')

In [2]:
from folium import features

WMS


In [3]:
m = features.Map([40,-100], zoom_start=4)
w = features.WmsTileLayer("http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi",
        name='test',
        format='image/png',
        layers='nexrad-n0r-900913',
        attribution=u"Weather data © 2012 IEM Nexrad",
        transparent=True)
w.add_to(m)
m


Out[3]:

Marker, Icon, Popup


In [4]:
f = features.Figure(figsize=(8,8))
m = features.Map([0,0], zoom_start=1)
mk = features.Marker([0,0])
pp = features.Popup("hello")
ic = features.Icon(color='red')

f.add_children(m)
mk.add_children(ic)
mk.add_children(pp)
m.add_children(mk)

f


Out[4]:

RegularPolygonMarker


In [5]:
f = features.Figure()
m = features.Map([0,0], zoom_start=1)
mk = features.RegularPolygonMarker([0,0])
mk2 = features.RegularPolygonMarker([0,45])

f.add_children(m)
m.add_children(mk)
m.add_children(mk2)

f


Out[5]:

Vega stuff


In [6]:
import vincent, json
import numpy as np
N=100
multi_iter2 = {'x' : np.random.uniform(size=(N,)),
               'y' : np.random.uniform(size=(N,)),
               }
scatter = vincent.Scatter(multi_iter2, iter_idx='x', height=100, width=200)
data = json.loads(scatter.to_json())

f = features.Figure()
m = features.Map([0,0], zoom_start=1)
mk = features.Marker([0,0])
p = features.Popup("Hello")
v = features.Vega(data, width="100%", height="100%")
f.add_children(m)
mk.add_children(p)
p.add_children(v)
m.add_children(mk)

f


Out[6]:

Vega div


In [7]:
import vincent, json
import numpy as np
N=100
multi_iter2 = {'x' : np.random.uniform(size=(N,)),
               'y' : np.random.uniform(size=(N,)),
               }
scatter = vincent.Scatter(multi_iter2, iter_idx='x', height=400, width=600)
data = json.loads(scatter.to_json())

f = features.Figure()
v = features.Vega(data, height=40, width=600)
f.add_children(v)

f


Out[7]:

A div and a Map


In [8]:
import vincent, json
import numpy as np
N=100
multi_iter2 = {'x' : np.random.uniform(size=(N,)),
               'y' : np.random.uniform(size=(N,)),
               }
scatter = vincent.Scatter(multi_iter2, iter_idx='x', height=250, width=420)
data = json.loads(scatter.to_json())

f = features.Figure()

# Create two maps
m = features.Map([0,0], tiles='stamenwatercolor',
                 zoom_start=1, position='absolute', left="0%", width="50%", height="50%")
m2 = features.Map([46,3], tiles='mapquestopen',
                  zoom_start=4, position='absolute', left="50%", width="50%", height='50%',top='50%')

# Create two Vega
v = features.Vega(data, position='absolute', left="50%", width="50%", height="50%")

v2 = features.Vega(data, position='absolute', left="0%", width="50%", height="50%", top='50%')

f.add_children(m)
f.add_children(m2)
f.add_children(v)
f.add_children(v2)

f


Out[8]:

GeoJson


In [9]:
N=1000
lons = +5 - np.random.normal(size=N)
lats = 48 - np.random.normal(size=N)

data = {
    "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "geometry": {
                    "type": "MultiPoint",
                    "coordinates": [[lon, lat] for (lat,lon) in zip(lats,lons)],
                    },
                "properties": {"prop0": "value0"}
                },
        ],
    }
m = features.Map([48.,5.], zoom_start=6)
m.add_children(features.GeoJson(data))
m


Out[9]:

Marker Cluster


In [10]:
N = 100
data = np.array([
    np.random.uniform(low=35,high=60, size=N),   # random latitudes in Europe
    np.random.uniform(low=-12,high=30, size=N),  # random longitudes in Europe
    range(N),                                    # popups are simple numbers 
    ]).T
m = features.Map([45.,3.], zoom_start=4)
mc = features.MarkerCluster()

for i in range(N):
    mk = features.Marker([data[i][0],data[i][1]])
    p = features.Popup(str(data[i][2]))
    mk.add_children(p)
    mc.add_children(mk)

m.add_children(mc)
m


Out[10]:

Div


In [11]:
import vincent, json
import numpy as np
N=100
multi_iter2 = {'x' : np.random.uniform(size=(N,)),
               'y' : np.random.uniform(size=(N,)),
               }
scatter = vincent.Scatter(multi_iter2, iter_idx='x', height=250, width=420)
data = json.loads(scatter.to_json())

f = features.Figure()

d1 = f.add_subplot(1,2,1)
d2 = f.add_subplot(1,2,2)

d1.add_children(features.Map([0,0], tiles='stamenwatercolor', zoom_start=1))
d2.add_children(features.Map([46,3], tiles='mapquestopen', zoom_start=5))

f


Out[11]:

Choropleth


In [12]:
import pandas as pd
import json

geojson_data = json.load(open('us-states.json'))
sd = pd.read_csv('US_Unemployment_Oct2012.csv').set_index('State')['Unemployment'].to_dict()

f = features.Figure()
m = features.Map([43,-100], zoom_start=4)
g = features.GeoJson(geojson_data)

f.add_children(m)
m.add_children(g)
g.add_children(features.GeoJsonStyle([3.0, 7.0, 8.0, 9.0, 9.0], 'YlGn', sd, key_on='feature.id'))

f


Out[12]:

Boat marker


In [13]:
from folium.features import *

LayerControl

ScrollZoomToggler

Terminator

Timestamped GeoJson

ImageOverlay

Timestamped ImageOverlay


In [ ]: