MapKit 座標から地名などの取得
座標から Placemark 情報取得
coord: CLLocationCoordinate2D
は取得済だとして、
placemark: CLPlacemark
を取得する
swift
let geoCoder = CLGeocoder()
let location = CLLocation(latitude: coord.latitude, longitude: coord.longitude)
geoCoder.reverseGeocodeLocation(location) { placemarks, error in
if let placemark = placemarks?.first {
print(placemark.name)
print(placemark.location?.coordinate)
}
}
Placemark から情報取得
- 型名は
CLPlacemark
name
では 施設名の場合は施設名、そうでない場合は番地までの情報が取得されるようだ
項目 | 例1 | 例2 | 例3 |
---|---|---|---|
name | 弘明寺町XXX-X | 西蒲田X丁目XX-X | 猿楽小学校 |
locality | 横浜市南区 | 大田区 | 渋谷区 |
subLocality | 弘明寺町 | 西蒲田 | 猿楽町 |
administrativeArea | 神奈川県 | 東京都 | 東京都 |
subAdministrativeArea | - | - | - |
subLocality と name で情報が一部重複しているが、
ここが国によって違ったとか、そんなトラップがあった気がする。
(日本以外を表示する機会があった場合に調べる)
横道
- これを「住所」と書くと、人の住んでいる場所とも限らないので違和感
- 「位置情報」と書くと coord のみのように見えてしまう
- 適切なのは「所在地」や「地名」だろうか
- 英語でも、address ではなく location か