mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import os
 | 
						|
import sys
 | 
						|
import sqlite3 as sqlite
 | 
						|
 | 
						|
 | 
						|
def gen():
 | 
						|
    db = sqlite.connect(":memory:")
 | 
						|
 | 
						|
    tablesfile = sys.argv[1]
 | 
						|
    datafiles = sys.argv[2]
 | 
						|
 | 
						|
    with open(os.path.join("data", tablesfile)) as f:
 | 
						|
        data = f.read()
 | 
						|
        db.executescript(data)
 | 
						|
 | 
						|
    with open(os.path.join("data", datafiles)) as f:
 | 
						|
        data = f.read()
 | 
						|
        data = data.replace("CHR", "Char")
 | 
						|
        db.executescript(data)
 | 
						|
 | 
						|
    query = """
 | 
						|
    SELECT crs.coord_ref_sys_code,
 | 
						|
    area_west_bound_lon,
 | 
						|
    area_north_bound_lat,
 | 
						|
    area_east_bound_lon,
 | 
						|
    area_south_bound_lat
 | 
						|
    FROM epsg_coordinatereferencesystem crs
 | 
						|
        JOIN epsg_area area ON crs.area_of_use_code = area.area_code
 | 
						|
    """
 | 
						|
 | 
						|
    rows = db.execute(query)
 | 
						|
    srsdb = sqlite.connect("./resources/srs.db")
 | 
						|
    srsdb.execute("DELETE FROM tbl_bounds")
 | 
						|
    data = list(rows)
 | 
						|
    srsdb.executemany("""insert into tbl_bounds(srid, west_bound_lon,
 | 
						|
    north_bound_lat,
 | 
						|
    east_bound_lon,
 | 
						|
    south_bound_lat) values (?,?,?,?,?)""", data)
 | 
						|
    srsdb.commit()
 | 
						|
 | 
						|
 | 
						|
def usage():
 | 
						|
    print("""
 | 
						|
    Generate the epsg_bounds.csv file to support viewing projection areas and bounds checks in QGIS.
 | 
						|
 | 
						|
    Usage:
 | 
						|
 | 
						|
    bounds_sync.py {table dump} {data dump}
 | 
						|
 | 
						|
    bounds_sync.py EPSG_v9_1.mdb_Tables_PostgreSQL.sql EPSG_v9_1.mdb_Data_PostgreSQL.sql
 | 
						|
    """)
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    if len(sys.argv) < 3:
 | 
						|
        usage()
 | 
						|
    else:
 | 
						|
        gen()
 |