Skip to content

Commit d8ec0bc

Browse files
committed
Fix formatted address
1 parent 3434d9f commit d8ec0bc

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

MapboxGeocoder/MBPlacemark.swift

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -402,23 +402,19 @@ open class GeocodedPlacemark: Placemark {
402402
return (superiorPlacemarks?.map { $0.name } ?? []).reversed() + [name]
403403
}
404404

405-
@objc open override var name: String {
406-
get {
407-
let text = super.name
408-
// For address features, `text` is just the street name. Look through the fully-qualified address to determine whether to put the house number before or after the street name.
409-
if let houseNumber = address, scope == .address {
410-
let streetName = text
411-
let reversedAddress = "\(streetName) \(houseNumber)"
412-
if qualifiedNameComponents.contains(reversedAddress) {
413-
return reversedAddress
414-
} else {
415-
return "\(houseNumber) \(streetName)"
416-
}
405+
@objc open var formattedName: String {
406+
let text = super.name
407+
// For address features, `text` is just the street name. Look through the fully-qualified address to determine whether to put the house number before or after the street name.
408+
if let houseNumber = address, scope == .address {
409+
let streetName = text
410+
let reversedAddress = "\(streetName) \(houseNumber)"
411+
if qualifiedNameComponents.contains(reversedAddress) {
412+
return reversedAddress
417413
} else {
418-
return text
414+
return "\(houseNumber) \(streetName)"
419415
}
420-
} set {
421-
super.name = name
416+
} else {
417+
return text
422418
}
423419
}
424420

MapboxGeocoderTests/ReverseGeocodingTests.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class ReverseGeocodingTests: XCTestCase {
112112
}
113113

114114
let geocoder = Geocoder(accessToken: BogusToken)
115-
var addressPlacemark: Placemark?
115+
var addressPlacemark: GeocodedPlacemark?
116116
let options = ReverseGeocodeOptions(location: CLLocation(latitude: 37.13284000, longitude: -95.78558000))
117117
let task = geocoder.geocode(options) { (placemarks, attribution, error) in
118118
addressPlacemark = placemarks?.first
@@ -125,6 +125,12 @@ class ReverseGeocodingTests: XCTestCase {
125125
}
126126

127127
XCTAssertNotNil(task)
128-
XCTAssert(addressPlacemark?.name == "850 Eldorado Street", "Address not parsed correctly")
128+
XCTAssert(addressPlacemark?.formattedName == "850 Eldorado Street", "Address not parsed correctly")
129+
130+
let encodedData = try! JSONEncoder().encode(addressPlacemark!)
131+
let decodedAddressPlacemark = try! JSONDecoder().decode(GeocodedPlacemark.self, from: encodedData)
132+
133+
XCTAssertEqual(addressPlacemark?.name, decodedAddressPlacemark.name)
134+
XCTAssertEqual(addressPlacemark?.formattedName, decodedAddressPlacemark.formattedName)
129135
}
130136
}

0 commit comments

Comments
 (0)