summaryrefslogtreecommitdiff
path: root/regenerate_index_html.py
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-12-27 20:03:32 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-12-27 20:03:32 +0100
commitabc2e1903f7150eed01f205338887db13e245b21 (patch)
tree4e905bc2dc3744d5d910f86c50a604168dab0eb7 /regenerate_index_html.py
parentda360d32233f361a231b17c3252d660ca45864b2 (diff)
downloadPROJ-data-abc2e1903f7150eed01f205338887db13e245b21.tar.gz
PROJ-data-abc2e1903f7150eed01f205338887db13e245b21.zip
index.html: add a OpenLayers map
Diffstat (limited to 'regenerate_index_html.py')
-rw-r--r--regenerate_index_html.py41
1 files changed, 40 insertions, 1 deletions
diff --git a/regenerate_index_html.py b/regenerate_index_html.py
index 7daa639..1089ed1 100644
--- a/regenerate_index_html.py
+++ b/regenerate_index_html.py
@@ -1,9 +1,11 @@
-from osgeo import gdal
+from osgeo import gdal, ogr
import glob
import os
import json
import subprocess
+cdn_url = 'https://cdn.proj.org'
+
agency_list = json.loads(open('AGENCY.json','rt').read())
agencies = {}
for item in agency_list:
@@ -17,6 +19,16 @@ for dirname in glob.glob('*'):
continue
dirnames.append(dirname)
+gj_ds = ogr.GetDriverByName('GeoJSON').CreateDataSource('files.geojson')
+lyr = gj_ds.CreateLayer('files')
+lyr.CreateField(ogr.FieldDefn('url', ogr.OFTString))
+lyr.CreateField(ogr.FieldDefn('name', ogr.OFTString))
+lyr.CreateField(ogr.FieldDefn('type', ogr.OFTString))
+lyr.CreateField(ogr.FieldDefn('source', ogr.OFTString))
+lyr.CreateField(ogr.FieldDefn('source_id', ogr.OFTString))
+lyr.CreateField(ogr.FieldDefn('source_url', ogr.OFTString))
+lyr.CreateField(ogr.FieldDefn('description', ogr.OFTString))
+
total_size = 0
set_files = set()
for dirname in sorted(dirnames):
@@ -57,6 +69,33 @@ for dirname in sorted(dirnames):
imageDesc = imageDesc[0:pos]
desc = ': ' + imageDesc
+ feat = ogr.Feature(lyr.GetLayerDefn())
+ feat['url'] = cdn_url + '/' + f
+ feat['name'] = f
+ type = ds.GetMetadataItem('TYPE')
+ if type:
+ feat['type'] = type
+ feat['source'] = agency['agency']
+ feat['source_id'] = agency['id']
+ feat['source_url'] = agency['url']
+ if imageDesc:
+ feat['description'] = imageDesc
+ gt = ds.GetGeoTransform()
+ xmin = gt[0] + 0.5 * gt[1]
+ ymax = gt[3] + 0.5 * gt[5]
+ xmax = xmin + gt[1] * (ds.RasterXSize - 1)
+ ymin = ymax + gt[5] * (ds.RasterYSize - 1)
+ geom = ogr.Geometry(ogr.wkbPolygon)
+ ring = ogr.Geometry(ogr.wkbLinearRing)
+ ring.AddPoint_2D(xmin, ymin)
+ ring.AddPoint_2D(xmin, ymax)
+ ring.AddPoint_2D(xmax, ymax)
+ ring.AddPoint_2D(xmax, ymin)
+ ring.AddPoint_2D(xmin, ymin)
+ geom.AddGeometry(ring)
+ feat.SetGeometry(geom)
+ lyr.CreateFeature(feat)
+
size_str = ''
size = os.stat(full_filename).st_size
total_size += size