Freigeben einer interaktiven Foliumkarte mit eingebetteten Markern

8

Ich habe mit einigen Python-Paketen experimentiert, die ein großes Potenzial für meine Dissertationsforschung haben. Da ich Pandas für so ziemlich alles verwende, waren Geopandas eine natürliche Wahl für die Arbeit mit Geodaten (im Rahmen der Möglichkeiten des Pakets), und die interaktiven Eigenschaften von Folium sind ... süß.

In jedem Fall möchte ich in der Lage sein, die von mir erstellten Karten mit anderen Personen zu teilen, die IPython Notebook nicht verwenden oder mit ihm nicht einmal vertraut sind. Mein Testfall ist das Zeichnen des Standorts von Verkehrskameras in DC. (Das Shapefile wird der Öffentlichkeit von DCGIS über opendatadc.org , eine neue und wachsende Quelle für Distriktinformationen, zur Verfügung gestellt.) Der Notebook-Viewer schien eine naheliegende Wahl zu sein, aber wie aus meinem gerenderten Inhalt hervorgeht , sind die Karten 1) statisch und 2) nur in ihrer endgültigen Form angezeigt. (Marker wurden erst auf der letzten Karte hinzugefügt, obwohl sie auf der ersten erscheinen.)

Ich dachte dann, ich könnte Mike Bostocks großartigen Viewer für interaktive Grafiken, bl.ocks.org , nutzen . Mir fehlt jedoch etwas, denn während meine Karte jetzt interaktiv ist, sind die Markierungen verschwunden.

Ist jemand auf dieses Problem gestoßen? Jede Hilfe wäre sicherlich dankbar.

Marvin Ward Jr.
quelle

Antworten:

4

Ich habe noch keine JSON-Dateien zum Laden mit nbviewer erhalten, aber hier sind zwei Dinge, die in ähnlichen Situationen funktionieren:

Wenn Sie nur map.simple_marker()ähnliche Funktionen verwenden, können Sie den Karten-HTML-Code vollständig in das Notizbuch einbetten. Ich habe dies noch nicht dazu gebracht, mit json zu arbeiten, aber es sieht so aus, als ob die kommende Version von Follium Vorlagen zulässt, sodass es möglicherweise in Zukunft eingebunden werden kann. Ich habe hier ein Beispiel dafür:

http://nbviewer.ipython.org/gist/bburky/7763555/folium-ipython.ipynb

Außerdem führen Sie einen SimpleHTTPServer aus, müssen dies aber nicht. Sie können die magische IPython- files/URL verwenden, um auf Dateien in dem Verzeichnis zu verweisen, aus dem IPython gestartet wurde. Sie können also einen Iframe mit einer Quelle verwenden files/index.html. Ich konnte dies jedoch im Notebook Viewer nicht zum Laufen bringen. Theoretisch sollten Sie in der Lage sein, mehrere Dateien in das Wesentliche aufzunehmen und es zum Laufen zu bringen.

bburky
quelle
1
Entschuldigung für die Verspätung. Genau das habe ich gesucht, als ich diese Frage gestellt habe. Die Inline wird sicherlich funktionieren, aber wenn Sie auch eingebettet werden, würde mich ein nachfolgender Kommentar interessieren. Sehr geschätzt!
Marvin Ward Jr
Großartig. In letzter Zeit gab es einige Aktivitäten auf Folliums Github, hoffentlich wird es bald möglich sein. Die Einbettungsmethode funktioniert tatsächlich, nur nicht im Notebook-Viewer.
Burky
Es sieht so aus, als ob der Notebook-Viewer aktualisiert wurde, sodass die Einbettungsmethode jetzt auch funktioniert. Es lädt sogar erfolgreich json.
Burky