Skip to main content

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 か