From 0d030a98c50d55a1905396c9048109f2ba05b78e Mon Sep 17 00:00:00 2001 From: Al Date: Wed, 11 Jan 2017 04:25:54 -0500 Subject: [PATCH] [osm] adding airport polygon index --- scripts/geodata/osm/admin_boundaries.py | 5 +++++ scripts/geodata/polygons/reverse_geocode.py | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/scripts/geodata/osm/admin_boundaries.py b/scripts/geodata/osm/admin_boundaries.py index 0c783df5..edd6e12c 100644 --- a/scripts/geodata/osm/admin_boundaries.py +++ b/scripts/geodata/osm/admin_boundaries.py @@ -320,3 +320,8 @@ class OSMCountryPolygonReader(OSMPolygonReader): class OSMPostalCodesPolygonReader(OSMPolygonReader): def include_polygon(self, props): return props.get('boundary') == 'postal_code' + + +class OSMAirportsPolygonReader(OSMPolygonReader): + def include_polygon(self, props): + return 'aerodrome' in props diff --git a/scripts/geodata/polygons/reverse_geocode.py b/scripts/geodata/polygons/reverse_geocode.py index ea8d4675..c8a57c9b 100644 --- a/scripts/geodata/polygons/reverse_geocode.py +++ b/scripts/geodata/polygons/reverse_geocode.py @@ -470,6 +470,14 @@ class OSMPostalCodeReverseGeocoder(OSMReverseGeocoder): include_property_patterns = OSMReverseGeocoder.include_property_patterns | set(['postal_code']) +class OSMAirportReverseGeocoder(OSMReverseGeocoder): + persistent_polygons = True + cache_size = 10000 + simplify_polygons = False + polygon_reader = OSMAirportsPolygonReader + include_property_patterns = OSMReverseGeocoder.include_property_patterns | set(['iata', 'aerodrome', 'aerodrome:type', 'city_served']) + + class OSMCountryReverseGeocoder(OSMReverseGeocoder): persistent_polygons = True cache_size = 10000 @@ -537,6 +545,9 @@ if __name__ == '__main__': parser.add_argument('-p', '--osm-postal-code-polygons-file', help='Path to OSM postal code polygons file (with dependencies, .osm format)') + parser.add_argument('-r', '--osm-airport-polygons-file', + help='Path to OSM airport polygons file (with dependencies, .osm format)') + parser.add_argument('-c', '--osm-country-polygons-file', help='Path to OSM country polygons file (with dependencies, .osm format)') @@ -557,6 +568,8 @@ if __name__ == '__main__': index = OSMCountryReverseGeocoder.create_from_osm_file(args.osm_country_polygons_file, args.out_dir) elif args.osm_postal_code_polygons_file: index = OSMPostalCodeReverseGeocoder.create_from_osm_file(args.osm_postal_code_polygons_file, args.out_dir) + elif args.osm_airport_polygons_file: + index = OSMAirportReverseGeocoder.create_from_osm_file(args.osm_airport_polygons_file, args.out_dir) elif args.quattroshapes_dir: index = QuattroshapesReverseGeocoder.create_with_quattroshapes(args.quattroshapes_dir, args.out_dir) else: