Precision metadata for Google

This commit is contained in:
Juan Ignacio Sánchez Lara
2018-07-11 13:59:48 +02:00
parent b779742585
commit 67fee1cce8
3 changed files with 61 additions and 27 deletions

View File

@@ -35,3 +35,6 @@ def _reset():
GD = None
from geocoder import run_street_point_geocoder, StreetPointBulkGeocoder
PRECISION_PRECISE = 'precise'
PRECISION_INTERPOLATED = 'interpolated'

View File

@@ -4,6 +4,7 @@
from urlparse import parse_qs
from exceptions import MalformedResult
from cartodb_services import PRECISION_PRECISE, PRECISION_INTERPOLATED
from cartodb_services.geocoder import compose_address
from cartodb_services.google.exceptions import InvalidGoogleCredentials
from client_factory import GoogleMapsClientFactory
@@ -16,6 +17,12 @@ RELEVANCE_BY_LOCATION_TYPE = {
'RANGE_INTERPOLATED': 0.8,
'APPROXIMATE': 0.7
}
PRECISION_BY_LOCATION_TYPE = {
'ROOFTOP': PRECISION_PRECISE,
'GEOMETRIC_CENTER': PRECISION_PRECISE,
'RANGE_INTERPOLATED': PRECISION_INTERPOLATED,
'APPROXIMATE': PRECISION_INTERPOLATED
}
class GoogleMapsGeocoder():
@@ -64,7 +71,8 @@ class GoogleMapsGeocoder():
partial_match = result.get('partial_match', False)
partial_factor = PARTIAL_FACTOR if partial_match else 1
return {
'relevance': base_relevance * partial_factor
'relevance': base_relevance * partial_factor,
'precision': PRECISION_BY_LOCATION_TYPE[location_type]
}