diff options
| author | Guilhem Moulin <guilhem@fripost.org> | 2023-09-27 18:14:17 +0200 | 
|---|---|---|
| committer | Guilhem Moulin <guilhem@fripost.org> | 2023-09-27 18:14:17 +0200 | 
| commit | 2f99bb69f87c29ee252a597aa76907cc2d94d9c1 (patch) | |
| tree | 046afd69bbec76e25f67a5a930f931197cca0bd4 | |
| parent | 4f6ec04e1c14008db19e4090c08feccb82634a48 (diff) | |
Search filter: Use traditional GIS order for WGS coordinates.
The search filter expects longitude first.
| -rwxr-xr-x | gis-observation-map | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/gis-observation-map b/gis-observation-map index 7fa1360..1b6ba44 100755 --- a/gis-observation-map +++ b/gis-observation-map @@ -178,6 +178,8 @@ def idx_intersects(idx_path, geometries):          print(f'WARN: {idx_path}: has {ds.GetLayerCount()} != 1 layers', file=sys.stderr)      layer = ds.GetLayer() +    source_srs = layer.GetSpatialRef() +    transform_srs = osr.CoordinateTransformation(source_srs, target_srs)      locFieldIdx = layer.FindFieldIndex("location", True)      locations = [] @@ -278,8 +280,8 @@ def geometricFilterPolygon(polygon):              raise Exception('Not a linear ring')          ring2 = []          for i in range(n): -            lat, lon = ring.GetPoint_2D(i) -            ring2.append([lat, lon]) +            lon, lat = ring.GetPoint_2D(i) +            ring2.append([lon, lat])          polygon2.append(ring2)      return { @@ -291,6 +293,7 @@ def geometricFilterPolygon(polygon):  def geometricFilter(geometries):      wgs84 = osr.SpatialReference()      wgs84.ImportFromEPSG(4326) # WGS84 +    wgs84.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER)      towgs84 = osr.CoordinateTransformation(target_srs, wgs84)      myGeometries = [] | 
