[PYTHON] Holen Sie sich ein Panoramabild in Google Street View

Was ich getan habe

Die Arbeit in ERFASSEN VON KUGELSZENEN AUS GOOGLE STREETVIEW wird mit einem Python-Skript ausgeführt. Ich habe versucht, es zu schaffen.

Hinweis

Bitte lesen Sie die Google Street View-Lizenz sorgfältig durch, bevor Sie dieses Skript verwenden.

Umgebung

python 2.7.10

Skript

append.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import shutil
import re
import sys

class Panorama:

  def __init__(self, url):
    self.path = "./tmp/"
    self.panoid = self.parseID(url)

    #panorama size = 12*25
    self.x = 12
    self.y = 25

  def parseID(self,url):
    dna = "!1s"
    m = url.find(dna)
    if m != -1:
      return url[m+3:m+25]
    else:
      return ""

  def mkdirTmp(self):
    if os.path.exists(self.path):
      pass
    else:
      os.mkdir(self.path)

  def clean(self):
    shutil.rmtree(self.path)

  def downloadImage(self):
    cmd = 'curl http://cbk0.google.com/cbk?output=tile\&panoid=' + self.panoid + '\&zoom=5\&x=[0-25]\&y=[0-12] -o ' + self.path + '"tile_#1-#2.jpg "'
    os.system(cmd)

  def appendImage(self):

    #An die Seite anschließen
    for x in range(0, self.x+1):
      cmd = "convert +append "
      for y in range(0, self.y+1):
        #Eingabedatei
        inFile = self.path + "tile_%d-%d.jpg "% (y,x)
        #Verketten Sie mit der Befehlszeichenfolge
        cmd += inFile + " "

      #Legen Sie den Namen der Ausgabedatei fest
      cmd += self.path + "%d.jpg "%x
      #print cmd

      #Lauf
      os.system(cmd)

    #Vertikal verbinden
    cmd = "convert -append "
    for x in range(0,self.x):
      cmd += self.path + "%d.jpg "%x + " "

    cmd += "append.jpg "
    #print cmd

    os.system(cmd)


if __name__ == "__main__":
  url = "https://www.google.co.jp/maps/@34.7020532,135.5020237,3a,75y,285h,99t/data=!3m7!1e1!3m5!1sBLX3E8R5JxUJnuHlPGg5kw!2e0!6s%2F%2Fgeo3.ggpht.com%2Fcbk%3Fpanoid%3DBLX3E8R5JxUJnuHlPGg5kw%26output%3Dthumbnail%26cb_client%3Dmaps_sv.tactile.gps%26thumb%3D2%26w%3D203%26h%3D100%26yaw%3D285.21%26pitch%3D9.21!7i13312!8i6656?hl=ja&hl=ja"

  pano = Panorama(url)
  if  len(pano.panoid) > 0:
    pano.mkdirTmp()
    pano.downloadImage()
    pano.appendImage()
    pano.clean()

Recommended Posts

Holen Sie sich ein Panoramabild in Google Street View
Holen Sie sich Bilder der Google Bildsuche in Originalgröße
Ich erhalte einen KeyError in pyclustering.xmeans
Holen Sie sich Boolean mit Flask-Anfrage
Zeigen Sie das Bild nach der Datenerweiterung mit PyTorch an
Implementieren Sie einen benutzerdefinierten View Decorator mit Pyramid
Holen Sie sich Google Fit API-Daten in Python
Wie bekomme ich Stacktrace in Python?
So finden Sie den Ansichtsnamen mit dem Namespace über die URL (path_info) in Django
Holen Sie sich ein Zeichen für Conoha mit Python
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Wenn ich einen Chrom-Treiberfehler in Selenium bekomme
Holen Sie sich den Aufrufer einer Funktion in Python
Abrufen der Google Cloud Storage-Objektliste in Java
Holen Sie sich nur Unterklassenelemente in eine Liste
Anzeigen von Arzneimittelbewertungen mithilfe von Listen in Python
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Was tun, um eine Google-Tabelle in Python zu erhalten?
Ruft Zeilen mit bestimmten Elementen in np.where ab
Abrufen des Dateinamens in einem Ordner mithilfe von glob
Liste der Orte, auf die ich beim Hochladen von Bildern aus Django gestoßen bin
Ich erhalte eine java.util.regex.PatternSyntaxException, wenn ich einen String in PySpark teile
Holen Sie sich das Bild von "Suzu Hirose" von Google Bildersuche.
Versuchen Sie, das Bild in einen separaten Thread zu laden (OpenCV-Python).
BigQuery - Wenn Sie einen Grund erhalten: responseTooLarge-Fehler in Python
Zeigen Sie ein Histogramm der Bildhelligkeitswerte in Python an
Rufen Sie die Benutzer-ID und den Bildschirmnamen des Teilnehmers in Slack ab