From 3b00f8a0a4ac1747f1861c7892cbf5ce45900747 Mon Sep 17 00:00:00 2001 From: Joe Graham Date: Wed, 3 Jan 2018 12:27:45 +0200 Subject: [PATCH 1/2] Update googlegeocoder.js --- lib/geocoder/googlegeocoder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/geocoder/googlegeocoder.js b/lib/geocoder/googlegeocoder.js index 54b30ba1..3b391bb8 100644 --- a/lib/geocoder/googlegeocoder.js +++ b/lib/geocoder/googlegeocoder.js @@ -219,6 +219,7 @@ GoogleGeocoder.prototype._formatResult = function (result) { break; // City case 'locality': + case 'sublocality': case 'postal_town': extractedObj.city = result.address_components[i].long_name; break; @@ -243,7 +244,6 @@ GoogleGeocoder.prototype._formatResult = function (result) { break; case 'sublocality_level_1': case 'political': - case 'sublocality': case 'neighborhood': if(!extractedObj.extra.neighborhood) { extractedObj.extra.neighborhood = result.address_components[i].long_name; From c66af94caadaacaa2e2ea952325231a2d7772fe8 Mon Sep 17 00:00:00 2001 From: Joe Date: Wed, 3 Jan 2018 12:38:43 +0200 Subject: [PATCH 2/2] google city - locality gets priority over sublocality and postal_town --- lib/geocoder/googlegeocoder.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/geocoder/googlegeocoder.js b/lib/geocoder/googlegeocoder.js index 3b391bb8..d1b29ab8 100644 --- a/lib/geocoder/googlegeocoder.js +++ b/lib/geocoder/googlegeocoder.js @@ -183,6 +183,7 @@ GoogleGeocoder.prototype._formatResult = function (result) { } }; + var localityFlag = false; for (var i = 0; i < result.address_components.length; i++) { for (var x = 0; x < result.address_components[i].types.length; x++) { var addressType = result.address_components[i].types[x]; @@ -219,9 +220,14 @@ GoogleGeocoder.prototype._formatResult = function (result) { break; // City case 'locality': + localityFlag = true; + extractedObj.city = result.address_components[i].long_name; + break; case 'sublocality': case 'postal_town': - extractedObj.city = result.address_components[i].long_name; + if (!localityFlag) { + extractedObj.city = result.address_components[i].long_name; + } break; // Address case 'postal_code':