mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-24 00:47:57 -05:00
- Script to pull bounds from EPSG.org Postgres dump - Add resources/data/world_map.shp for reference - Show canvas bounds for reference
57 lines
1.3 KiB
Python
57 lines
1.3 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)
|
|
with open("resources/epsg_areas.csv", "w") as f:
|
|
f.write("coord_sys_code, west_bound_lon, north_bound_lat, east_bound_lon, south_bound_lat\n")
|
|
for row in rows:
|
|
csv = ",".join(str(data) for data in row)
|
|
f.write('{0}\n'.format(csv))
|
|
|
|
|
|
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()
|