def main(points_file): places = load_points(points_file) #random_place = dict([places.popitem()]) random_place = discard_outliers(places) bbox = get_bbox_for_points(places) for obj in get_osm_ways(bbox): print obj.to_dict()
print >> sys.stderr, "Reading from %s cache..." % point_file names, blocks, places = pickle.load(file(point_file + ".cache")) blocks = map(asShape, blocks) else: all_names = {} count = 0 for line in file(name_file): place_id, name = line.strip().split(None, 1) all_names[int(place_id)] = name count += 1 if count % 1000 == 0: print >> sys.stderr, "\rRead %d names from %s." % (count, name_file), print >> sys.stderr, "\rRead %d names from %s." % (count, name_file) places = load_points(point_file) for place_id in places: names[place_id] = all_names.get(place_id, "") places = discard_outliers(places) lines = [] do_polygonize = False print >> sys.stderr, "Reading lines from %s..." % line_file, for feature in geojson.loads(file(line_file).read()): if feature.geometry.type in ('LineString', 'MultiLineString'): do_polygonize = True lines.append(asShape(feature.geometry.to_dict())) print >> sys.stderr, "%d lines read." % len(lines) if do_polygonize: print >> sys.stderr, "Polygonizing %d lines..." % (len(lines)), blocks = [poly.__geo_interface__ for poly in polygonize(lines)]
if os.path.exists(point_file + '.cache'): print >>sys.stderr, "Reading from %s cache..." % point_file names, blocks, places = pickle.load(file(point_file + ".cache")) blocks = map(asShape, blocks) else: all_names = {} count = 0 for line in file(name_file): place_id, name = line.strip().split(None, 1) all_names[int(place_id)] = name count += 1 if count % 1000 == 0: print >>sys.stderr, "\rRead %d names from %s." % (count, name_file), print >>sys.stderr, "\rRead %d names from %s." % (count, name_file) places = load_points(point_file) for place_id in places: names[place_id] = all_names.get(place_id, "") places = discard_outliers(places) lines = [] do_polygonize = False print >>sys.stderr, "Reading lines from %s..." % line_file, for feature in geojson.loads(file(line_file).read()): if feature.geometry.type in ('LineString', 'MultiLineString'): do_polygonize = True lines.append(asShape(feature.geometry.to_dict())) print >>sys.stderr, "%d lines read." % len(lines) if do_polygonize: print >>sys.stderr, "Polygonizing %d lines..." % (len(lines)), blocks = [poly.__geo_interface__ for poly in polygonize(lines)]
count = 0 pt_count = 0 for line in file(name_file): #place_id, name = line.strip().split(None, 1) woe_parent, name, woe_type, place_id = line.strip().split('\t', 4) print >>sys.stderr,"%s, %s, %s, %s" % (woe_parent, name, woe_type, place_id ) if name == "name" or name == "woe_name" or name == "Name" or name == "NAME": pass else : all_names[int(place_id)] = name count += 1 if count % 1000 == 0: print >>sys.stderr, "\rRead %d names from %s." % (count, name_file), print >>sys.stderr, "\rRead %d names from %s." % (count, name_file) votes = load_points(point_file, name_filter) if verbose: print >>sys.stderr, "votes: %s" % len(votes) print >>sys.stderr, "place_id: %s, pts: %s" % (place_id, place_id) for place_id, pts in votes: names[place_id] = all_names.get(place_id, "") for pt in pts: pt_count += 1 print >>sys.stderr, "pt_count: %s" % (pt_count) votes = discard_outliers(votes) lines = [] do_polygonize = False print >>sys.stderr, "Reading lines from %s..." % line_file,