예제 #1
0
    def do_open(self, w, strPath):
        fileName = FileChooser(strPath)
        if fileName:
            file = open(fileName, "r")
            for line in file:
                args = MapArgs(line.split(" "))

                self.e_lat0.set_text(str(args.lat))
                self.e_lon0.set_text(str(args.lng))

                self.e_kmx.set_text(str(args.width))
                self.e_kmy.set_text(str(args.height))

                self.s_zoom0.set_text(str(args.min_zl))
                self.s_zoom1.set_text(str(args.max_zl))
                return
예제 #2
0
 def start_download(self, w, strFolder):
     # Creating our own gmap
     self.gmap = mapServices.MapServ(self.conf)
     self.complete = []
     self.downloader = MapDownloader(self.gmap, self.conf.maxthreads)
     if self.conf.map_service in NO_BULK_DOWN:
         if not legal_warning(self, self.conf.map_service,
                              "bulk downloading"):
             self.all_done("Canceled")
             return
     args = MapArgs()
     if self.processing:
         return
     try:
         args.lat = float(self.e_lat0.get_text())
         args.lng = float(self.e_lon0.get_text())
         args.width = float(self.e_kmx.get_text())
         args.height = float(self.e_kmy.get_text())
         args.min_zl = self.s_zoom0.get_value_as_int()
         args.max_zl = self.s_zoom1.get_value_as_int()
     except ValueError:
         d = gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR,
                               gtk.BUTTONS_CLOSE,
                               "Some field contain non-numbers")
         d.run()
         d.destroy()
         return
     self.b_pause.set_sensitive(True)
     self.b_download.set_sensitive(False)
     self.b_open.set_sensitive(False)
     # Save the map info
     self.save_info(check_dir(strFolder), str(args))
     for layer in range(len(self.layers)):
         self.pbar.set_text(" ")
         self.processing = True
         if self.layers[layer].get_active():
             self.downloader.bulk_download(
                 (args.lat, args.lng, 15), (args.min_zl, args.max_zl),
                 args.width, args.height, layer,
                 gui_callback(self.tile_received), self.download_complete,
                 self.force_update, self.conf)
         self.processing = False
 def start_download(self, w, strFolder):
     # Creating our own gmap
     self.gmap = mapServices.MapServ(self.conf)
     self.complete = []
     self.downloader = MapDownloader(self.gmap, self.conf.maxthreads)
     if self.conf.map_service in NO_BULK_DOWN:
         if not legal_warning(self, self.conf.map_service, "bulk downloading"):
             self.all_done("Canceled")
             return
     args = MapArgs()
     if self.processing:
         return
     try:
         args.lat = float(self.e_lat0.get_text())
         args.lng = float(self.e_lon0.get_text())
         args.width = float(self.e_kmx.get_text())
         args.height = float(self.e_kmy.get_text())
         args.min_zl = self.s_zoom0.get_value_as_int()
         args.max_zl = self.s_zoom1.get_value_as_int()
     except ValueError:
         d = gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR,
                 gtk.BUTTONS_CLOSE, "Some field contain non-numbers")
         d.run()
         d.destroy()
         return
     self.b_pause.set_sensitive(True)
     self.b_download.set_sensitive(False)
     self.b_open.set_sensitive(False)
     # Save the map info
     self.save_info(check_dir(strFolder), str(args))
     for layer in range(len(self.layers)):
         self.pbar.set_text(" ")
         self.processing = True
         if self.layers[layer].get_active():
             self.downloader.bulk_download((args.lat, args.lng, 15),
                 (args.min_zl, args.max_zl), args.width, args.height,
                 layer, gui_callback(self.tile_received),
                 self.download_complete, False, self.conf)
         self.processing = False
예제 #4
0
파일: download.py 프로젝트: pacoqueen/cican
        sys.stdout.write('\b=*')    

def download(lat, lng, lat_range, lng_range, max_zl, min_zl, layer):
    for zl in range(max_zl, min_zl - 1, -1):
        sys.stdout.write("\nDownloading zl %d \t" % zl)
        downloader.query_region_around_location(
            lat, lng,
            lat_range*2, lng_range*2, zl,
            layer, dl_callback,
            conf=mConf
        )
        downloader.wait_all()

if __name__ == "__main__":

    args = MapArgs(sys.argv)

    if (args.location is None) and ((args.lat is None) or (args.lng is None)):
        args.print_help()
        sys.exit(0)

    print "location = %s" % args.location
    if ((args.lat is None) or (args.lng is None)):
        locations = ctx_map.get_locations()
        if (not args.location in locations.keys()):
            args.location = ctx_map.search_location(args.location)
            if (args.location[:6] == "error="):
                print args.location[6:]
                sys.exit(0)

        coord = ctx_map.get_locations()[args.location]
예제 #5
0
    for zl in range(max_zl, min_zl - 1, -1):
        sys.stdout.write("\nDownloading zl %d \t" % zl)
        downloader.query_region_around_location(lat,
                                                lng,
                                                lat_range * 2,
                                                lng_range * 2,
                                                zl,
                                                layer,
                                                dl_callback,
                                                conf=mConf)
        downloader.wait_all()


if __name__ == "__main__":

    args = MapArgs(sys.argv)

    if (args.location is None) and ((args.lat is None) or (args.lng is None)):
        args.print_help()
        sys.exit(0)

    print "location = %s" % args.location
    if ((args.lat is None) or (args.lng is None)):
        locations = ctx_map.get_locations()
        if (not args.location in locations.keys()):
            args.location = ctx_map.search_location(args.location)
            if (args.location[:6] == "error="):
                print args.location[6:]
                sys.exit(0)

        coord = ctx_map.get_locations()[args.location]
예제 #6
0
def get_args(sys_argv):
    args = MapArgs(sys_argv)
    if (args.location is None) and (args.gpx is None) and ((args.lat is None) or (args.lng is None)):
        args.print_help()
        os.kill(os.getpid(), signal.SIGTERM)
        sys.exit(0)

    if ((args.lat is None) or (args.lng is None)) and (args.gpx is None):
        locations = ctx_map.get_locations()
        if (not args.location in locations.keys()):
            args.location = ctx_map.search_location(args.location)
            if (args.location[:6] == "error="):
                print args.location[6:]
                sys.exit(0)

        coord = ctx_map.get_locations()[args.location]
        args.lat = coord[0]
        args.lng = coord[1]

    if args.gpx:
        # GPX path mode
        args.width = int(args.width)
        if args.width < 0:
            args.width = 2  # The default for GPX
    else:
        if args.width > 0:
            args.lng_range = km_to_lon(args.width, args.lat)
        if args.height > 0:
            args.lat_range = km_to_lat(args.height)
    return args