コード例 #1
0
ファイル: utils.py プロジェクト: onthejeep/geonode
def _create_db_featurestore(name, data, overwrite=False, charset=None):
    """Create a database store then use it to import a shapefile.

    If the import into the database fails then delete the store
    (and delete the PostGIS table for it).
    """
    cat = Layer.objects.gs_catalog
    try:
        ds = cat.get_store(settings.DB_DATASTORE_NAME)
    except FailedRequestError:
        ds = cat.create_datastore(settings.DB_DATASTORE_NAME)
        ds.connection_parameters.update(
            host=settings.DB_DATASTORE_HOST,
            port=settings.DB_DATASTORE_PORT,
            database=settings.DB_DATASTORE_DATABASE,
            user=settings.DB_DATASTORE_USER,
            passwd=settings.DB_DATASTORE_PASSWORD,
            dbtype=settings.DB_DATASTORE_TYPE,
        )
        cat.save(ds)
        ds = cat.get_store(settings.DB_DATASTORE_NAME)

    try:
        cat.add_data_to_store(ds, name, data, overwrite=overwrite, charset=charset)
        return ds, cat.get_resource(name, store=ds)
    except Exception:
        delete_from_postgis(name)
        raise
コード例 #2
0
ファイル: utils.py プロジェクト: iwillig/geonode
def _create_db_featurestore(name, data, overwrite=False, charset=None):
    """Create a database store then use it to import a shapefile.

    If the import into the database fails then delete the store
    (and delete the PostGIS table for it).
    """
    cat = Layer.objects.gs_catalog
    try:
        ds = cat.get_store(settings.DB_DATASTORE_NAME)
    except FailedRequestError:
        ds = cat.create_datastore(settings.DB_DATASTORE_NAME)
        ds.connection_parameters.update(
            host=settings.DB_DATASTORE_HOST,
            port=settings.DB_DATASTORE_PORT,
            database=settings.DB_DATASTORE_DATABASE,
            user=settings.DB_DATASTORE_USER,
            passwd=settings.DB_DATASTORE_PASSWORD,
            dbtype=settings.DB_DATASTORE_TYPE)
        cat.save(ds)
        ds = cat.get_store(settings.DB_DATASTORE_NAME)

    try:
        cat.add_data_to_store(ds, name, data, overwrite, charset)
        return ds, cat.get_resource(name, store=ds)
    except Exception:
        delete_from_postgis(name)
        raise
コード例 #3
0
ファイル: utils.py プロジェクト: ahocevar/geonode
def _create_db_featurestore(name, data, overwrite = False, charset = None):
    """
        Create a database store then use it to import a shapefile into the database.
        If the import fails then delete the store (and delete the PostGIS table for it).
    """
    cat = Layer.objects.gs_catalog
    ds = cat.create_datastore(name)
    ds.connection_parameters.update(
            host=settings.DB_DATASTORE_HOST, port=settings.DB_DATASTORE_PORT, database=settings.DB_DATASTORE_NAME, user=settings.DB_DATASTORE_USER,
            passwd=settings.DB_DATASTORE_PASSWORD, dbtype=settings.DB_DATASTORE_TYPE)
    cat.save(ds)
    ds = cat.get_store(name)
    try:
        cat.add_data_to_store(ds,name, data, overwrite, charset)
    except:
        store_params = ds.connection_parameters
        cat.delete(ds, purge=True)
        if store_params['dbtype'] and store_params['dbtype'] == 'postgis':
            delete_from_postgis(name)
        raise
コード例 #4
0
ファイル: utils.py プロジェクト: mfmc112/geonode
                        results.append({'file': filename, 'name': layer.name})
        return results


def _create_db_featurestore(name, data, overwrite = False, charset = None):
    """
        Create a database store then use it to import a shapefile into the database.
        If the import fails then delete the store (and delete the PostGIS table for it).
    """
    cat = Layer.objects.gs_catalog
    try:
        ds = cat.get_store(settings.DB_DATASTORE_NAME)
    except FailedRequestError, e:
        ds = cat.create_datastore(settings.DB_DATASTORE_NAME)
        ds.connection_parameters.update(
            host=settings.DB_DATASTORE_HOST,
            port=settings.DB_DATASTORE_PORT,
            database=settings.DB_DATASTORE_DATABASE,
            user=settings.DB_DATASTORE_USER,
            passwd=settings.DB_DATASTORE_PASSWORD,
            dbtype=settings.DB_DATASTORE_TYPE)
        cat.save(ds)
        ds = cat.get_store(settings.DB_DATASTORE_NAME)

    try:
        cat.add_data_to_store(ds, name, data, overwrite, charset)
        return ds, cat.get_resource(name, store=ds)
    except:
        delete_from_postgis(name)
        raise
コード例 #5
0
ファイル: utils.py プロジェクト: wildintellect/geonode
        ds = cat.create_datastore(settings.DB_DATASTORE_NAME)
        ds.connection_parameters.update(
            host=settings.DB_DATASTORE_HOST,
            port=settings.DB_DATASTORE_PORT,
            database=settings.DB_DATASTORE_DATABASE,
            user=settings.DB_DATASTORE_USER,
            passwd=settings.DB_DATASTORE_PASSWORD,
            dbtype=settings.DB_DATASTORE_TYPE)
        cat.save(ds)
        ds = cat.get_store(settings.DB_DATASTORE_NAME)

    try:
        cat.add_data_to_store(ds, name, data, overwrite, charset)
        return ds, cat.get_resource(name, store=ds)
    except:
        delete_from_postgis(name)
        raise

def forward_mercator(lonlat):
    """
        Given geographic coordinates, return a x,y tuple in spherical mercator.
        
        If the lat value is out of range, -inf will be returned as the y value
    """
    x = lonlat[0] * 20037508.34 / 180
    n = math.tan((90 + lonlat[1]) * math.pi / 360)
    if n <= 0:
        y = float("-inf")
    else:
        y = math.log(n) / math.pi * 20037508.34
    return (x, y)