Open GeoJSON data on geojson.io from Python.
geojsonio.py
also contains a command line utility that is a Python port of geojsonio-cli.
Send data to geojson.io and open a browser within python
from geojsonio import display
with open('map.geojson') as f:
contents = f.read()
display(contents)
There are two methods by which geojsonio.py
gets geojson.io to render the data:
- Embedding the GeoJSON contents in the geojson.io URL directly
- Creating an anonymous Github gist and embedding the gist id in the geojson.io URL.
geojsonio.py
automatically determines which method is used based on the length of the GeoJSON contents.
If the contents are small enough, they will be embedded in the URL. Otherwise geojsonio.py
creates an anonymous
Gist on Github with the GeoJSON contents. Note: when an anonymous gist is created, the data is uploaded to Github
and a unique gist ID is created. If anyone else is able to obtain the gist ID, they will be able to see your data.
geojsonio.py
integrates nicely with GeoPandas to
display data in a GeoDataFrame
.
Say you have a file containing the borders of all states called states.geojson
. Each GeoJSON record has a
property called 'Name'
. Quickly display all the states whose names start with 'M'
import geopandas as gpd
import geojsonio
states = gpd.read_file('states.geojson')
m_states = states[states['Name'].str.startswith('M')]
geojsonio.display(m_states.to_json())
This will open a browser to the geojson.io window with the polygons drawn on the slippy map.
To easily embed geojson.io in an iframe in a Jupyter/IPython notebook, use
the embed()
method
embed(contents)
It can also be used on the command line. Read or pipe a file
$ geojsonio map.geojson $ geojsonio < run.geojson
Options:
--print prints the url rather than opening it --domain="http://custominstancedomain.com/"
Install with pip
$ pip install geojsonio