[PYTHON] Erstellen Sie eine Tweet-Heatmap mit der Google Maps-API

 2014-09-14 4.23.20.jpg

Sie können eine Heatmap mithilfe der Google Maps-API erstellen. Dieses Mal möchte ich basierend auf den Standortinformationen des zufällig erfassten Tweets mit Heatmap "Wo ist der aktuelle Twitter-Benutzer?" Ausdrücken.

Holen Sie sich zuerst den Tweet.

import twitter
stream = TwitterStream(auth=OAuth(Verschiedene Schlüssel))
iterator = stream.statuses.sample()
locations = []
for tweet in iterator:
    if len(locations) > 99:
        break
    if not 'geo' in tweet:
        continue
    if tweet['geo'] is not None:
        geo = tweet['geo']['coordinates']
        locations.append(geo)

Atme diese Standortinformationen als CSV aus.

with open('some.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(locations)

Diesmal habe ich csv direkt geschrieben, ohne es mit JavaScript zu lesen.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Heatmaps</title>
    <style>
      /* to have the map be displayed as large as possible */
      html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=visualization"></script>
    <script>
var map, pointarray, heatmap;

// sample data
var sampleData = [
  new google.maps.LatLng(41.869741,-87.721538),
  new google.maps.LatLng(48.19395,-2.125265),
  new google.maps.LatLng(3.580724,98.628154),
  new google.maps.LatLng(4.580501,-74.081261),
  new google.maps.LatLng(-26.882332,26.659449),
  new google.maps.LatLng(-24.654812,25.958468),
  new google.maps.LatLng(29.968636,-95.459855),
  new google.maps.LatLng(48.713171,44.502881),
  new google.maps.LatLng(34.93339,-81.985014),
  new google.maps.LatLng(40.376906,-105.518854),
  new google.maps.LatLng(-2.122002,-79.906566),
  new google.maps.LatLng(40.777568,30.396123),
  new google.maps.LatLng(-29.894143,-50.247492),
  new google.maps.LatLng(40.829574,-96.726031),
  new google.maps.LatLng(44.228229,-76.529446),
  new google.maps.LatLng(-22.791815,-43.363159),
  new google.maps.LatLng(41.012075,28.951118),
  new google.maps.LatLng(43.455311,6.696321),
  new google.maps.LatLng(40.987747,28.878675),
  new google.maps.LatLng(44.511357,-73.062096),
  new google.maps.LatLng(38.581522,-89.925273),
  new google.maps.LatLng(43.301556,5.368706),
  new google.maps.LatLng(38.091917,-3.645525),
  new google.maps.LatLng(36.897981,30.633576),
  new google.maps.LatLng(10.118712,-71.253339),
  new google.maps.LatLng(51.189495,5.528259),
  new google.maps.LatLng(-23.531079,-46.526215),
  new google.maps.LatLng(40.8369,-74.114526),
  new google.maps.LatLng(37.13042,-94.479282),
  new google.maps.LatLng(39.640009,-77.716111),
  new google.maps.LatLng(-13.013756,-38.486381),
  new google.maps.LatLng(-34.201277,-56.342408),
  new google.maps.LatLng(10.919255,-74.80918),
  new google.maps.LatLng(42.69738,-83.245338),
  new google.maps.LatLng(51.453926,-3.180561),
  new google.maps.LatLng(28.658053,77.225473),
  new google.maps.LatLng(43.035312,-76.13877),
  new google.maps.LatLng(26.368914,50.123148),
  new google.maps.LatLng(-31.378565,-64.165087),
  new google.maps.LatLng(35.368463,-81.506347),
  new google.maps.LatLng(33.757625,-84.401357),
  new google.maps.LatLng(40.491088,-3.662337),
  new google.maps.LatLng(33.528219,-85.133143),
  new google.maps.LatLng(41.807787,12.479548),
  new google.maps.LatLng(-37.970056,-57.612154),
  new google.maps.LatLng(51.98949,1.392392),
  new google.maps.LatLng(41.512915,-81.466155),
  new google.maps.LatLng(7.912032,-72.493505),
  new google.maps.LatLng(-23.351162,-51.1873),
  new google.maps.LatLng(36.201708,-81.700396),
  new google.maps.LatLng(43.112279,-83.652649),
  new google.maps.LatLng(51.877076,12.653746),
  new google.maps.LatLng(6.420195,100.416817),
  new google.maps.LatLng(31.325244,37.361949),
  new google.maps.LatLng(48.9481,2.236714),
  new google.maps.LatLng(-27.708866,-53.962288),
  new google.maps.LatLng(42.980997,-87.94887),
  new google.maps.LatLng(40.151149,-104.938639),
  new google.maps.LatLng(32.884038,-97.297599),
  new google.maps.LatLng(58.036561,39.111782),
  new google.maps.LatLng(40.254157,-75.807626),
  new google.maps.LatLng(-34.808521,-56.160179),
  new google.maps.LatLng(41.8369,-87.6844),
  new google.maps.LatLng(10.118712,-71.253339),
  new google.maps.LatLng(30.033776,-89.955507),
  new google.maps.LatLng(38.618279,27.422036),
  new google.maps.LatLng(-22.972435,-43.186386),
  new google.maps.LatLng(-7.647608,111.528889),
  new google.maps.LatLng(14.838083,-91.500155),
  new google.maps.LatLng(43.451903,-83.949347),
  new google.maps.LatLng(52.624694,-1.197507),
  new google.maps.LatLng(36.106227,-5.448284),
  new google.maps.LatLng(34.420831,-119.69819),
  new google.maps.LatLng(39.243791,-82.191701),
  new google.maps.LatLng(43.6177,-73.962748),
  new google.maps.LatLng(38.403184,26.994669),
  new google.maps.LatLng(53.773308,-1.765792),
  new google.maps.LatLng(51.32552,-1.053326),
  new google.maps.LatLng(42.146086,-72.400803),
  new google.maps.LatLng(-34.601558,-58.530852),
  new google.maps.LatLng(52.235012,-7.113571),
  new google.maps.LatLng(46.254375,7.004024),
  new google.maps.LatLng(41.056631,28.865406),
  new google.maps.LatLng(-16.734154,-49.30822),
  new google.maps.LatLng(38.702756,-8.970666),
  new google.maps.LatLng(41.079022,28.924318),
  new google.maps.LatLng(-22.467244,-50.609785),
  new google.maps.LatLng(50.807499,0.294177),
  new google.maps.LatLng(52.296889,4.96612),
  new google.maps.LatLng(-27.684219,-48.483165),
  new google.maps.LatLng(-34.8927,-56.160802),
  new google.maps.LatLng(28.069146,-82.433176),
  new google.maps.LatLng(-23.962148,-46.323084),
  new google.maps.LatLng(32.409653,-90.137747),
  new google.maps.LatLng(-6.1995,106.83294),
  new google.maps.LatLng(33.980423,72.186674),
  new google.maps.LatLng(51.513518,-0.123417),
  new google.maps.LatLng(-27.586342,-48.613531),
  new google.maps.LatLng(24.352714,37.604151),
  new google.maps.LatLng(26.311167,50.222377)
];


function initialize() {
  // the map's options
  var mapOptions = {
    zoom: 2,
    center: new google.maps.LatLng(0, 135),
    mapTypeId: google.maps.MapTypeId.SATELLITE
  };

  // the map and where to place it
  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  var pointArray = new google.maps.MVCArray(sampleData);

  // what data for the heatmap and how to display it
  heatmap = new google.maps.visualization.HeatmapLayer({
    data: pointArray,
    radius: 10
  });

  // placing the heatmap on the map
  heatmap.setMap(map);
}

// as soon as the document is ready the map is initialized
google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>

  <body>
    <!-- this is where the map finally is drawn onto -->
    <div id="map-canvas"></div>
  </body>
</html>

Sie können auf einfache Weise eine solche Heatmap erstellen. Es kann mit "heatmap.set" aktualisiert werden, sodass Sie möglicherweise Standortinformationen in Echtzeit eingeben und den Standort des aktuellen Tweet-Benutzers auf einen Blick sehen können.

References

Recommended Posts

Erstellen Sie eine Tweet-Heatmap mit der Google Maps-API
Tweet die Wettervorhersage mit Bot
Holen Sie sich Urlaub mit der Google Kalender-API
Erstellen Sie eine REST-API, um dynamodb mit dem Django REST Framework zu betreiben
Twittern Sie regelmäßig mit der Twitter-API in Go-Sprache
Tweet die Wettervorhersage mit Bot Teil 2
Zeigen Sie die Google Maps-API mit Rails und Pin-Anzeige an
Erstellen Sie ein Übersetzungswerkzeug mit dem Translate Toolkit
Erstellen Sie eine saubere Datenbank zum Testen mit FastAPI und führen Sie Unittest of API mit pytest aus
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Hochladen auf ein freigegebenes Laufwerk mit Google Drive API V3
Erstellen Sie eine API mit Django
Rufen Sie die API mit python3 auf.
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie eine neue CSV mit Pandas basierend auf der lokalen CSV
Ein Hinweis zum Aufrufen der Facebook-API mit dem Python SDK
Informationen zum Kamerawechselereignis der Google Maps Android API
Wahrscheinlich der einfachste Weg, um mit Python 3 ein PDF zu erstellen
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Tornado - Erstellen wir eine Web-API, die JSON problemlos mit JSON zurückgibt
Erstellen Sie eine Web-API, die Bilder mit Django liefern kann
Anfänger der Google Maps API und der Twitter API haben "Tweet Map" erstellt.
Die Geschichte des Erstellens einer Datenbank mithilfe der Google Analytics-API
Stellen Sie die umgekehrte Geokodierung auf Japanisch mit der Python Google Maps-API bereit
Erstellen Sie mit Django eine API für die soziale Integration von Smartphone-Apps
Ein Skript, mit dem Sie mit der LINE Messaging-API auf einfache Weise umfangreiche Menüs erstellen können
Holen Sie sich den Kauf- und Verkaufspreis der virtuellen Währung mit der API von Zaif Exchange und erstellen Sie ein Diagramm
[Kartenanzeige] Zeigen Sie eine Karte anhand der vom Benutzer registrierten Adresse mit der JavaScript-API und der Geokodierungs-API von Google Maps an!
Erstellen Sie eine Anwendung, die nur mit der Google Custom Search-API mit Python 3.3.1 in Bottle sucht
Erstellen Sie Awaitable mit der Python / C-API
Erstellen Sie mit der AWS-API einen Alias für Route53 zu CloudFront
[AWS] API mit API Gateway + Lambda erstellen
[Python] Klicken Sie auf die Google Übersetzungs-API
Erstellen Sie mit Python + Qt (PySide) einen Farbwähler für das Farbrad.
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen Sie ein Modell zum Speichern von Informationen aus der Google Books-API für eine intuitive Handhabung und Prüfung
Erstellen Sie mit Python3 + Falcon eine REST-API, die die aktuelle Uhrzeit zurückgibt
Ich habe versucht, die Google-API mit Ruby und Python zu erreichen. Machen Sie die Datenbank zu einer Tabelle und verwalten Sie sie mit Google Drive
Klicken Sie mit Python auf die Etherpad-Lite-API
Ich mochte den Tweet mit Python. ..
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Erstellen Sie eine API mit hug mit mod_wsgi
Erstellen Sie die CRUD-API mit der Fast API
Erstellen Sie einen Poisson-Stepper mit numpy.random
So senden Sie eine Anfrage mit Python an die DMM (FANZA) -API
Versuchen Sie, einen Artikel von Qiita mit der REST-API [Umweltvorbereitung] zu erstellen.
Einführung der Google Map API mit Schienen
Erstellen Sie mit Django einen Datei-Uploader
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
So erstellen Sie mit AWS Lambda eine serverlose API für maschinelles Lernen
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
Erstellen Sie einen Twitter-BOT-Dienst mit der GAE / P + Tweepy + RIOT-API! (Teil 1)
Erstellen Sie einen Twitter-BOT-Dienst mit der GAE / P + Tweepy + RIOT-API! (Teil 2)
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Erstellen Sie mit Class einen Python-Funktionsdekorator
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx