Skip to main content

Mapbox で 路線を表示/ハイライト サンプル

やりたいこと

路線データを読み込んで、指定した路線をハイライトしたい

前提

Mapbox Studio で国交省から得られる 鉄道路線データ ( N02-20_RailroadSection ) を Tilesets として読み込んでおく

https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N02-2020.html

→ で、 takaaki024.76nc2sae という名前で登録されたとする

サンプルコード

swift
import SwiftUI
import MapboxMaps

struct MapboxView: View {
@State private var highlightedRailwayNames = [
"京王電鉄 京王線",
"小田急電鉄 小田原線",
]

var body: some View {
let center = CLLocationCoordinate2D(latitude: 35.6598, longitude: 139.702389)
let camera = Viewport.camera(center: center, zoom: 13, bearing: 0, pitch: 0)

Map(initialViewport: camera) {
VectorSource(id: "railwaysSource")
.url("mapbox://takaaki024.76nc2sae")

LineLayer(id: "railwaysSource", source: "railwaysSource")
.sourceLayer("N02-20_RailroadSection-ce1z6n")
.lineColor(
Exp(.switchCase) {
Exp(.inExpression) {
Exp(.concat) {
Exp(.get) { "N02_004" }
Exp(.literal) { " " }
Exp(.get) { "N02_003" }
}
highlightedRailwayNames.map { $0 }
}
UIColor.red
UIColor.lightGray
}
)
.lineWidth(3)

}
.ignoresSafeArea()
}
}