Пример #1
0
 def traverseEdge(self, n):
     pano = SVCloud.get_db_metadata(self.pano.location, self.pano.edges[n].panoid)
     if not pano:
         print "Could not find the panorama in the database."
         pano = SVCloud.get_sv_metadata(self.pano.edges[n].panoid)
     if not pano:
         print "Could not find the panorama in Street View."
         return
     self.set_pano(pano)
Пример #2
0
    def set_pano(self, pano):
        print ""
        self.pano = pano
        self.orientation.setPano(pano)
        if pano.indb:
            self.graphics.set_pano_texture( SVCloud.get_db_pano(pano.dbid) )
        else:
            self.graphics.set_pano_texture( SVCloud.get_sv_pano(pano.panoid, self.zoom) )
        self.svmap.render(pano.location.lat, pano.location.lon)

        # print edges
        print 'Edges:'
        for i, edge in enumerate(pano.edges):
            print i+1, edge.angle, edge.panoid
Пример #3
0
    def jumpNear(self, location):
        # Get a list of nearby panoramas
        panos = SVCloud.get_nearby_db_metadata(location)
        if len(panos) == 0:
            print "No nearby panoramas are in the database."
            sv_pano = SVCloud.get_nearby_sv_metadata(location)
            if sv_pano:
               panos.append(sv_pano)
            else:
               print "No nearby panoramas are in Street View."
               return

        # Find the closest one, using the taxicab metric for now...
        closest_pano = panos[0]
        min_d = abs(location.lat - closest_pano.location.lat) + abs(location.lon - closest_pano.location.lon)
        for pano in panos:
            d = abs(location.lat - pano.location.lat) + abs(location.lon - pano.location.lon)
            if d < min_d:
                closest_pano = pano
                min_d = d
        self.set_pano(closest_pano)
Пример #4
0
 def deleteTag(self):
     result = SVCloud.remove_tag(self.pano.dbid, self.tagind) 
     if not result:
         print "Error: tag was not removed."
         return
     print "Tag removed."
     del self.pano.tags[self.tagind]
     if len(self.pano.tags) == 0:
         self.state.setNormal()
     else:
         if self.tagind == len(self.pano.tags):
             self.tagind = 0
         self.moveToTag()
Пример #5
0
 def doneConfirming(self, saveTag):
     if saveTag:
         if self.pano.indb or self.downloadPano():
             newtag = Tag(self.mouse.box())
             result = SVCloud.new_tag(self.pano.dbid, newtag.theta1, newtag.phi1, newtag.theta2, newtag.phi2)
             if result:
                 # Note: we have to add to the front, to imitate a linked list
                 self.pano.tags.insert(0, newtag)
                 print "Tag saved."
             else:
                 print "Error: tag was not saved."
         else:
             print "Cannot save tag until the pano is in the database."
     self.mouse.clear()
     self.state.setNormal()
Пример #6
0
 def downloadPano(self):
     newpano = SVCloud.download_pano(self.pano.panoid)
     if not newpano: return False
     self.pano = newpano
     self.set_pano(newpano)
     return True