iOSの MapKit
は地図の上にデータをオーバレイすることができます。
一方、国土地理院では日本地図に関わる様々なデータを公開しているのですが、実は簡単に MKMapView
へ表示することができちゃいます。
ViewController.swift
import UIKit
import MapKit
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
// 国土地理院が提供する色別標高図のURL
// ここを変えるだけで、様々な地図データを表示できる!
private let tileOverlay = MKTileOverlay(urlTemplate: "https://cyberjapandata.gsi.go.jp/xyz/relief/{z}/{x}/{y}.png")
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
mapView.addOverlay(tileOverlay, level: .aboveLabels)
}
}
extension ViewController: MKMapViewDelegate {
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
return MKTileOverlayRenderer(overlay: overlay)
}
}
透過率を付けて重ね合わせたい場合は MKOverlayRenderer
の alpha
値を調整します。
@IBAction func sliderDidChange(_ slider: UISlider) {
if let renderer = mapView.renderer(for: tileOverlay) {
renderer.alpha = CGFloat(slider.value)
}
}
治水地形分類図 などは昨今の水害への対応に何かに活用できるのではないかと。
各データには利用規約がありますので、利用の際には注意を払っておくと良さそうです。