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
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
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
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
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)