From 4cff1f8a9d62a0e442281e22a2cdc2260d90b360 Mon Sep 17 00:00:00 2001 From: Al Date: Thu, 26 Nov 2015 12:45:54 -0500 Subject: [PATCH] [fix] Quattroshapes neighborhoods index uses geohashes for slightly better coverage --- scripts/geodata/polygons/reverse_geocode.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/scripts/geodata/polygons/reverse_geocode.py b/scripts/geodata/polygons/reverse_geocode.py index 8edce7e8..886079a2 100644 --- a/scripts/geodata/polygons/reverse_geocode.py +++ b/scripts/geodata/polygons/reverse_geocode.py @@ -252,7 +252,7 @@ class NeighborhoodReverseGeocoder(RTreePolygonIndex): ensure_dir(qs_scratch_dir) logger.info('Creating Quattroshapes neighborhoods') - qs = QuattroshapesReverseGeocoder.create_neighborhoods_index(quattroshapes_dir, qs_scratch_dir) + qs = QuattroshapesNeighborhoodsReverseGeocoder.create_neighborhoods_index(quattroshapes_dir, qs_scratch_dir) logger.info('Creating Zetashapes neighborhoods') zs = cls.create_zetashapes_neighborhoods_index() @@ -574,6 +574,16 @@ class QuattroshapesReverseGeocoder(RTreePolygonIndex): output_dir, index_filename=index_filename, polys_filename=polys_filename) + def sort_level(self, i): + props, p = self.polygons[i] + return self.sort_levels.get(props[self.LEVEL], 0) + + def get_candidate_polygons(self, lat, lon): + candidates = super(QuattroshapesReverseGeocoder, self).get_candidate_polygons(lat, lon) + return sorted(candidates, key=self.sort_level, reverse=True) + + +class QuattroshapesNeighborhoodsReverseGeocoder(GeohashPolygonIndex, QuattroshapesReverseGeocoder): @classmethod def create_neighborhoods_index(cls, quattroshapes_dir, output_dir, @@ -585,14 +595,6 @@ class QuattroshapesReverseGeocoder(RTreePolygonIndex): output_dir, index_filename=index_filename, polys_filename=polys_filename) - def sort_level(self, i): - props, p = self.polygons[i] - return self.sort_levels.get(props[self.LEVEL], 0) - - def get_candidate_polygons(self, lat, lon, return_all=False): - candidates = super(QuattroshapesReverseGeocoder, self).get_candidate_polygons(lat, lon, return_all=return_all) - return sorted(candidates, key=self.sort_level, reverse=True) - class OSMReverseGeocoder(RTreePolygonIndex): '''