예제 #1
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
예제 #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
    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]
        args.lat = coord[0]
        args.lng = coord[1]

    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)

    if (args.location is None):
        args.location = "somewhere"
    print "Download %s (%f, %f), range (%f, %f), zoom level: %d to %d" % \
            (args.location, args.lat, args.lng,
             args.lat_range, args.lng_range,
             args.max_zl, args.min_zl)

    downloader = MapDownloader(ctx_map, args.nr_threads)
    try:
예제 #5
0
    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]
        args.lat = coord[0]
        args.lng = coord[1]

    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)

    if (args.location is None):
        args.location = "somewhere"
    print "Download %s (%f, %f), range (%f, %f), zoom level: %d to %d" % \
            (args.location, args.lat, args.lng,
             args.lat_range, args.lng_range,
             args.max_zl, args.min_zl)

    downloader = MapDownloader(ctx_map, args.nr_threads)
    try: