Precision metadata for Google
This commit is contained in:
@@ -35,3 +35,6 @@ def _reset():
|
||||
GD = None
|
||||
|
||||
from geocoder import run_street_point_geocoder, StreetPointBulkGeocoder
|
||||
|
||||
PRECISION_PRECISE = 'precise'
|
||||
PRECISION_INTERPOLATED = 'interpolated'
|
||||
|
||||
@@ -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]
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user