Example #1
0
def main():
    opts, args = parse_args()
    if len(args) != 1:
        optparser.error('must give path to shapefile')
    shapefile = args[0]
    if not os.path.exists(shapefile):
        optparser.error('file does not exist')
    ds = DataSource(shapefile)
    layer = ds[opts.layer_id]

    metro = get_metro()
    metro_name = metro['metro_name'].upper()
    location_type, _ = LocationType.objects.get_or_create(
        name='neighborhood',
        plural_name='neighborhoods',
        scope=metro_name,
        slug='neighborhoods',
        is_browsable=True,
        is_significant=True,
    )

    importer = LocationImporter(layer, location_type)
    num_created = importer.save(name_field=opts.name_field,
                                source=opts.source,
                                verbose=opts.verbose)
    if opts.verbose:
        print >> sys.stderr, 'Created %s neighborhoods.' % num_created
Example #2
0
def import_location(shapefile, layer_number, location_type, name, wkt,
                    filter_bounds, display_order):
    # Passing WKT because background functions need all their args to
    # be json-serializable.
    try:
        layer = layer_from_shapefile(shapefile, layer_number)
        importer = LocationImporter(layer,
                                    location_type,
                                    filter_bounds=filter_bounds)
        geom = GEOSGeometry(wkt)
        importer.create_location(name,
                                 location_type,
                                 geom,
                                 display_order=display_order)
    except:
        logger.exception("Location import of %s failed" % name)