Fix HERE GS7 metadata precision
This commit is contained in:
parent
46809cd760
commit
6dd18c40a8
@ -176,17 +176,17 @@ class HereMapsGeocoderV7(Traceable):
|
|||||||
]
|
]
|
||||||
|
|
||||||
QUALIFIED_PARAMS = [
|
QUALIFIED_PARAMS = [
|
||||||
'state',
|
'state',
|
||||||
'city',
|
'city',
|
||||||
'county',
|
'county',
|
||||||
'district',
|
'district',
|
||||||
'postalcode',
|
'postalcode',
|
||||||
'housenumber',
|
'housenumber',
|
||||||
'street'
|
'street'
|
||||||
]
|
]
|
||||||
|
|
||||||
PRECISION_BY_MATCH_TYPE = {
|
PRECISION_BY_MATCH_TYPE = {
|
||||||
'pointAddress': PRECISION_PRECISE,
|
'PA': PRECISION_PRECISE,
|
||||||
'interpolated': PRECISION_INTERPOLATED
|
'interpolated': PRECISION_INTERPOLATED
|
||||||
}
|
}
|
||||||
MATCH_TYPE_BY_MATCH_LEVEL = {
|
MATCH_TYPE_BY_MATCH_LEVEL = {
|
||||||
@ -261,7 +261,7 @@ class HereMapsGeocoderV7(Traceable):
|
|||||||
|
|
||||||
def _parse_country(self, country):
|
def _parse_country(self, country):
|
||||||
country_iso3 = country_to_iso3(country) or country
|
country_iso3 = country_to_iso3(country) or country
|
||||||
|
|
||||||
parsed_country = "countryCode:{0}".format(country_iso3) if (country_iso3 and self._is_iso3_country(country_iso3)) else None
|
parsed_country = "countryCode:{0}".format(country_iso3) if (country_iso3 and self._is_iso3_country(country_iso3)) else None
|
||||||
|
|
||||||
return parsed_country
|
return parsed_country
|
||||||
@ -279,7 +279,7 @@ class HereMapsGeocoderV7(Traceable):
|
|||||||
parsed_params = {'q': q}
|
parsed_params = {'q': q}
|
||||||
|
|
||||||
qq = self._get_qq(params)
|
qq = self._get_qq(params)
|
||||||
|
|
||||||
parsed_country = self._parse_country(country)
|
parsed_country = self._parse_country(country)
|
||||||
|
|
||||||
parsed_params.update({k:v for k, v in (('qq', qq), ('in', parsed_country)) if v is not None})
|
parsed_params.update({k:v for k, v in (('qq', qq), ('in', parsed_country)) if v is not None})
|
||||||
@ -323,10 +323,10 @@ class HereMapsGeocoderV7(Traceable):
|
|||||||
def _extract_metadata_from_result(self, result):
|
def _extract_metadata_from_result(self, result):
|
||||||
# See https://stackoverflow.com/questions/51285622/missing-matchtype-at-here-geocoding-responses
|
# See https://stackoverflow.com/questions/51285622/missing-matchtype-at-here-geocoding-responses
|
||||||
precision = self.PRECISION_BY_MATCH_TYPE.get(
|
precision = self.PRECISION_BY_MATCH_TYPE.get(
|
||||||
result.get('resultType'), PRECISION_INTERPOLATED)
|
result.get('houseNumberType'), PRECISION_INTERPOLATED)
|
||||||
match_type = self.MATCH_TYPE_BY_MATCH_LEVEL.get(result.get('resultType'), None)
|
match_type = self.MATCH_TYPE_BY_MATCH_LEVEL.get(result.get('resultType'), None)
|
||||||
return geocoder_metadata(
|
return geocoder_metadata(
|
||||||
result['scoring']['queryScore'],
|
result['scoring']['queryScore'],
|
||||||
precision,
|
precision,
|
||||||
[match_type] if match_type else []
|
[match_type] if match_type else []
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user