Skip to content

Commit e225f77

Browse files
authored
[Fix] Cannot read properties of undefined (reading 'country_code') (#354)
1 parent f6fecdc commit e225f77

File tree

1 file changed

+25
-24
lines changed

1 file changed

+25
-24
lines changed

lib/geocoder/openstreetmapgeocoder.js

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,34 +67,35 @@ OpenStreetMapGeocoder.prototype._geocode = function(value, callback) {
6767
};
6868

6969
OpenStreetMapGeocoder.prototype._formatResult = function(result) {
70-
71-
var countryCode = result.address.country_code;
72-
if (countryCode) {
73-
countryCode = countryCode.toUpperCase();
74-
}
75-
76-
var latitude = result.lat;
77-
if (latitude) {
78-
latitude = parseFloat(latitude);
70+
var countryCode, latitude, longitude, formattedAddress, country, city, state, zipcode, streetName, streetNumber, neighbourhood;
71+
72+
if (result.address) {
73+
countryCode = result.address.country_code ? result.address.country_code.toUpperCase() : undefined;
74+
country = result.address.country;
75+
city = result.address.city || result.address.town || result.address.village || result.address.hamlet;
76+
state = result.address.state;
77+
zipcode = result.address.postcode;
78+
streetName = result.address.road || result.address.cycleway;
79+
streetNumber = result.address.house_number;
80+
neighbourhood = result.address.neighbourhood || '';
7981
}
8082

81-
var longitude = result.lon;
82-
if (longitude) {
83-
longitude = parseFloat(longitude);
84-
}
83+
latitude = result.lat ? parseFloat(result.lat) : undefined;
84+
longitude = result.lon ? parseFloat(result.lon) : undefined;
85+
formattedAddress = result.display_name;
8586

8687
return {
87-
'latitude' : latitude,
88-
'longitude' : longitude,
89-
'formattedAddress': result.display_name,
90-
'country' : result.address.country,
91-
'city' : result.address.city || result.address.town || result.address.village || result.address.hamlet,
92-
'state': result.address.state,
93-
'zipcode' : result.address.postcode,
94-
'streetName': result.address.road || result.address.cycleway,
95-
'streetNumber' : result.address.house_number,
96-
'countryCode' : countryCode,
97-
'neighbourhood': result.address.neighbourhood || ''
88+
'latitude': latitude,
89+
'longitude': longitude,
90+
'formattedAddress': formattedAddress,
91+
'country': country,
92+
'city': city,
93+
'state': state,
94+
'zipcode': zipcode,
95+
'streetName': streetName,
96+
'streetNumber': streetNumber,
97+
'countryCode': countryCode,
98+
'neighbourhood': neighbourhood
9899
};
99100
};
100101

0 commit comments

Comments
 (0)