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)
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
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)
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()
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()
def downloadPano(self): newpano = SVCloud.download_pano(self.pano.panoid) if not newpano: return False self.pano = newpano self.set_pano(newpano) return True