diff --git a/.gitignore b/.gitignore index d62251a87..20668ba62 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ DerivedData/ *.ipa src/presets/brandIcons/ +src/traffic-signs/node_modules/ diff --git a/src/Shared/MapLayersView.swift b/src/Shared/MapLayersView.swift index f3dd6f71d..6ebd12c99 100644 --- a/src/Shared/MapLayersView.swift +++ b/src/Shared/MapLayersView.swift @@ -49,6 +49,7 @@ class MapLayersView: UIView { private(set) var gpxLayer: GpxLayer! private(set) var locatorLayer: MercatorTileLayer! private(set) var dataOverlayLayer: DataOverlayLayer! + private(set) var trafficSignOverlayLayer: TrafficSignOverlayLayer! private(set) var quadDownloadLayer: QuadDownloadLayer? private(set) var mapMarkersView: MapMarkersView! // collect all of the above layers @@ -100,6 +101,16 @@ class MapLayersView: UIView { } } + var displayTrafficSignOverlay = false { + didSet { + UserPrefs.shared.mapViewEnableTrafficSigns.value = displayTrafficSignOverlay + trafficSignOverlayLayer.isHidden = !displayTrafficSignOverlay + if displayTrafficSignOverlay { + trafficSignOverlayLayer.refresh() + } + } + } + func initDefaultChildViews(andAlso more: [LayerOrView]) { for layer in more { allLayers.append(layer) @@ -128,6 +139,12 @@ class MapLayersView: UIView { dataOverlayLayer.isHidden = true allLayers.append(dataOverlayLayer) + trafficSignOverlayLayer = TrafficSignOverlayLayer( + viewPort: viewPort, + mapData: mainView.mapView.mapData) + trafficSignOverlayLayer.isHidden = true + allLayers.append(trafficSignOverlayLayer) + mapMarkersView = MapMarkersView(viewPort: viewPort, mapData: AppDelegate.shared.mainView.mapView.mapData) mapMarkersView.isHidden = false @@ -171,6 +188,16 @@ class MapLayersView: UIView { // these need to be loaded late because assigning to them changes the view displayDataOverlayLayers = UserPrefs.shared.mapViewEnableDataOverlay.value ?? false + displayTrafficSignOverlay = UserPrefs.shared.mapViewEnableTrafficSigns.value ?? false + + viewPort.mapTransform.onChange.subscribe(self) { [weak self] _ in + guard let self, self.displayTrafficSignOverlay else { return } + self.trafficSignOverlayLayer.refresh() + } + + mainView.settings.$displayTrafficSigns.subscribe(self) { [weak self] enabled in + self?.displayTrafficSignOverlay = enabled + } mainView.settings.$displayGpxTracks.callAndSubscribe(self) { [weak self] displayGpxTracks in self?.gpxLayer.isHidden = !displayGpxTracks diff --git a/src/Shared/TrafficSigns/TrafficSignCatalog.swift b/src/Shared/TrafficSigns/TrafficSignCatalog.swift new file mode 100644 index 000000000..cfae960c4 --- /dev/null +++ b/src/Shared/TrafficSigns/TrafficSignCatalog.swift @@ -0,0 +1,173 @@ +// +// TrafficSignCatalog.swift +// Go Map!! +// + +import UIKit + +/// Keys supported by the traffic-sign value picker. +enum TrafficSignTagKey { + static let all = ["traffic_sign", "traffic_sign:forward", "traffic_sign:backward"] + + static func isPickerKey(_ key: String) -> Bool { + all.contains(key) + } +} + +struct TrafficSignEntry: Codable, Equatable { + let osmValuePart: String + let signId: String + let name: String + let descriptiveName: String + let kind: String + let imageName: String + let searchTokens: [String] + + var assetName: String { + imageName.replacingOccurrences(of: ".svg", with: "") + } +} + +struct TrafficSignCountryCatalog: Codable { + let entries: [TrafficSignEntry] + let redirects: [String: String] + let frequent: [String] +} + +private struct TrafficSignIndexFile: Codable { + let version: Int + let countries: [String] + let namedTrafficSignValues: [String] + let catalogs: [String: TrafficSignCountryCatalog] +} + +/// A catalog sign or unrecognized free-text fragment preserved from an existing tag value. +enum TrafficSignSelectionItem: Equatable { + case catalog(TrafficSignEntry) + case other(osmValuePart: String, displayLabel: String) + + var osmValuePart: String { + switch self { + case let .catalog(entry): return entry.osmValuePart + case let .other(part, _): return part + } + } + + var isCatalog: Bool { + if case .catalog = self { return true } + return false + } +} + +final class TrafficSignCatalog { + static let shared = TrafficSignCatalog() + + private let index: TrafficSignIndexFile + private let entriesByOsmPart: [String: [String: TrafficSignEntry]] + private let allEntriesByCountry: [String: [TrafficSignEntry]] + + private init() { + let url = Bundle.main.url(forResource: "TrafficSignIndex", withExtension: "json")! + let data = try! Data(contentsOf: url) + index = try! JSONDecoder().decode(TrafficSignIndexFile.self, from: data) + + var byPart: [String: [String: TrafficSignEntry]] = [:] + var allByCountry: [String: [TrafficSignEntry]] = [:] + for (code, catalog) in index.catalogs { + let upper = code.uppercased() + var dict: [String: TrafficSignEntry] = [:] + for entry in catalog.entries { + dict[entry.osmValuePart] = entry + } + byPart[upper] = dict + allByCountry[upper] = catalog.entries + } + entriesByOsmPart = byPart + allEntriesByCountry = allByCountry + } + + func hasCatalog(forCountryCode countryCode: String) -> Bool { + index.catalogs[countryCode.uppercased()] != nil + } + + func countryCodes() -> [String] { + index.countries + } + + func namedValues() -> [String] { + index.namedTrafficSignValues + } + + func redirects(for countryCode: String) -> [String: String] { + index.catalogs[countryCode.uppercased()]?.redirects ?? [:] + } + + func frequentEntries(for countryCode: String) -> [TrafficSignEntry] { + guard let catalog = index.catalogs[countryCode.uppercased()] else { return [] } + return catalog.frequent.compactMap { id in + catalog.entries.first(where: { $0.osmValuePart == id || $0.signId == id }) + } + } + + func entry(forOsmValuePart part: String, countryCode: String) -> TrafficSignEntry? { + entriesByOsmPart[countryCode.uppercased()]?[part] + } + + func entryMatching(signId: String, signValue: String?, countryCode: String) -> TrafficSignEntry? { + let entries = allEntriesByCountry[countryCode.uppercased()] ?? [] + let matches = entries.filter { $0.signId == signId } + if matches.count == 1 { + return matches[0] + } + if matches.count > 1 { + if let signValue = signValue { + return matches.first(where: { $0.osmValuePart.contains("[\(signValue)]") }) + } + return matches.first(where: { !$0.osmValuePart.contains("[") }) + } + return nil + } + + func search(query: String, countryCode: String) -> [TrafficSignEntry] { + guard let catalog = index.catalogs[countryCode.uppercased()] else { return [] } + let q = query.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() + if q.isEmpty { + return frequentEntries(for: countryCode) + } + return catalog.entries.filter { entry in + entry.searchTokens.contains(where: { $0.contains(q) }) + || entry.osmValuePart.lowercased().contains(q) + || entry.descriptiveName.lowercased().contains(q) + || entry.signId.lowercased().contains(q) + } + } + + func image(for entry: TrafficSignEntry) -> UIImage? { + UIImage(named: entry.assetName) + } + + func decompose(tagValue: String, countryCode: String) -> [TrafficSignSelectionItem] { + TrafficSignComposer.decompose(tagValue: tagValue, countryCode: countryCode, catalog: self) + } + + func compose(selection: [TrafficSignSelectionItem], countryCode: String) -> String { + TrafficSignComposer.compose(selection: selection, countryCode: countryCode, catalog: self) + } + + /// Split a tag value into display components for map overlay (catalog icons + text for unknown parts). + func displayComponents(forTagValue tagValue: String, countryCode: String) -> [TrafficSignDisplayComponent] { + decompose(tagValue: tagValue, countryCode: countryCode).map { item in + switch item { + case let .catalog(entry): + return .image(assetName: entry.assetName, label: entry.descriptiveName) + case let .other(part, label): + return .other(label: label.isEmpty ? part : label) + } + } + } +} + +enum TrafficSignDisplayComponent { + case image(assetName: String, label: String) + case other(label: String) +} diff --git a/src/Shared/TrafficSigns/TrafficSignComposer.swift b/src/Shared/TrafficSigns/TrafficSignComposer.swift new file mode 100644 index 000000000..aae64be90 --- /dev/null +++ b/src/Shared/TrafficSigns/TrafficSignComposer.swift @@ -0,0 +1,134 @@ +// +// TrafficSignComposer.swift +// Go Map!! +// +// Offline compose/decompose for traffic_sign values, matching @osm-traffic-signs/converter rules. +// + +import Foundation + +enum TrafficSignComposer { + static func compose(selection: [TrafficSignSelectionItem], + countryCode: String, + catalog: TrafficSignCatalog) -> String + { + let cc = countryCode.uppercased() + guard !cc.isEmpty, !selection.isEmpty else { return "" } + + let named = Set(catalog.namedValues()) + var countryPrefixSet = false + var parts: [String] = [] + + for (index, item) in selection.enumerated() { + let osmPart = item.osmValuePart + let isNamed = named.contains(osmPart) + var countryPrefixString = "" + if !countryPrefixSet, !isNamed { + countryPrefixString = "\(cc):" + countryPrefixSet = true + } + + let kind: String = { + if case let .catalog(entry) = item { return entry.kind } + return "traffic_sign" + }() + + let isFirst = index == 0 + let prevNamed = index > 0 && named.contains(selection[index - 1].osmValuePart) + let separator = isFirst ? "" : (kind == "traffic_sign" || prevNamed ? ";" : ",") + parts.append("\(separator)\(countryPrefixString)\(osmPart)") + } + return parts.joined() + } + + static func decompose(tagValue: String, + countryCode: String, + catalog: TrafficSignCatalog) -> [TrafficSignSelectionItem] + { + let cc = countryCode.uppercased() + guard !cc.isEmpty, !tagValue.isEmpty else { return [] } + + var cleaned = removeKeys(from: tagValue) + cleaned = removeCountryPrefix(from: cleaned, countryPrefix: cc) + let redirects = catalog.redirects(for: countryCode) + let lowerRedirects = Dictionary(uniqueKeysWithValues: redirects.map { ($0.key.lowercased(), $0.value) }) + + let valueParts = splitIntoSignValueParts(cleaned).map { part -> String in + lowerRedirects[part.lowercased()] ?? part + } + + return valueParts.map { part in + if let entry = catalog.entry(forOsmValuePart: part, countryCode: cc) { + return .catalog(entry) + } + let (signId, signValue) = splitSignIdSignValue(part) + if let entry = catalog.entryMatching(signId: signId, signValue: signValue, countryCode: cc) { + return .catalog(entry) + } + let display = part.hasPrefix("\""), part.hasSuffix("\"") ? String(part.dropFirst().dropLast()) : part + return .other(osmValuePart: part, displayLabel: display) + } + } + + // MARK: - Parsing helpers (ported from @osm-traffic-signs/converter) + + private static func splitIntoSignValueParts(_ input: String) -> [String] { + var result: [String] = [] + var current = "" + var bracketDepth = 0 + var inQuotes = false + for char in input { + if char == "\"" { + inQuotes.toggle() + current.append(char) + } else if !inQuotes, char == "[" { + bracketDepth += 1 + current.append(char) + } else if !inQuotes, char == "]" { + bracketDepth = max(0, bracketDepth - 1) + current.append(char) + } else if !inQuotes, bracketDepth == 0, char == "," || char == ";" { + let trimmed = current.trimmingCharacters(in: .whitespaces) + if !trimmed.isEmpty { result.append(trimmed) } + current = "" + } else { + current.append(char) + } + } + let trimmed = current.trimmingCharacters(in: .whitespaces) + if !trimmed.isEmpty { result.append(trimmed) } + return result + } + + private static func removeCountryPrefix(from input: String, countryPrefix: String) -> String { + input + .replacingOccurrences(of: "\(countryPrefix):", with: "") + .replacingOccurrences(of: "\(countryPrefix.lowercased()):", with: "") + } + + private static func removeKeys(from input: String) -> String { + let split = input.split(separator: "=", maxSplits: 1, omittingEmptySubsequences: false) + guard split.count >= 2 else { return input } + let likelyTag = String(split[0]) + if likelyTag.contains("traffic_sign") { + return split.dropFirst().joined(separator: "=") + } + return input + } + + private static func splitSignIdSignValue(_ urlKey: String) -> (signId: String, signValue: String?) { + if urlKey.hasPrefix("\""), urlKey.hasSuffix("\"") { + return (urlKey, nil) + } + let parts = urlKey.split(separator: "[", maxSplits: 1, omittingEmptySubsequences: false) + let signId = String(parts[0]) + if parts.count < 2 { + return (signId, nil) + } + var bracket = String(parts[1]) + if bracket.hasSuffix("]") { + bracket.removeLast() + } + return (signId, bracket.isEmpty ? nil : bracket) + } +} diff --git a/src/Shared/TrafficSigns/TrafficSignOverlayLayer.swift b/src/Shared/TrafficSigns/TrafficSignOverlayLayer.swift new file mode 100644 index 000000000..f360a4d69 --- /dev/null +++ b/src/Shared/TrafficSigns/TrafficSignOverlayLayer.swift @@ -0,0 +1,195 @@ +// +// TrafficSignOverlayLayer.swift +// Go Map!! +// + +import UIKit + +/// Draws compact chains of traffic-sign icons on nodes and ways when enabled in display settings. +final class TrafficSignOverlayLayer: CALayer { + private weak var viewPort: MapViewPort? + private weak var mapData: OsmMapData? + private let catalog = TrafficSignCatalog.shared + private let iconSize: CGFloat = 14 + private let iconOverlap: CGFloat = 8 + + init(viewPort: MapViewPort, mapData: OsmMapData) { + self.viewPort = viewPort + self.mapData = mapData + super.init() + zPosition = ZLAYER.DATA.rawValue + 0.5 + } + + override init(layer: Any) { + let other = layer as! TrafficSignOverlayLayer + viewPort = other.viewPort + mapData = other.mapData + super.init(layer: layer) + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError() + } + + func refresh() { + guard let viewPort = viewPort, let mapData = mapData else { return } + let country = AppDelegate.shared.mainView.currentRegion.country.uppercased() + guard catalog.hasCatalog(forCountryCode: country) else { + sublayers = nil + return + } + + let rect = viewPort.boundingLatLonForScreen() + var newLayers: [CALayer] = [] + + mapData.enumerateObjects(inRegion: rect) { obj in + if let node = obj as? OsmNode { + self.addChains(for: node, country: country, viewPort: viewPort, into: &newLayers) + } else if let way = obj as? OsmWay { + self.addChains(for: way, country: country, viewPort: viewPort, into: &newLayers) + } + } + + sublayers = newLayers + } + + private func addChains(for node: OsmNode, + country: String, + viewPort: MapViewPort, + into layers: inout [CALayer]) + { + let tags = node.tags + let pt = MapTransform.mapPoint(forLatLon: node.latLon) + let screen = viewPort.mapTransform.screenPoint(forMapPoint: pt, birdsEye: true) + + if let value = tags["traffic_sign"], !value.isEmpty { + addBeadChain(components: catalog.displayComponents(forTagValue: value, countryCode: country), + at: screen, + angle: 0, + into: &layers) + } + for (key, angleOffset) in [("traffic_sign:forward", 0.0), ("traffic_sign:backward", .pi)] { + if let value = tags[key], !value.isEmpty { + addBeadChain(components: catalog.displayComponents(forTagValue: value, countryCode: country), + at: CGPoint(x: screen.x, y: screen.y + (key == "traffic_sign:forward" ? -6 : 6)), + angle: angleOffset, + into: &layers) + } + } + } + + private func addChains(for way: OsmWay, + country: String, + viewPort: MapViewPort, + into layers: inout [CALayer]) + { + guard way.nodes.count >= 2 else { return } + let tags = way.tags + + let forwardValue = tags["traffic_sign:forward"] + let backwardValue = tags["traffic_sign:backward"] + let genericValue = tags["traffic_sign"] + let hasForward = !(forwardValue?.isEmpty ?? true) + let hasBackward = !(backwardValue?.isEmpty ?? true) + + if hasForward { + addChainAlongWay(way, value: forwardValue!, country: country, viewPort: viewPort, reversed: false, into: &layers) + } else if !hasBackward, let genericValue, !genericValue.isEmpty { + addChainAlongWay(way, value: genericValue, country: country, viewPort: viewPort, reversed: false, into: &layers) + } + + if hasBackward { + addChainAlongWay(way, value: backwardValue!, country: country, viewPort: viewPort, reversed: true, into: &layers) + } else if !hasForward, let genericValue, !genericValue.isEmpty { + addChainAlongWay(way, value: genericValue, country: country, viewPort: viewPort, reversed: true, into: &layers) + } + } + + private func addChainAlongWay(_ way: OsmWay, + value: String, + country: String, + viewPort: MapViewPort, + reversed: Bool, + into layers: inout [CALayer]) + { + let components = catalog.displayComponents(forTagValue: value, countryCode: country) + guard !components.isEmpty else { return } + + let nodes = reversed ? Array(way.nodes.reversed()) : way.nodes + guard nodes.count >= 2, + let midIndex = nodes.indices.dropFirst().dropLast().first + else { + if let node = nodes.first { + let pt = viewPort.mapTransform.screenPoint(forLatLon: node.latLon, birdsEye: true) + addBeadChain(components: components, at: pt, angle: 0, into: &layers) + } + return + } + + let a = MapTransform.mapPoint(forLatLon: nodes[midIndex - 1].latLon) + let b = MapTransform.mapPoint(forLatLon: nodes[midIndex].latLon) + let midMap = OSMPoint(x: (a.x + b.x) / 2, y: (a.y + b.y) / 2) + let midLatLon = MapTransform.latLon(forMapPoint: midMap) + let screen = viewPort.mapTransform.screenPoint(forLatLon: midLatLon, birdsEye: true) + let angle = atan2(b.y - a.y, b.x - a.x) + addBeadChain(components: components, at: screen, angle: CGFloat(angle), into: &layers) + } + + private func addBeadChain(components: [TrafficSignDisplayComponent], + at center: CGPoint, + angle: CGFloat, + into layers: inout [CALayer]) + { + let count = components.count + guard count > 0 else { return } + let totalWidth = iconSize + CGFloat(max(0, count - 1)) * iconOverlap + var x = center.x - totalWidth / 2 + + for component in components { + let layer = CALayer() + layer.bounds = CGRect(x: 0, y: 0, width: iconSize, height: iconSize) + layer.position = CGPoint(x: x + iconSize / 2, y: center.y) + layer.cornerRadius = 2 + layer.backgroundColor = UIColor.white.withAlphaComponent(0.85).cgColor + layer.borderColor = UIColor.darkGray.cgColor + layer.borderWidth = 0.5 + + switch component { + case let .image(assetName, _): + layer.contents = UIImage(named: assetName)?.cgImage + case let .other(label): + layer.contents = placeholderImage(label: label).cgImage + } + + if angle != 0 { + layer.setAffineTransform(CGAffineTransform(rotationAngle: angle)) + } + layers.append(layer) + x += iconOverlap + } + } + + private func placeholderImage(label: String) -> UIImage { + let size = CGSize(width: iconSize, height: iconSize) + return UIGraphicsImageRenderer(size: size).image { ctx in + UIColor.systemGray.setFill() + ctx.fill(CGRect(origin: .zero, size: size)) + let text = String(label.prefix(2)) + let attrs: [NSAttributedString.Key: Any] = [ + .font: UIFont.systemFont(ofSize: 7, weight: .bold), + .foregroundColor: UIColor.white, + ] + let ts = text.size(withAttributes: attrs) + text.draw(at: CGPoint(x: (size.width - ts.width) / 2, y: (size.height - ts.height) / 2), withAttributes: attrs) + } + } +} + +extension TrafficSignOverlayLayer: MapLayersView.LayerOrView { + var hasTileServer: TileServer? { nil } + + func removeFromSuper() { + removeFromSuperlayer() + } +} diff --git a/src/Shared/UserPrefs.swift b/src/Shared/UserPrefs.swift index b508e36e9..185a76c60 100644 --- a/src/Shared/UserPrefs.swift +++ b/src/Shared/UserPrefs.swift @@ -93,6 +93,7 @@ final class UserPrefs { let mapViewEnableRotation = Pref(key: "mapViewEnableRotation") let mapViewEnableBreadCrumb = Pref(key: "mapViewEnableBreadCrumb") let mapViewEnableDataOverlay = Pref(key: "mapViewEnableDataOverlay") + let mapViewEnableTrafficSigns = Pref(key: "mapViewEnableTrafficSigns") let mapViewEnableTurnRestriction = Pref(key: "mapViewEnableTurnRestriction") let automaticCacheManagement = Pref(key: "automaticCacheManagement") let latestAerialCheckLatLon = Pref(key: "LatestAerialCheckLatLon2") diff --git a/src/iOS/DisplaySettings/Base.lproj/Display.storyboard b/src/iOS/DisplaySettings/Base.lproj/Display.storyboard index 7bd79972a..d2af72264 100644 --- a/src/iOS/DisplaySettings/Base.lproj/Display.storyboard +++ b/src/iOS/DisplaySettings/Base.lproj/Display.storyboard @@ -1462,6 +1462,35 @@ Clear the Basemap or Overlay tile caches to download the latest tiles that refl + + + + + + + + + + + + + + + + + + + + + + + + @@ -1663,6 +1692,7 @@ Clear the Basemap or Overlay tile caches to download the latest tiles that refl + diff --git a/src/iOS/DisplaySettings/DisplayViewController.swift b/src/iOS/DisplaySettings/DisplayViewController.swift index be81237dc..fa8e13078 100644 --- a/src/iOS/DisplaySettings/DisplayViewController.swift +++ b/src/iOS/DisplaySettings/DisplayViewController.swift @@ -17,6 +17,7 @@ class DisplayViewController: UITableViewController { @IBOutlet var notesSwitch: UISwitch! @IBOutlet var questsSwitch: UISwitch! @IBOutlet var dataOverlaySwitch: UISwitch! + @IBOutlet var trafficSignSwitch: UISwitch! @IBOutlet var gpxLoggingSwitch: UISwitch! @IBOutlet var turnRestrictionSwitch: UISwitch! @IBOutlet var objectFiltersSwitch: UISwitch! @@ -80,6 +81,7 @@ class DisplayViewController: UITableViewController { mainView.settings.enableRotation = rotationSwitch.isOn mainView.settings.displayGpxTracks = gpxLoggingSwitch.isOn mainView.mapLayersView.displayDataOverlayLayers = dataOverlaySwitch.isOn + mainView.settings.displayTrafficSigns = trafficSignSwitch.isOn mainView.settings.enableTurnRestriction = turnRestrictionSwitch.isOn mapView.setNeedsLayout() @@ -96,6 +98,10 @@ class DisplayViewController: UITableViewController { mainView.mapLayersView.displayDataOverlayLayers = dataOverlaySwitch.isOn } + @IBAction func trafficSignSwitchChanged(_ sender: Any) { + AppDelegate.shared.mainView.settings.displayTrafficSigns = trafficSignSwitch.isOn + } + @IBAction func toggleObjectFilters(_ sender: UISwitch) { AppDelegate.shared.mapView.objectFilters.enableObjectFilters = sender.isOn } @@ -122,6 +128,7 @@ class DisplayViewController: UITableViewController { notesSwitch.isOn = mainView.viewState.overlayMask.contains(.NOTES) questsSwitch.isOn = mainView.viewState.overlayMask.contains(.QUESTS) dataOverlaySwitch.isOn = mainView.mapLayersView.displayDataOverlayLayers + trafficSignSwitch.isOn = AppDelegate.shared.mainView.settings.displayTrafficSigns gpxLoggingSwitch.isOn = AppDelegate.shared.mainView.settings.displayGpxTracks turnRestrictionSwitch.isOn = AppDelegate.shared.mainView.settings.enableTurnRestriction diff --git a/src/iOS/Go Map!!.xcodeproj/project.pbxproj b/src/iOS/Go Map!!.xcodeproj/project.pbxproj index 62c74711e..be66b3ea8 100644 --- a/src/iOS/Go Map!!.xcodeproj/project.pbxproj +++ b/src/iOS/Go Map!!.xcodeproj/project.pbxproj @@ -7,6 +7,12 @@ objects = { /* Begin PBXBuildFile section */ + FC6F8F1AED48465BBBCE69F0 /* TrafficSignCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D37BDCA2A1C405FBC77C164 /* TrafficSignCatalog.swift */; }; + EDCC972C9D30446CA25133BD /* TrafficSignComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4678D30DF0D64C35BD418219 /* TrafficSignComposer.swift */; }; + F2997189E5C74C459D42D6C6 /* TrafficSignOverlayLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A1D21F8B30945FAB4038789 /* TrafficSignOverlayLayer.swift */; }; + 5BA8B207F3C1472E80A9FCEB /* TrafficSignPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 470862B69D76498182173230 /* TrafficSignPickerViewController.swift */; }; + FE7D2A1C3A1B4433B1B3F329 /* TrafficSignIndex.json in Resources */ = {isa = PBXBuildFile; fileRef = 4D04070308584759906C94B1 /* TrafficSignIndex.json */; }; + 5376D5E09BC54F8DAE7D6C15 /* TrafficSigns.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F0BEC054D15479B9C7884E7 /* TrafficSigns.xcassets */; }; 02008650265B25DC008F37DD /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028816A2265AD9D100C30EA2 /* Database.swift */; }; 0200C1C22703B42600A79804 /* LocationParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0200C1C12703B42600A79804 /* LocationParser.swift */; }; 0200FECD2908B0EB002C3F94 /* GeoJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0200FECC2908B0EB002C3F94 /* GeoJSON.swift */; }; @@ -367,6 +373,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1D37BDCA2A1C405FBC77C164 /* TrafficSignCatalog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TrafficSignCatalog.swift; path = ../Shared/TrafficSigns/TrafficSignCatalog.swift; sourceTree = ""; }; + 4678D30DF0D64C35BD418219 /* TrafficSignComposer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TrafficSignComposer.swift; path = ../Shared/TrafficSigns/TrafficSignComposer.swift; sourceTree = ""; }; + 1A1D21F8B30945FAB4038789 /* TrafficSignOverlayLayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TrafficSignOverlayLayer.swift; path = ../Shared/TrafficSigns/TrafficSignOverlayLayer.swift; sourceTree = ""; }; + 470862B69D76498182173230 /* TrafficSignPickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrafficSignPickerViewController.swift; sourceTree = ""; }; + 4D04070308584759906C94B1 /* TrafficSignIndex.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = TrafficSignIndex.json; path = ../traffic-signs/TrafficSignIndex.json; sourceTree = ""; }; + 9F0BEC054D15479B9C7884E7 /* TrafficSigns.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = TrafficSigns.xcassets; path = ../traffic-signs/TrafficSigns.xcassets; sourceTree = ""; }; 0200C1C12703B42600A79804 /* LocationParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LocationParser.swift; path = ../../Shared/LocationParser.swift; sourceTree = ""; }; 0200FECC2908B0EB002C3F94 /* GeoJSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeoJSON.swift; sourceTree = ""; }; 0202C5FD2E3BFD7500649F26 /* CustomSegmentedControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSegmentedControl.swift; sourceTree = ""; }; @@ -781,6 +793,7 @@ C3004F61263B2524006BF313 /* POIAllTagsViewController.swift */, C3004F53263A99DC006BF313 /* POIAttributesViewController.swift */, ED964A002601D6A900EC0A60 /* POICommonTagsViewController.swift */, + 470862B69D76498182173230 /* TrafficSignPickerViewController.swift */, C3D0969B263CBC1100E3B129 /* POIFeaturePickerViewController.swift */, ED9649F82601D58900EC0A60 /* POIPresetValuePickerController.swift */, ED9649F02601CEC800EC0A60 /* POITabBarController.swift */, @@ -892,6 +905,8 @@ 02EA545D2AB7CCA3004688F9 /* Localizable.xcstrings */, 0254C6CD2579CD88000705B4 /* POI-Icons */, 029A17C7257AB8A70035C6ED /* POI-Icons.xcassets */, + 4D04070308584759906C94B1 /* TrafficSignIndex.json */, + 9F0BEC054D15479B9C7884E7 /* TrafficSigns.xcassets */, 02E9ABC32BA54C9500F0EF69 /* PrivacyInfo.xcprivacy */, ); name = "Supporting Files"; @@ -928,6 +943,7 @@ 02CC7E3C2E2EF248001CA356 /* PhotoCapture.swift */, 02CC01CF2584190A004444EF /* PresetsDatabase */, 02E9DCD72F0E34B300F372A9 /* PresetsDisplay */, + 11C8655FEFF540F38088F7CC /* TrafficSigns */, 02D1ABA02F6DBE1700C2AE7E /* RightClickGestureRecognizer.swift */, 0293B2CE2F5B620F00044DDE /* TableViewControllerMac.swift */, C365A568263FCC9C007DEC94 /* TapAndDragGesture.swift */, @@ -1299,6 +1315,16 @@ path = iD; sourceTree = ""; }; + 11C8655FEFF540F38088F7CC /* TrafficSigns */ = { + isa = PBXGroup; + children = ( + 1D37BDCA2A1C405FBC77C164 /* TrafficSignCatalog.swift */, + 4678D30DF0D64C35BD418219 /* TrafficSignComposer.swift */, + 1A1D21F8B30945FAB4038789 /* TrafficSignOverlayLayer.swift */, + ); + name = TrafficSigns; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -1499,6 +1525,8 @@ 02EA545B2AB7CCA3004688F9 /* InfoPlist.xcstrings in Resources */, 02CE3CE32990A2C800DDACE0 /* QuestSolver.storyboard in Resources */, 029A17C8257AB8A70035C6ED /* POI-Icons.xcassets in Resources */, + FE7D2A1C3A1B4433B1B3F329 /* TrafficSignIndex.json in Resources */, + 5376D5E09BC54F8DAE7D6C15 /* TrafficSigns.xcassets in Resources */, 028F504719BA2F460093C423 /* presets in Resources */, 02AFBF242458C1E800BE43F4 /* BingPlaceholderImage.png in Resources */, 02CE3CEB2991B5FA00DDACE0 /* QuestIcons.xcassets in Resources */, @@ -1592,6 +1620,10 @@ 02C456A829C8DB410077E3FD /* TagInfo.swift in Sources */, ED9649C22601C33E00EC0A60 /* TileServerEditViewController.swift in Sources */, 0210AE0B2F1D9E120031F047 /* MapLayersView.swift in Sources */, + FC6F8F1AED48465BBBCE69F0 /* TrafficSignCatalog.swift in Sources */, + EDCC972C9D30446CA25133BD /* TrafficSignComposer.swift in Sources */, + F2997189E5C74C459D42D6C6 /* TrafficSignOverlayLayer.swift in Sources */, + 5BA8B207F3C1472E80A9FCEB /* TrafficSignPickerViewController.swift in Sources */, 0202C5FE2E3BFD7500649F26 /* CustomSegmentedControl.swift in Sources */, 02CB2405265DB7CB00835F32 /* OpeningHoursRecognizerView.swift in Sources */, 0220526429283498003C6AE1 /* CountryCoder.swift in Sources */, diff --git a/src/iOS/MainViewController.swift b/src/iOS/MainViewController.swift index a38fce602..adf3741a6 100644 --- a/src/iOS/MainViewController.swift +++ b/src/iOS/MainViewController.swift @@ -119,6 +119,12 @@ final class MainViewController: UIViewController, DPadDelegate, } } + @Notify var displayTrafficSigns = UserPrefs.shared.mapViewEnableTrafficSigns.value ?? false { + didSet { + UserPrefs.shared.mapViewEnableTrafficSigns.value = displayTrafficSigns + } + } + @Notify var tileOverlaySelections = UserPrefs.shared.tileOverlaySelections.value ?? [] { didSet { UserPrefs.shared.tileOverlaySelections.value = tileOverlaySelections diff --git a/src/iOS/POI/PresetValueTextField.swift b/src/iOS/POI/PresetValueTextField.swift index d7d5a8e2b..5fb7a3f32 100644 --- a/src/iOS/POI/PresetValueTextField.swift +++ b/src/iOS/POI/PresetValueTextField.swift @@ -183,7 +183,8 @@ class PresetValueTextField: AutocompleteTextField, PanoramaxDelegate { ?? getOpeningHoursButton() ?? getWebsiteButton() ?? getDirectionButton() - let associatedView2 = getHeightButton() + let associatedView2 = getTrafficSignButton() + ?? getHeightButton() ?? getYesNoButton(keyValueDict: owner?.keyValueDict ?? [:]) ?? getUnitsButton() ?? getPhotographButton() @@ -306,6 +307,33 @@ class PresetValueTextField: AutocompleteTextField, PanoramaxDelegate { return nil } + // MARK: Traffic sign picker + + private func getTrafficSignButton() -> UIView? { + guard TrafficSignTagKey.isPickerKey(key) else { return nil } + let country = AppDelegate.shared.mainView.currentRegion.country.uppercased() + guard TrafficSignCatalog.shared.hasCatalog(forCountryCode: country) else { return nil } + let button = UIButton(type: .contactAdd) + button.addTarget(self, action: #selector(openTrafficSignPicker(_:)), for: .touchUpInside) + return button + } + + @objc private func openTrafficSignPicker(_ sender: Any?) { + resignFirstResponder() + guard let viewController = owner.viewController else { return } + let country = AppDelegate.shared.mainView.currentRegion.country.uppercased() + let picker = TrafficSignPickerViewController() + picker.countryCode = country + picker.initialValue = text ?? "" + picker.onApply = { [weak self] newValue in + self?.text = newValue + self?.notifyValueChange(ended: false) + self?.notifyValueChange(ended: true) + } + let nav = UINavigationController(rootViewController: picker) + viewController.present(nav, animated: true) + } + // MARK: Set direction button @IBAction func setDirection(_ sender: Any) { diff --git a/src/iOS/POI/TrafficSignPickerViewController.swift b/src/iOS/POI/TrafficSignPickerViewController.swift new file mode 100644 index 000000000..f2db2a555 --- /dev/null +++ b/src/iOS/POI/TrafficSignPickerViewController.swift @@ -0,0 +1,261 @@ +// +// TrafficSignPickerViewController.swift +// Go Map!! +// + +import UIKit + +final class TrafficSignPickerViewController: UIViewController, + UICollectionViewDataSource, + UICollectionViewDelegateFlowLayout, + UISearchResultsUpdating +{ + var countryCode = "" + var initialValue = "" + var onApply: ((String) -> Void)? + + private var selection: [TrafficSignSelectionItem] = [] + private var searchResults: [TrafficSignEntry] = [] + private let catalog = TrafficSignCatalog.shared + + private let selectedScroll = UIScrollView() + private let selectedStack = UIStackView() + private let collectionView: UICollectionView + private let searchController = UISearchController(searchResultsController: nil) + + private let cellId = "SignCell" + + init() { + let layout = UICollectionViewFlowLayout() + layout.minimumInteritemSpacing = 8 + layout.minimumLineSpacing = 8 + layout.sectionInset = UIEdgeInsets(top: 8, left: 12, bottom: 8, right: 12) + collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) + super.init(nibName: nil, bundle: nil) + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError() + } + + override func viewDidLoad() { + super.viewDidLoad() + view.backgroundColor = .systemBackground + title = NSLocalizedString("Traffic Signs", comment: "Picker title for traffic_sign tag") + + selection = catalog.decompose(tagValue: initialValue, countryCode: countryCode) + updateSearchResults() + + navigationItem.leftBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .cancel, + target: self, + action: #selector(cancelTapped)) + navigationItem.rightBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .done, + target: self, + action: #selector(doneTapped)) + + searchController.searchResultsUpdater = self + searchController.obscuresBackgroundDuringPresentation = false + navigationItem.searchController = searchController + definesPresentationContext = true + + selectedScroll.translatesAutoresizingMaskIntoConstraints = false + selectedScroll.showsHorizontalScrollIndicator = false + selectedStack.axis = .horizontal + selectedStack.spacing = 8 + selectedStack.alignment = .center + selectedStack.translatesAutoresizingMaskIntoConstraints = false + selectedScroll.addSubview(selectedStack) + + collectionView.translatesAutoresizingMaskIntoConstraints = false + collectionView.backgroundColor = .systemBackground + collectionView.dataSource = self + collectionView.delegate = self + collectionView.register(TrafficSignPickerCell.self, forCellWithReuseIdentifier: cellId) + + view.addSubview(selectedScroll) + view.addSubview(collectionView) + + NSLayoutConstraint.activate([ + selectedScroll.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 8), + selectedScroll.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 12), + selectedScroll.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -12), + selectedScroll.heightAnchor.constraint(equalToConstant: 56), + selectedStack.topAnchor.constraint(equalTo: selectedScroll.topAnchor), + selectedStack.leadingAnchor.constraint(equalTo: selectedScroll.leadingAnchor), + selectedStack.trailingAnchor.constraint(equalTo: selectedScroll.trailingAnchor), + selectedStack.bottomAnchor.constraint(equalTo: selectedScroll.bottomAnchor), + selectedStack.heightAnchor.constraint(equalTo: selectedScroll.heightAnchor), + collectionView.topAnchor.constraint(equalTo: selectedScroll.bottomAnchor, constant: 8), + collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + collectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + collectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor), + ]) + + rebuildSelectedRow() + } + + @objc private func cancelTapped() { + dismiss(animated: true) + } + + @objc private func doneTapped() { + let value = catalog.compose(selection: selection, countryCode: countryCode) + onApply?(value) + dismiss(animated: true) + } + + func updateSearchResults(for searchController: UISearchController) { + let query = searchController.searchBar.text ?? "" + searchResults = catalog.search(query: query, countryCode: countryCode) + collectionView.reloadData() + } + + private func updateSearchResults() { + searchResults = catalog.search(query: "", countryCode: countryCode) + } + + private func rebuildSelectedRow() { + selectedStack.arrangedSubviews.forEach { $0.removeFromSuperview() } + for (index, item) in selection.enumerated() { + let chip = makeChip(for: item, index: index) + selectedStack.addArrangedSubview(chip) + } + } + + private func makeChip(for item: TrafficSignSelectionItem, index: Int) -> UIView { + let button = UIButton(type: .system) + button.tag = index + button.addTarget(self, action: #selector(removeChip(_:)), for: .touchUpInside) + + let imageView = UIImageView() + imageView.contentMode = .scaleAspectFit + imageView.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + imageView.widthAnchor.constraint(equalToConstant: 36), + imageView.heightAnchor.constraint(equalToConstant: 36), + ]) + + switch item { + case let .catalog(entry): + imageView.image = catalog.image(for: entry) + button.accessibilityLabel = entry.descriptiveName + case let .other(_, label): + imageView.image = UIImage(systemName: "questionmark.circle") + button.accessibilityLabel = String( + format: NSLocalizedString("Other: %@", comment: "Unrecognized traffic sign fragment"), + label) + } + + button.addSubview(imageView) + NSLayoutConstraint.activate([ + imageView.centerXAnchor.constraint(equalTo: button.centerXAnchor), + imageView.centerYAnchor.constraint(equalTo: button.centerYAnchor), + button.widthAnchor.constraint(equalToConstant: 44), + button.heightAnchor.constraint(equalToConstant: 44), + ]) + return button + } + + @objc private func removeChip(_ sender: UIButton) { + guard sender.tag < selection.count else { return } + selection.remove(at: sender.tag) + rebuildSelectedRow() + collectionView.reloadData() + } + + private func isSelected(_ entry: TrafficSignEntry) -> Bool { + selection.contains(where: { + if case let .catalog(e) = $0 { return e.osmValuePart == entry.osmValuePart } + return false + }) + } + + private func toggle(_ entry: TrafficSignEntry) { + if let idx = selection.firstIndex(where: { + if case let .catalog(e) = $0 { return e.osmValuePart == entry.osmValuePart } + return false + }) { + selection.remove(at: idx) + } else { + selection.append(.catalog(entry)) + } + rebuildSelectedRow() + collectionView.reloadData() + } + + // MARK: Collection view + + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + searchResults.count + } + + func collectionView(_ collectionView: UICollectionView, + cellForItemAt indexPath: IndexPath) -> UICollectionViewCell + { + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! TrafficSignPickerCell + let entry = searchResults[indexPath.item] + cell.configure(entry: entry, image: catalog.image(for: entry), selected: isSelected(entry)) + return cell + } + + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + toggle(searchResults[indexPath.item]) + } + + func collectionView(_ collectionView: UICollectionView, + layout collectionViewLayout: UICollectionViewLayout, + sizeForItemAt indexPath: IndexPath) -> CGSize + { + let columns: CGFloat = 4 + let inset: CGFloat = 12 * 2 + 8 * (columns - 1) + let width = (collectionView.bounds.width - inset) / columns + return CGSize(width: floor(width), height: width + 28) + } +} + +private final class TrafficSignPickerCell: UICollectionViewCell { + private let imageView = UIImageView() + private let label = UILabel() + + override init(frame: CGRect) { + super.init(frame: frame) + contentView.layer.cornerRadius = 8 + contentView.layer.borderWidth = 1 + contentView.layer.borderColor = UIColor.separator.cgColor + + imageView.contentMode = .scaleAspectFit + imageView.translatesAutoresizingMaskIntoConstraints = false + label.font = .systemFont(ofSize: 10) + label.textAlignment = .center + label.numberOfLines = 2 + label.translatesAutoresizingMaskIntoConstraints = false + contentView.addSubview(imageView) + contentView.addSubview(label) + + NSLayoutConstraint.activate([ + imageView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 4), + imageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 4), + imageView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -4), + imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor), + label.topAnchor.constraint(equalTo: imageView.bottomAnchor, constant: 2), + label.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 2), + label.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -2), + label.bottomAnchor.constraint(lessThanOrEqualTo: contentView.bottomAnchor, constant: -2), + ]) + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError() + } + + func configure(entry: TrafficSignEntry, image: UIImage?, selected: Bool) { + imageView.image = image + label.text = entry.descriptiveName + contentView.backgroundColor = selected ? UIColor.systemBlue.withAlphaComponent(0.15) : .secondarySystemBackground + contentView.layer.borderColor = selected ? UIColor.systemBlue.cgColor : UIColor.separator.cgColor + } +} diff --git a/src/traffic-signs/TrafficSignIndex.json b/src/traffic-signs/TrafficSignIndex.json new file mode 100644 index 000000000..e128d7be3 --- /dev/null +++ b/src/traffic-signs/TrafficSignIndex.json @@ -0,0 +1 @@ +{"version":1,"countries":["DE"],"namedTrafficSignValues":["city_limit","maxspeed","none","destination","yes","variable","hazard","signals","give_way","stop","variable_message"],"catalogs":{"DE":{"entries":[{"osmValuePart":"237","signId":"237","name":"Zeichen 237","descriptiveName":"Radweg","kind":"traffic_sign","imageName":"DE_237.svg","searchTokens":["237","zeichen","radweg"]},{"osmValuePart":"238","signId":"238","name":"Zeichen 238","descriptiveName":"Reitweg","kind":"traffic_sign","imageName":"DE_238.svg","searchTokens":["238","zeichen","reitweg"]},{"osmValuePart":"239","signId":"239","name":"Zeichen 239","descriptiveName":"Gehweg","kind":"traffic_sign","imageName":"DE_239.svg","searchTokens":["239","zeichen","gehweg","weg","für","fußgänger"]},{"osmValuePart":"240","signId":"240","name":"Zeichen 240","descriptiveName":"Gemeinsamer Fuß- und Radweg","kind":"traffic_sign","imageName":"DE_240.svg","searchTokens":["240","zeichen","gemeinsamer","fuß-","und","radweg"]},{"osmValuePart":"241-30","signId":"241-30","name":"Zeichen 241-30","descriptiveName":"Getrennter Rad- und Gehweg","kind":"traffic_sign","imageName":"DE_241_30.svg","searchTokens":["241-30","zeichen","getrennter","rad-","und","gehweg","radweg","links"]},{"osmValuePart":"241-31","signId":"241-31","name":"Zeichen 241-31","descriptiveName":"Getrennter Rad- und Gehweg","kind":"traffic_sign","imageName":"DE_241_31.svg","searchTokens":["241-31","zeichen","getrennter","rad-","und","gehweg","radweg","rechts"]},{"osmValuePart":"242.1","signId":"242.1","name":"Zeichen 242.1","descriptiveName":"Fußgängerbereich","kind":"traffic_sign","imageName":"DE_242_1.svg","searchTokens":["242.1","zeichen","fußgängerbereich","beginn","einer","fußgängerzone"]},{"osmValuePart":"242.2","signId":"242.2","name":"Zeichen 242.2","descriptiveName":"Fußgängerzone (Ende)","kind":"traffic_sign","imageName":"DE_242_2.svg","searchTokens":["242.2","zeichen","fußgängerzone","(ende)","ende","einer"]},{"osmValuePart":"244.1","signId":"244.1","name":"Zeichen 244.1","descriptiveName":"Fahrradstraße","kind":"traffic_sign","imageName":"DE_244_1.svg","searchTokens":["244.1","zeichen","fahrradstraße","beginn","einer"]},{"osmValuePart":"244.2","signId":"244.2","name":"Zeichen 244.2","descriptiveName":"Fahrradstraße","kind":"traffic_sign","imageName":"DE_244_2.svg","searchTokens":["244.2","zeichen","fahrradstraße","ende","einer"]},{"osmValuePart":"244.3","signId":"244.3","name":"Zeichen 244.3","descriptiveName":"Fahrradzone","kind":"traffic_sign","imageName":"DE_244_3.svg","searchTokens":["244.3","zeichen","fahrradzone","beginn","einer"]},{"osmValuePart":"244.4","signId":"244.4","name":"Zeichen 244.4","descriptiveName":"Fahrradzone","kind":"traffic_sign","imageName":"DE_244_4.svg","searchTokens":["244.4","zeichen","fahrradzone","ende","einer"]},{"osmValuePart":"325.1","signId":"325.1","name":"Zeichen 325.1","descriptiveName":"Verkehrsberuhigter Bereich","kind":"traffic_sign","imageName":"DE_325_1.svg","searchTokens":["325.1","zeichen","verkehrsberuhigter","bereich","beginn","eines","verkehrsberuhigten","bereichs"]},{"osmValuePart":"325.2","signId":"325.2","name":"Zeichen 325.2","descriptiveName":"Verkehrsberuhigter Bereich (Ende)","kind":"traffic_sign","imageName":"DE_325_2.svg","searchTokens":["325.2","zeichen","verkehrsberuhigter","bereich","(ende)","ende","eines","verkehrsberuhigten","bereichs"]},{"osmValuePart":"350.1","signId":"350.1","name":"Zeichen 350.1","descriptiveName":"Radschnellweg","kind":"traffic_sign","imageName":"DE_350_1.svg","searchTokens":["350.1","zeichen","radschnellweg","beginn","eines","radschnellwegs"]},{"osmValuePart":"350.2","signId":"350.2","name":"Zeichen 350.2","descriptiveName":"Radschnellweg (Ende)","kind":"traffic_sign","imageName":"DE_350_2.svg","searchTokens":["350.2","zeichen","radschnellweg","(ende)","ende","eines","radschnellwegs"]},{"osmValuePart":"245","signId":"245","name":"Zeichen 245","descriptiveName":"Bussonderfahrstreifen","kind":"traffic_sign","imageName":"DE_245.svg","searchTokens":["245","zeichen","bussonderfahrstreifen"]},{"osmValuePart":"250","signId":"250","name":"Zeichen 250","descriptiveName":"Verbot für Fahrzeuge aller Art","kind":"traffic_sign","imageName":"DE_250.svg","searchTokens":["250","zeichen","verbot","für","fahrzeuge","aller","art"]},{"osmValuePart":"260","signId":"260","name":"Zeichen 260","descriptiveName":"Verbot für Krafträder, auch mit Beiwagen, Kleinkrafträder und Mofas sowie für Kraftwagen und sonstige mehrspurige Kraftfahrzeuge","kind":"traffic_sign","imageName":"DE_260.svg","searchTokens":["260","zeichen","verbot","für","krafträder","auch","mit","beiwagen","kleinkrafträder","und","mofas","sowie","kraftwagen","sonstige","mehrspurige","kraftfahrzeuge"]},{"osmValuePart":"251","signId":"251","name":"Zeichen 251","descriptiveName":"Verbot für Kraftwagen und sonstige mehrspurige Kraftfahrzeuge","kind":"traffic_sign","imageName":"DE_251.svg","searchTokens":["251","zeichen","verbot","für","kraftwagen","und","sonstige","mehrspurige","kraftfahrzeuge"]},{"osmValuePart":"253","signId":"253","name":"Zeichen 253","descriptiveName":"Verbot für Kraftfahrzeuge mit einem zulässigen Gesamtgewicht über 3,5 t…","kind":"traffic_sign","imageName":"DE_253.svg","searchTokens":["253","zeichen","verbot","für","kraftfahrzeuge","mit","einem","zulässigen","gesamtgewicht","über","3","5","t…","t","einschließlich","ihrer","anhäger","und","zugmaschinen","ausgenommen","personenkraftwagen","kraftomnibusse"]},{"osmValuePart":"254","signId":"254","name":"Zeichen 254","descriptiveName":"Verbot für Radfahrer","kind":"traffic_sign","imageName":"DE_254.svg","searchTokens":["254","zeichen","verbot","für","radfahrer"]},{"osmValuePart":"255","signId":"255","name":"Zeichen 255","descriptiveName":"Verbot für Krafträder, auch mit Beiwagen, Kleinkrafträder und Mofas","kind":"traffic_sign","imageName":"DE_255.svg","searchTokens":["255","zeichen","verbot","für","krafträder","auch","mit","beiwagen","kleinkrafträder","und","mofas"]},{"osmValuePart":"257-50","signId":"257-50","name":"Zeichen 257-50","descriptiveName":"Verbot für Mofas","kind":"traffic_sign","imageName":"DE_257_50.svg","searchTokens":["257-50","zeichen","verbot","für","mofas"]},{"osmValuePart":"257-51","signId":"257-51","name":"Zeichen 257-51","descriptiveName":"Verbot für Reiter","kind":"traffic_sign","imageName":"DE_257_51.svg","searchTokens":["257-51","zeichen","verbot","für","reiter"]},{"osmValuePart":"257-54","signId":"257-54","name":"Zeichen 257-54","descriptiveName":"Verbot für Kraftomnibusse","kind":"traffic_sign","imageName":"DE_257_54.svg","searchTokens":["257-54","zeichen","verbot","für","kraftomnibusse"]},{"osmValuePart":"257-56","signId":"257-56","name":"Zeichen 257-56","descriptiveName":"Verbot für Personenkraftwagen mit Anhänger","kind":"traffic_sign","imageName":"DE_257_56.svg","searchTokens":["257-56","zeichen","verbot","für","personenkraftwagen","mit","anhänger"]},{"osmValuePart":"259","signId":"259","name":"Zeichen 259","descriptiveName":"Verbot für Fußgänger","kind":"traffic_sign","imageName":"DE_259.svg","searchTokens":["259","zeichen","verbot","für","fußgänger"]},{"osmValuePart":"261","signId":"261","name":"Zeichen 261","descriptiveName":"Verbot für kennzeichnungspflichtige Kraftfahrzeuge mit gefährlichen Gütern","kind":"traffic_sign","imageName":"DE_261.svg","searchTokens":["261","zeichen","verbot","für","kennzeichnungspflichtige","kraftfahrzeuge","mit","gefährlichen","gütern"]},{"osmValuePart":"262[5.5]","signId":"262","name":"Zeichen 262","descriptiveName":"Verbot für Fahrzeuge über angegebenem tatsächlichen Gewicht","kind":"traffic_sign","imageName":"DE_262__5_5__.svg","searchTokens":["262","262[5.5]","zeichen","verbot","für","fahrzeuge","über","angegebenem","tatsächlichen","gewicht"]},{"osmValuePart":"263[8]","signId":"263","name":"Zeichen 263","descriptiveName":"Verbot für Fahrzeuge über angegebene tatsächliche Achslast","kind":"traffic_sign","imageName":"DE_263__8__.svg","searchTokens":["263","263[8]","zeichen","verbot","für","fahrzeuge","über","angegebene","tatsächliche","achslast"]},{"osmValuePart":"264[2]","signId":"264","name":"Zeichen 264","descriptiveName":"Verbot für Fahrzeuge über die angegebene Breite einschließlich Ladung","kind":"traffic_sign","imageName":"DE_264__2__.svg","searchTokens":["264","264[2]","zeichen","verbot","für","fahrzeuge","über","die","angegebene","breite","einschließlich","ladung"]},{"osmValuePart":"265[3.8]","signId":"265","name":"Zeichen 265","descriptiveName":"Verbot für Fahrzeuge über die angegebene Höhe einschließlich Ladung","kind":"traffic_sign","imageName":"DE_265__3_8__.svg","searchTokens":["265","265[3.8]","zeichen","verbot","für","fahrzeuge","über","die","angegebene","höhe","einschließlich","ladung"]},{"osmValuePart":"266[10]","signId":"266","name":"Zeichen 266","descriptiveName":"Verbot für Fahrzeuge und Züge über angegebene Läge einschließlich Ladung","kind":"traffic_sign","imageName":"DE_266__10__.svg","searchTokens":["266","266[10]","zeichen","verbot","für","fahrzeuge","und","züge","über","angegebene","läge","einschließlich","ladung"]},{"osmValuePart":"269","signId":"269","name":"Zeichen 269","descriptiveName":"Verbot für Fahrzeuge mit wassergefährdender Ladung","kind":"traffic_sign","imageName":"DE_269.svg","searchTokens":["269","zeichen","verbot","für","fahrzeuge","mit","wassergefährdender","ladung"]},{"osmValuePart":"268","signId":"268","name":"Zeichen 268","descriptiveName":"Schneeketten vorgeschrieben","kind":"traffic_sign","imageName":"DE_268.svg","searchTokens":["268","zeichen","schneeketten","vorgeschrieben"]},{"osmValuePart":"274.1[47]","signId":"274.1","name":"Zeichen 274.1","descriptiveName":"Tempo ??-Zone","kind":"traffic_sign","imageName":"DE_274_1__47__.svg","searchTokens":["274.1","274.1[47]","zeichen","tempo","??-zone","beginn","einer"]},{"osmValuePart":"274.1","signId":"274.1","name":"Zeichen 274.1","descriptiveName":"Tempo 30-Zone","kind":"traffic_sign","imageName":"DE_274_1.svg","searchTokens":["274.1","zeichen","tempo","30-zone","beginn","einer"]},{"osmValuePart":"274.1-20","signId":"274.1-20","name":"Zeichen 274.1-20","descriptiveName":"Tempo 20-Zone","kind":"traffic_sign","imageName":"DE_274_1_20.svg","searchTokens":["274.1-20","zeichen","tempo","20-zone","beginn","einer"]},{"osmValuePart":"274.2","signId":"274.2","name":"Zeichen 274.2","descriptiveName":"Tempo 30-Zone (Ende)","kind":"traffic_sign","imageName":"DE_274_2.svg","searchTokens":["274.2","zeichen","tempo","30-zone","(ende)","ende","einer"]},{"osmValuePart":"274[47]","signId":"274","name":"Zeichen 274","descriptiveName":"Zulässige Höchstgeschwindigkeit von ?? km/h","kind":"traffic_sign","imageName":"DE_274__47__.svg","searchTokens":["274","274[47]","zeichen","zulässige","höchstgeschwindigkeit","von","??","km","h"]},{"osmValuePart":"274-5","signId":"274-5","name":"Zeichen 274-5","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_5.svg","searchTokens":["274-5","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-10","signId":"274-10","name":"Zeichen 274-10","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_10.svg","searchTokens":["274-10","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-20","signId":"274-20","name":"Zeichen 274-20","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_20.svg","searchTokens":["274-20","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-30","signId":"274-30","name":"Zeichen 274-30","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_30.svg","searchTokens":["274-30","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-40","signId":"274-40","name":"Zeichen 274-40","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_40.svg","searchTokens":["274-40","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-50","signId":"274-50","name":"Zeichen 274-50","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_50.svg","searchTokens":["274-50","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-60","signId":"274-60","name":"Zeichen 274-60","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_60.svg","searchTokens":["274-60","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-70","signId":"274-70","name":"Zeichen 274-70","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_70.svg","searchTokens":["274-70","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-80","signId":"274-80","name":"Zeichen 274-80","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_80.svg","searchTokens":["274-80","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-90","signId":"274-90","name":"Zeichen 274-90","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_90.svg","searchTokens":["274-90","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-100","signId":"274-100","name":"Zeichen 274-100","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_100.svg","searchTokens":["274-100","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-110","signId":"274-110","name":"Zeichen 274-110","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_110.svg","searchTokens":["274-110","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-120","signId":"274-120","name":"Zeichen 274-120","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_120.svg","searchTokens":["274-120","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"274-130","signId":"274-130","name":"Zeichen 274-130","descriptiveName":"Zulässige Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_274_130.svg","searchTokens":["274-130","zeichen","zulässige","höchstgeschwindigkeit"]},{"osmValuePart":"278[47]","signId":"278","name":"Zeichen 278","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit von ?? km/h","kind":"traffic_sign","imageName":"DE_278__47__.svg","searchTokens":["278","278[47]","zeichen","ende","der","zulässigen","höchstgeschwindigkeit","von","??","km","h"]},{"osmValuePart":"278-10","signId":"278-10","name":"Zeichen 278-10","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_10.svg","searchTokens":["278-10","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-20","signId":"278-20","name":"Zeichen 278-20","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_20.svg","searchTokens":["278-20","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-30","signId":"278-30","name":"Zeichen 278-30","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_30.svg","searchTokens":["278-30","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-40","signId":"278-40","name":"Zeichen 278-40","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_40.svg","searchTokens":["278-40","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-50","signId":"278-50","name":"Zeichen 278-50","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_50.svg","searchTokens":["278-50","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-60","signId":"278-60","name":"Zeichen 278-60","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_60.svg","searchTokens":["278-60","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-70","signId":"278-70","name":"Zeichen 278-70","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_70.svg","searchTokens":["278-70","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-80","signId":"278-80","name":"Zeichen 278-80","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_80.svg","searchTokens":["278-80","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-90","signId":"278-90","name":"Zeichen 278-90","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_90.svg","searchTokens":["278-90","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-100","signId":"278-100","name":"Zeichen 278-100","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_100.svg","searchTokens":["278-100","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-110","signId":"278-110","name":"Zeichen 278-110","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_110.svg","searchTokens":["278-110","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-120","signId":"278-120","name":"Zeichen 278-120","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_120.svg","searchTokens":["278-120","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"278-130","signId":"278-130","name":"Zeichen 278-130","descriptiveName":"Ende der zulässigen Höchstgeschwindigkeit","kind":"traffic_sign","imageName":"DE_278_130.svg","searchTokens":["278-130","zeichen","ende","der","zulässigen","höchstgeschwindigkeit"]},{"osmValuePart":"275[47]","signId":"275","name":"Zeichen 275","descriptiveName":"Vorgeschriebene Mindestgeschwindigkeit von ?? km/h","kind":"traffic_sign","imageName":"DE_275__47__.svg","searchTokens":["275","275[47]","zeichen","vorgeschriebene","mindestgeschwindigkeit","von","??","km","h"]},{"osmValuePart":"275-30","signId":"275-30","name":"Zeichen 275-30","descriptiveName":"Vorgeschriebene Mindestgeschwindigkeit","kind":"traffic_sign","imageName":"DE_275_30.svg","searchTokens":["275-30","zeichen","vorgeschriebene","mindestgeschwindigkeit"]},{"osmValuePart":"275-40","signId":"275-40","name":"Zeichen 275-40","descriptiveName":"Vorgeschriebene Mindestgeschwindigkeit","kind":"traffic_sign","imageName":"DE_275_40.svg","searchTokens":["275-40","zeichen","vorgeschriebene","mindestgeschwindigkeit"]},{"osmValuePart":"275-80","signId":"275-80","name":"Zeichen 275-80","descriptiveName":"Vorgeschriebene Mindestgeschwindigkeit","kind":"traffic_sign","imageName":"DE_275_80.svg","searchTokens":["275-80","zeichen","vorgeschriebene","mindestgeschwindigkeit"]},{"osmValuePart":"279[47]","signId":"279","name":"Zeichen 279","descriptiveName":"Ende der vorgeschriebenen Mindestgeschwindigkeit von ?? km/h","kind":"traffic_sign","imageName":"DE_279__47__.svg","searchTokens":["279","279[47]","zeichen","ende","der","vorgeschriebenen","mindestgeschwindigkeit","von","??","km","h"]},{"osmValuePart":"279-40","signId":"279-40","name":"Zeichen 279-40","descriptiveName":"Ende der vorgeschriebenen Mindestgeschwindigkeit","kind":"traffic_sign","imageName":"DE_279_40.svg","searchTokens":["279-40","zeichen","ende","der","vorgeschriebenen","mindestgeschwindigkeit"]},{"osmValuePart":"279-80","signId":"279-80","name":"Zeichen 279-80","descriptiveName":"Ende der vorgeschriebenen Mindestgeschwindigkeit","kind":"traffic_sign","imageName":"DE_279_80.svg","searchTokens":["279-80","zeichen","ende","der","vorgeschriebenen","mindestgeschwindigkeit"]},{"osmValuePart":"276","signId":"276","name":"Zeichen 276","descriptiveName":"Überholverbot für Kraftfahrzeuge aller Art","kind":"traffic_sign","imageName":"DE_276.svg","searchTokens":["276","zeichen","überholverbot","für","kraftfahrzeuge","aller","art"]},{"osmValuePart":"277","signId":"277","name":"Zeichen 277","descriptiveName":"Überholverbot für Kraftfahrzeuge über 3,5 t","kind":"traffic_sign","imageName":"DE_277.svg","searchTokens":["277","zeichen","überholverbot","für","kraftfahrzeuge","über","3","5","t"]},{"osmValuePart":"277.1","signId":"277.1","name":"Zeichen 277.1","descriptiveName":"Verbot des Überholens von einspurigen Fahrzeugen für mehrspurige Kraftfahrzeuge und Krafträder mit Beiwagen","kind":"traffic_sign","imageName":"DE_277_1.svg","searchTokens":["277.1","zeichen","verbot","des","überholens","von","einspurigen","fahrzeugen","für","mehrspurige","kraftfahrzeuge","und","krafträder","mit","beiwagen"]},{"osmValuePart":"354","signId":"354","name":"Zeichen 354","descriptiveName":"Wasserschutzgebiet","kind":"traffic_sign","imageName":"DE_354.svg","searchTokens":["354","zeichen","wasserschutzgebiet"]},{"osmValuePart":"1020-12","signId":"1020-12","name":"Zusatzzeichen 1020-12","descriptiveName":"Radfahrer und Anlieger frei","kind":"exception_modifier","imageName":"DE_1020_12.svg","searchTokens":["1020-12","zusatzzeichen","radfahrer","und","anlieger","frei","im","sinne","von","bewohner"]},{"osmValuePart":"1020-30","signId":"1020-30","name":"Zusatzzeichen 1020-30","descriptiveName":"Anlieger frei","kind":"exception_modifier","imageName":"DE_1020_30.svg","searchTokens":["1020-30","zusatzzeichen","anlieger","frei","im","sinne","von","bewohner","und","lieferverkehr"]},{"osmValuePart":"1022-10","signId":"1022-10","name":"Zusatzzeichen 1022-10","descriptiveName":"Radfahrer frei","kind":"exception_modifier","imageName":"DE_1022_10.svg","searchTokens":["1022-10","zusatzzeichen","radfahrer","frei"]},{"osmValuePart":"1022-11","signId":"1022-11","name":"Zusatzzeichen 1022-11","descriptiveName":"Mofas frei","kind":"exception_modifier","imageName":"DE_1022_11.svg","searchTokens":["1022-11","zusatzzeichen","mofas","frei"]},{"osmValuePart":"1022-13","signId":"1022-13","name":"Zusatzzeichen 1022-13","descriptiveName":"E-Bikes frei","kind":"exception_modifier","imageName":"DE_1022_13.svg","searchTokens":["1022-13","zusatzzeichen","e-bikes","frei"]},{"osmValuePart":"\"Kleinkrafträder frei\"","signId":"\"Kleinkrafträder frei\"","name":"Zusatzzeichen \"Kleinkrafträder frei\"","descriptiveName":"Kleinkrafträder frei","kind":"exception_modifier","imageName":"DE__Kleinkraftr_der_frei_.svg","searchTokens":["\"kleinkrafträder","frei\"","zusatzzeichen","kleinkrafträder","frei"]},{"osmValuePart":"1022-16","signId":"1022-16","name":"Zusatzzeichen 1022-16","descriptiveName":"Elektrokleinstfahrzeuge frei","kind":"exception_modifier","imageName":"DE_1022_16.svg","searchTokens":["1022-16","zusatzzeichen","elektrokleinstfahrzeuge","frei"]},{"osmValuePart":"\"Kfz-Verkehr frei\"","signId":"\"Kfz-Verkehr frei\"","name":"Zusatzzeichen \"Kfz-Verkehr frei\"","descriptiveName":"Kfz-Verkehr frei","kind":"exception_modifier","imageName":"DE__Kfz_Verkehr_frei_.svg","searchTokens":["\"kfz-verkehr","frei\"","zusatzzeichen","kfz-verkehr","frei"]},{"osmValuePart":"1022-12","signId":"1022-12","name":"Zusatzzeichen 1022-12","descriptiveName":"Krafträder auch mit Beiwagen, Krafträder und Mofas frei","kind":"exception_modifier","imageName":"DE_1022_12.svg","searchTokens":["1022-12","zusatzzeichen","krafträder","auch","mit","beiwagen","und","mofas","frei"]},{"osmValuePart":"1024-10","signId":"1024-10","name":"Zusatzzeichen 1024-10","descriptiveName":"Personenkraftwagen frei","kind":"exception_modifier","imageName":"DE_1024_10.svg","searchTokens":["1024-10","zusatzzeichen","personenkraftwagen","frei"]},{"osmValuePart":"1024-12","signId":"1024-12","name":"Zusatzzeichen 1024-12","descriptiveName":"Kraftfahrzeuge mit einem zulässigen Gesamtgewicht über 3,5 t… frei","kind":"exception_modifier","imageName":"DE_1024_12.svg","searchTokens":["1024-12","zusatzzeichen","kraftfahrzeuge","mit","einem","zulässigen","gesamtgewicht","über","3","5","t…","frei","t","einschließlich","ihrer","anhäger","und","zugmaschinen","ausgenommen","personenkraftwagen","kraftomnibusse","(zulässiges","gewicht","nicht","das","tatsächliche","gewicht)"]},{"osmValuePart":"1024-14","signId":"1024-14","name":"Zusatzzeichen 1024-14","descriptiveName":"Kraftomnibus frei","kind":"exception_modifier","imageName":"DE_1024_14.svg","searchTokens":["1024-14","zusatzzeichen","kraftomnibus","frei"]},{"osmValuePart":"1024-17","signId":"1024-17","name":"Zusatzzeichen 1024-17","descriptiveName":"Kraftfahrzeuge und Züge … frei","kind":"exception_modifier","imageName":"DE_1024_17.svg","searchTokens":["1024-17","zusatzzeichen","kraftfahrzeuge","und","züge","…","frei","die","nicht","schneller","als","25","km","h","fahren","können","oder","dürfen","(im","gegensatz","zu","\"landwirtschaftlicher","verkehr\"","handelt","es","sich","hier","um","eine","fahrzeugklasse)"]},{"osmValuePart":"1026-30","signId":"1026-30","name":"Zusatzzeichen 1026-30","descriptiveName":"Taxi frei","kind":"exception_modifier","imageName":"DE_1026_30.svg","searchTokens":["1026-30","zusatzzeichen","taxi","frei"]},{"osmValuePart":"1026-32","signId":"1026-32","name":"Zusatzzeichen 1026-32","descriptiveName":"Linienverkehr frei","kind":"exception_modifier","imageName":"DE_1026_32.svg","searchTokens":["1026-32","zusatzzeichen","linienverkehr","frei"]},{"osmValuePart":"1026-35","signId":"1026-35","name":"Zusatzzeichen 1026-35","descriptiveName":"Lieferverkehr frei","kind":"exception_modifier","imageName":"DE_1026_35.svg","searchTokens":["1026-35","zusatzzeichen","lieferverkehr","frei"]},{"osmValuePart":"1026-36","signId":"1026-36","name":"Zusatzzeichen 1026-36","descriptiveName":"Landwirtschaftlicher Verkehr frei","kind":"exception_modifier","imageName":"DE_1026_36.svg","searchTokens":["1026-36","zusatzzeichen","landwirtschaftlicher","verkehr","frei"]},{"osmValuePart":"1020-13","signId":"1020-13","name":"Zusatzzeichen 1020-13","descriptiveName":"Inline Skater frei","kind":"exception_modifier","imageName":"DE_1020_13.svg","searchTokens":["1020-13","zusatzzeichen","inline","skater","frei"]},{"osmValuePart":"1020-32","signId":"1020-32","name":"Zusatzzeichen 1020-32","descriptiveName":"Bewohner mit Parkausweis Nr. … frei","kind":"exception_modifier","imageName":"DE_1020_32.svg","searchTokens":["1020-32","zusatzzeichen","bewohner","mit","parkausweis","nr.","…","frei"]},{"osmValuePart":"1026-33","signId":"1026-33","name":"Zusatzzeichen 1026-33","descriptiveName":"Einsatzfahrzeuge frei","kind":"exception_modifier","imageName":"DE_1026_33.svg","searchTokens":["1026-33","zusatzzeichen","einsatzfahrzeuge","frei"]},{"osmValuePart":"1026-37","signId":"1026-37","name":"Zusatzzeichen 1026-37","descriptiveName":"Forstwirtschaftlicher Verkehr frei","kind":"exception_modifier","imageName":"DE_1026_37.svg","searchTokens":["1026-37","zusatzzeichen","forstwirtschaftlicher","verkehr","frei"]},{"osmValuePart":"1026-38","signId":"1026-38","name":"Zusatzzeichen 1026-38","descriptiveName":"Land- und forstwirtschaftlicher Verkehr frei","kind":"exception_modifier","imageName":"DE_1026_38.svg","searchTokens":["1026-38","zusatzzeichen","land-","und","forstwirtschaftlicher","verkehr","frei"]},{"osmValuePart":"1026-39","signId":"1026-39","name":"Zusatzzeichen 1026-39","descriptiveName":"Betriebs- und Versorgungsfahrzeuge frei","kind":"exception_modifier","imageName":"DE_1026_39.svg","searchTokens":["1026-39","zusatzzeichen","betriebs-","und","versorgungsfahrzeuge","frei"]},{"osmValuePart":"1012-32","signId":"1012-32","name":"Zusatzzeichen 1012-32","descriptiveName":"Radfahrer absteigen","kind":"exception_modifier","imageName":"DE_1012_32.svg","searchTokens":["1012-32","zusatzzeichen","radfahrer","absteigen"]},{"osmValuePart":"1010-50","signId":"1010-50","name":"Zusatzzeichen 1010-50","descriptiveName":"Kraftwagen und sonstige mehrspurige Fahrzeuge","kind":"condition_modifier","imageName":"DE_1010_50.svg","searchTokens":["1010-50","zusatzzeichen","kraftwagen","und","sonstige","mehrspurige","fahrzeuge"]},{"osmValuePart":"1010-51","signId":"1010-51","name":"Zusatzzeichen 1010-51","descriptiveName":"Kraftfahrzeuge mit einem zulässigen Gesamtgewicht über 3,5 t…","kind":"condition_modifier","imageName":"DE_1010_51.svg","searchTokens":["1010-51","zusatzzeichen","kraftfahrzeuge","mit","einem","zulässigen","gesamtgewicht","über","3","5","t…","einer","gesamtmasse","t","einschließlich","ihrer","anhänger","und","zugmaschinen","ausgenommen","personenkraftwagen","kraftomnibusse"]},{"osmValuePart":"1010-52","signId":"1010-52","name":"Zusatzzeichen 1010-52","descriptiveName":"Radverkehr","kind":"condition_modifier","imageName":"DE_1010_52.svg","searchTokens":["1010-52","zusatzzeichen","radverkehr"]},{"osmValuePart":"1010-53","signId":"1010-53","name":"Zusatzzeichen 1010-53","descriptiveName":"Fußgänger","kind":"condition_modifier","imageName":"DE_1010_53.svg","searchTokens":["1010-53","zusatzzeichen","fußgänger"]},{"osmValuePart":"1010-54","signId":"1010-54","name":"Zusatzzeichen 1010-54","descriptiveName":"Reiter","kind":"condition_modifier","imageName":"DE_1010_54.svg","searchTokens":["1010-54","zusatzzeichen","reiter"]},{"osmValuePart":"1010-56","signId":"1010-56","name":"Zusatzzeichen 1010-56","descriptiveName":"Straßenbahn","kind":"condition_modifier","imageName":"DE_1010_56.svg","searchTokens":["1010-56","zusatzzeichen","straßenbahn"]},{"osmValuePart":"1010-57","signId":"1010-57","name":"Zusatzzeichen 1010-57","descriptiveName":"Kraftomnibus","kind":"condition_modifier","imageName":"DE_1010_57.svg","searchTokens":["1010-57","zusatzzeichen","kraftomnibus"]},{"osmValuePart":"1010-58","signId":"1010-58","name":"Zusatzzeichen 1010-58","descriptiveName":"Personenkraftwagen","kind":"condition_modifier","imageName":"DE_1010_58.svg","searchTokens":["1010-58","zusatzzeichen","personenkraftwagen"]},{"osmValuePart":"1010-61","signId":"1010-61","name":"Zusatzzeichen 1010-61","descriptiveName":"Kraftfahrzeuge bis 25 km/h","kind":"condition_modifier","imageName":"DE_1010_61.svg","searchTokens":["1010-61","zusatzzeichen","kraftfahrzeuge","bis","25","km","h","und","züge","die","nicht","schneller","als","fahren","können","oder","dürfen"]},{"osmValuePart":"1010-62","signId":"1010-62","name":"Zusatzzeichen 1010-62","descriptiveName":"Krafträder,…","kind":"condition_modifier","imageName":"DE_1010_62.svg","searchTokens":["1010-62","zusatzzeichen","krafträder","…","auch","mit","beiwagen","kleinkrafträder","und","mopeds"]},{"osmValuePart":"1010-63","signId":"1010-63","name":"Zusatzzeichen 1010-63","descriptiveName":"Mofas","kind":"condition_modifier","imageName":"DE_1010_63.svg","searchTokens":["1010-63","zusatzzeichen","mofas"]},{"osmValuePart":"1010-65","signId":"1010-65","name":"Zusatzzeichen 1010-65","descriptiveName":"E-Bikes","kind":"condition_modifier","imageName":"DE_1010_65.svg","searchTokens":["1010-65","zusatzzeichen","e-bikes"]},{"osmValuePart":"1010-66","signId":"1010-66","name":"Zusatzzeichen 1010-66","descriptiveName":"Elektrisch betriebene Fahrzeuge","kind":"condition_modifier","imageName":"DE_1010_66.svg","searchTokens":["1010-66","zusatzzeichen","elektrisch","betriebene","fahrzeuge","mit","e-kennzeichen"]},{"osmValuePart":"1010-68","signId":"1010-68","name":"Zusatzzeichen 1010-68","descriptiveName":"Elektrokleinstfahrzeuge","kind":"condition_modifier","imageName":"DE_1010_68.svg","searchTokens":["1010-68","zusatzzeichen","elektrokleinstfahrzeuge","im","sinne","der","elektrokleinstfahrzeuge-verordnung","(ekfv)"]},{"osmValuePart":"1010-69","signId":"1010-69","name":"Zusatzzeichen 1010-69","descriptiveName":"Lastenfahrrad","kind":"condition_modifier","imageName":"DE_1010_69.svg","searchTokens":["1010-69","zusatzzeichen","lastenfahrrad","fahrrad","zum","transport","von","gütern","oder","personen"]},{"osmValuePart":"1010-12","signId":"1010-12","name":"Zusatzzeichen 1010-12","descriptiveName":"Parkflächen für Anhänger","kind":"condition_modifier","imageName":"DE_1010_12.svg","searchTokens":["1010-12","zusatzzeichen","parkflächen","für","anhänger"]},{"osmValuePart":"1048-11","signId":"1048-11","name":"Zusatzzeichen 1048-11","descriptiveName":"Anhänger","kind":"condition_modifier","imageName":"DE_1048_11.svg","searchTokens":["1048-11","zusatzzeichen","anhänger","zur","anwendung","eines","hauptzeichens","speziell","auf"]},{"osmValuePart":"1049-13","signId":"1049-13","name":"Zusatzzeichen 1049-13","descriptiveName":"Nur Kfz über 3,5 t einschl. ihrer Anhänger, Zugmaschinen, Kraftomnibusse und Pkw mit Anhänger","kind":"condition_modifier","imageName":"DE_1049_13.svg","searchTokens":["1049-13","zusatzzeichen","nur","kfz","über","3","5","t","einschl.","ihrer","anhänger","zugmaschinen","kraftomnibusse","und","pkw","mit","kraftfahrzeuge","einschließlich","personenkraftwagen"]},{"osmValuePart":"1040-30[16:00-18:00]","signId":"1040-30","name":"Zusatzzeichen 1040-30","descriptiveName":"Zeitliche Beschräkung","kind":"condition_modifier","imageName":"DE_1040_30__16_00_18_00__.svg","searchTokens":["1040-30","1040-30[16:00-18:00]","zusatzzeichen","zeitliche","beschräkung"]},{"osmValuePart":"1040-31[08:00-11:00,16:00-18:00]","signId":"1040-31","name":"Zusatzzeichen 1040-31","descriptiveName":"Zeitliche Beschräkung","kind":"condition_modifier","imageName":"DE_1040_31__08_00_11_00_16_00_18_00__.svg","searchTokens":["1040-31","1040-31[08:00-11:00","16:00-18:00]","zusatzzeichen","zeitliche","beschräkung"]},{"osmValuePart":"1042-30","signId":"1042-30","name":"Zusatzzeichen 1042-30","descriptiveName":"Zeitliche Beschräkung: werktags","kind":"condition_modifier","imageName":"DE_1042_30.svg","searchTokens":["1042-30","zusatzzeichen","zeitliche","beschräkung:","werktags"]},{"osmValuePart":"1042-31[Mo-Sa 18:00-19:00]","signId":"1042-31","name":"Zusatzzeichen 1042-31","descriptiveName":"Zeitliche Beschräkung: werktags, von-bis","kind":"condition_modifier","imageName":"DE_1042_31__Mo_Sa_18_00_19_00__.svg","searchTokens":["1042-31","1042-31[mo-sa","18:00-19:00]","zusatzzeichen","zeitliche","beschräkung:","werktags","von-bis"]},{"osmValuePart":"1042-32[PH off;Mo-Sa 8:30-11:30,16:00-18:00]","signId":"1042-32","name":"Zusatzzeichen 1042-32","descriptiveName":"Zeitliche Beschräkung: werktags, von-bis, von-bis","kind":"condition_modifier","imageName":"DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.svg","searchTokens":["1042-32","1042-32[ph","off","mo-sa","8:30-11:30","16:00-18:00]","zusatzzeichen","zeitliche","beschräkung:","werktags","von-bis"]},{"osmValuePart":"1042-33[Mo-Fr 16:00-18:00]","signId":"1042-33","name":"Zusatzzeichen 1042-33","descriptiveName":"Zeitliche Beschräkung: Mo-Fr, von-bis","kind":"condition_modifier","imageName":"DE_1042_33__Mo_Fr_16_00_18_00__.svg","searchTokens":["1042-33","1042-33[mo-fr","16:00-18:00]","zusatzzeichen","zeitliche","beschräkung:","mo-fr","von-bis"]},{"osmValuePart":"1042-34[Tu,Th,Fr 16:00-18:00]","signId":"1042-34","name":"Zusatzzeichen 1042-34","descriptiveName":"Zeitliche Beschräkung: Di,Do,Fr, von-bis","kind":"condition_modifier","imageName":"DE_1042_34__Tu_Th_Fr_16_00_18_00__.svg","searchTokens":["1042-34","1042-34[tu","th","fr","16:00-18:00]","zusatzzeichen","zeitliche","beschräkung:","di","do","von-bis"]},{"osmValuePart":"1042-35[Su,PH 6:00-22:00]","signId":"1042-35","name":"Zusatzzeichen 1042-35","descriptiveName":"Zeitliche Beschräkung: So- und Feiertage, von-bis","kind":"condition_modifier","imageName":"DE_1042_35__Su_PH_6_00_22_00__.svg","searchTokens":["1042-35","1042-35[su","ph","6:00-22:00]","zusatzzeichen","zeitliche","beschräkung:","so-","und","feiertage","von-bis"]},{"osmValuePart":"1042-38","signId":"1042-38","name":"Zusatzzeichen 1042-38","descriptiveName":"Zeitliche Beschräkung: Werktags, außer Samstags","kind":"condition_modifier","imageName":"DE_1042_38.svg","searchTokens":["1042-38","zusatzzeichen","zeitliche","beschräkung:","werktags","außer","samstags"]},{"osmValuePart":"1042-51","signId":"1042-51","name":"Zusatzzeichen 1042-51","descriptiveName":"Zeitliche Beschräkung: Sa und So","kind":"condition_modifier","imageName":"DE_1042_51.svg","searchTokens":["1042-51","zusatzzeichen","zeitliche","beschräkung:","sa","und","so"]},{"osmValuePart":"1053-35","signId":"1053-35","name":"Zusatzzeichen 1053-35","descriptiveName":"Beschräkung: bei Nässe","kind":"condition_modifier","imageName":"DE_1053_35.svg","searchTokens":["1053-35","zusatzzeichen","beschräkung:","bei","nässe"]},{"osmValuePart":"1053-33","signId":"1053-33","name":"Zusatzzeichen 1053-33","descriptiveName":"Massenangabe 7,5 t","kind":"condition_modifier","imageName":"DE_1053_33.svg","searchTokens":["1053-33","zusatzzeichen","massenangabe","7","5","t","zulässige","gesamtmasse","einschließlich","anhänger","überschreitet","die","angegebene","grenze"]},{"osmValuePart":"1053-37","signId":"1053-37","name":"Zusatzzeichen 1053-37","descriptiveName":"Massenangabe 12 t","kind":"condition_modifier","imageName":"DE_1053_37.svg","searchTokens":["1053-37","zusatzzeichen","massenangabe","12","t","zulässige","gesamtmasse","einschließlich","anhänger","überschreitet","die","angegebene","grenze"]},{"osmValuePart":"1060-33","signId":"1060-33","name":"Zusatzzeichen 1060-33","descriptiveName":"Massenangabe 2,8 t","kind":"condition_modifier","imageName":"DE_1060_33.svg","searchTokens":["1060-33","zusatzzeichen","massenangabe","2","8","t","zulässige","gesamtmasse","einschließlich","anhänger","überschreitet","die","angegebene","grenze"]},{"osmValuePart":"1012-31","signId":"1012-31","name":"Zusatzzeichen 1012-31","descriptiveName":"Ende","kind":"exception_modifier","imageName":"DE_1012_31.svg","searchTokens":["1012-31","zusatzzeichen","ende"]},{"osmValuePart":"1000-30","signId":"1000-30","name":"Zusatzzeichen 1000-30","descriptiveName":"Beide Richtungen","kind":"exception_modifier","imageName":"DE_1000_30.svg","searchTokens":["1000-30","zusatzzeichen","beide","richtungen","zwei","gegengerichtete","waagerechte","pfeile"]},{"osmValuePart":"1000-31","signId":"1000-31","name":"Zusatzzeichen 1000-31","descriptiveName":"Beide Richtungen","kind":"exception_modifier","imageName":"DE_1000_31.svg","searchTokens":["1000-31","zusatzzeichen","beide","richtungen","zwei","gegengerichtete","senkrechte","pfeile"]},{"osmValuePart":"1000-32","signId":"1000-32","name":"Zusatzzeichen 1000-32","descriptiveName":"Radverkehr kreuzt von links und rechts","kind":"exception_modifier","imageName":"DE_1000_32.svg","searchTokens":["1000-32","zusatzzeichen","radverkehr","kreuzt","von","links","und","rechts"]},{"osmValuePart":"1000-33","signId":"1000-33","name":"Zusatzzeichen 1000-33","descriptiveName":"Radverkehr im Gegenverkehr","kind":"exception_modifier","imageName":"DE_1000_33.svg","searchTokens":["1000-33","zusatzzeichen","radverkehr","im","gegenverkehr"]},{"osmValuePart":"298","signId":"298","name":"Zeichen 298","descriptiveName":"Sperrflächen","kind":"traffic_sign","imageName":"DE_298.svg","searchTokens":["298","zeichen","sperrflächen"]},{"osmValuePart":"299","signId":"299","name":"Zeichen 299","descriptiveName":"Grenzmarkierung für Halt- und Parkverbote","kind":"traffic_sign","imageName":"DE_299.svg","searchTokens":["299","zeichen","grenzmarkierung","für","halt-","und","parkverbote"]},{"osmValuePart":"295","signId":"295","name":"Zeichen 295","descriptiveName":"Fahrstreifenbegrenzung und Fahrbahnbegrenzung","kind":"traffic_sign","imageName":"DE_295.svg","searchTokens":["295","zeichen","fahrstreifenbegrenzung","und","fahrbahnbegrenzung"]},{"osmValuePart":"340","signId":"340","name":"Zeichen 340","descriptiveName":"Leitlinie","kind":"traffic_sign","imageName":"DE_340.svg","searchTokens":["340","zeichen","leitlinie"]},{"osmValuePart":"136-10","signId":"136-10","name":"Zeichen 136-10","descriptiveName":"Vorsicht, Kinder! – Aufstellung rechts","kind":"traffic_sign","imageName":"DE_136_10.svg","searchTokens":["136-10","zeichen","vorsicht","kinder!","–","aufstellung","rechts"]},{"osmValuePart":"101","signId":"101","name":"Zeichen 101","descriptiveName":"Gefahrstelle","kind":"traffic_sign","imageName":"DE_101.svg","searchTokens":["101","zeichen","gefahrstelle"]},{"osmValuePart":"138-10","signId":"138-10","name":"Zeichen 138-10","descriptiveName":"Radverkehr – Aufstellung rechts","kind":"traffic_sign","imageName":"DE_138_10.svg","searchTokens":["138-10","zeichen","radverkehr","–","aufstellung","rechts"]},{"osmValuePart":"101-15","signId":"101-15","name":"Zeichen 101-15","descriptiveName":"Steinschlag","kind":"traffic_sign","imageName":"DE_101_15.svg","searchTokens":["101-15","zeichen","steinschlag","aufstellung","rechts"]},{"osmValuePart":"101-25","signId":"101-25","name":"Zeichen 101-25","descriptiveName":"Steinschlag","kind":"traffic_sign","imageName":"DE_101_25.svg","searchTokens":["101-25","zeichen","steinschlag","aufstellung","links"]},{"osmValuePart":"103-20","signId":"103-20","name":"Zeichen 103-20","descriptiveName":"Kurve (rechts)","kind":"traffic_sign","imageName":"DE_103_20.svg","searchTokens":["103-20","zeichen","kurve","(rechts)"]},{"osmValuePart":"103-10","signId":"103-10","name":"Zeichen 103-10","descriptiveName":"Kurve (links)","kind":"traffic_sign","imageName":"DE_103_10.svg","searchTokens":["103-10","zeichen","kurve","(links)"]},{"osmValuePart":"201-50","signId":"201-50","name":"Zeichen 201-50","descriptiveName":"Andreaskreuz — stehend","kind":"traffic_sign","imageName":"DE_201_50.svg","searchTokens":["201-50","zeichen","andreaskreuz","—","stehend"]},{"osmValuePart":"201-51","signId":"201-51","name":"Zeichen 201-51","descriptiveName":"Andreaskreuz — stehend","kind":"traffic_sign","imageName":"DE_201_51.svg","searchTokens":["201-51","zeichen","andreaskreuz","—","stehend"]},{"osmValuePart":"\"Gehwegschäden\"","signId":"\"Gehwegschäden\"","name":"Zusatzzeichen \"Gehwegschäden\"","descriptiveName":"Gehwegschäden","kind":"traffic_sign","imageName":"DE__Gehwegsch_den_.svg","searchTokens":["\"gehwegschäden\"","zusatzzeichen","gehwegschäden"]},{"osmValuePart":"\"Radwegschäden\"","signId":"\"Radwegschäden\"","name":"Zusatzzeichen \"Radwegschäden\"","descriptiveName":"Radwegschäden","kind":"traffic_sign","imageName":"DE__Radwegsch_den_.svg","searchTokens":["\"radwegschäden\"","zusatzzeichen","radwegschäden"]},{"osmValuePart":"\"Geh- und Radwegschäden\"","signId":"\"Geh- und Radwegschäden\"","name":"Zusatzzeichen \"Geh- und Radwegschäden\"","descriptiveName":"Geh- und Radwegschäden","kind":"traffic_sign","imageName":"DE__Geh__und_Radwegsch_den_.svg","searchTokens":["\"geh-","und","radwegschäden\"","zusatzzeichen","geh-","radwegschäden"]},{"osmValuePart":"\"Schäden im Gehweg\"","signId":"\"Schäden im Gehweg\"","name":"Zusatzzeichen \"Schäden im Gehweg\"","descriptiveName":"Schäden im Gehweg","kind":"traffic_sign","imageName":"DE__Sch_den_im_Gehweg_.svg","searchTokens":["\"schäden","im","gehweg\"","zusatzzeichen","schäden","gehweg"]},{"osmValuePart":"108[10]","signId":"108","name":"Zeichen 108","descriptiveName":"Gefälle von ??%","kind":"traffic_sign","imageName":"DE_108__10__.svg","searchTokens":["108","108[10]","zeichen","gefälle","von","??%"]},{"osmValuePart":"108-10","signId":"108-10","name":"Zeichen 108-10","descriptiveName":"Gefälle von 10 %","kind":"traffic_sign","imageName":"DE_108_10.svg","searchTokens":["108-10","zeichen","gefälle","von","10","%"]},{"osmValuePart":"108-15","signId":"108-15","name":"Zeichen 108-15","descriptiveName":"Gefälle von 15 %","kind":"traffic_sign","imageName":"DE_108_15.svg","searchTokens":["108-15","zeichen","gefälle","von","15","%"]},{"osmValuePart":"110[10]","signId":"110","name":"Zeichen 110","descriptiveName":"Steigung von ??%","kind":"traffic_sign","imageName":"DE_110__10__.svg","searchTokens":["110","110[10]","zeichen","steigung","von","??%"]},{"osmValuePart":"110-10","signId":"110-10","name":"Zeichen 110-10","descriptiveName":"Steigung von 10 %","kind":"traffic_sign","imageName":"DE_110_10.svg","searchTokens":["110-10","zeichen","steigung","von","10","%"]},{"osmValuePart":"110-15","signId":"110-15","name":"Zeichen 110-15","descriptiveName":"Steigung von 15 %","kind":"traffic_sign","imageName":"DE_110_15.svg","searchTokens":["110-15","zeichen","steigung","von","15","%"]},{"osmValuePart":"1001-30[800]","signId":"1001-30","name":"Zusatzzeichen 1001-30","descriptiveName":"auf ... m","kind":"condition_modifier","imageName":"DE_1001_30__800__.svg","searchTokens":["1001-30","1001-30[800]","zusatzzeichen","auf","...","m"]},{"osmValuePart":"1001-31[3]","signId":"1001-31","name":"Zusatzzeichen 1001-31","descriptiveName":"auf ... km","kind":"condition_modifier","imageName":"DE_1001_31__3__.svg","searchTokens":["1001-31","1001-31[3]","zusatzzeichen","auf","...","km"]},{"osmValuePart":"1001-32[500]","signId":"1001-32","name":"Zusatzzeichen 1001-32","descriptiveName":"noch ... m","kind":"condition_modifier","imageName":"DE_1001_32__500__.svg","searchTokens":["1001-32","1001-32[500]","zusatzzeichen","noch","...","m"]},{"osmValuePart":"1001-33[2]","signId":"1001-33","name":"Zusatzzeichen 1001-33","descriptiveName":"noch ... km","kind":"condition_modifier","imageName":"DE_1001_33__2__.svg","searchTokens":["1001-33","1001-33[2]","zusatzzeichen","noch","...","km"]},{"osmValuePart":"1001-34[800]","signId":"1001-34","name":"Zusatzzeichen 1001-34","descriptiveName":"auf ... m","kind":"condition_modifier","imageName":"DE_1001_34__800__.svg","searchTokens":["1001-34","1001-34[800]","zusatzzeichen","auf","...","m"]},{"osmValuePart":"1001-35[24]","signId":"1001-35","name":"Zusatzzeichen 1001-35","descriptiveName":"auf ... km","kind":"condition_modifier","imageName":"DE_1001_35__24__.svg","searchTokens":["1001-35","1001-35[24]","zusatzzeichen","auf","...","km"]},{"osmValuePart":"1004-30[100]","signId":"1004-30","name":"Zusatzzeichen 1004-30","descriptiveName":"auf ... m","kind":"condition_modifier","imageName":"DE_1004_30__100__.svg","searchTokens":["1004-30","1004-30[100]","zusatzzeichen","auf","...","m"]},{"osmValuePart":"1004-31[2]","signId":"1004-31","name":"Zusatzzeichen 1004-31","descriptiveName":"auf ... km","kind":"condition_modifier","imageName":"DE_1004_31__2__.svg","searchTokens":["1004-31","1004-31[2]","zusatzzeichen","auf","...","km"]},{"osmValuePart":"220-10","signId":"220-10","name":"Zeichen 220-10","descriptiveName":"Einbahnstraße – linksweisend","kind":"traffic_sign","imageName":"DE_220_10.svg","searchTokens":["220-10","zeichen","einbahnstraße","–","linksweisend"]},{"osmValuePart":"220-20","signId":"220-20","name":"Zeichen 220-20","descriptiveName":"Einbahnstraße – rechtsweisend","kind":"traffic_sign","imageName":"DE_220_20.svg","searchTokens":["220-20","zeichen","einbahnstraße","–","rechtsweisend"]},{"osmValuePart":"205","signId":"205","name":"Zeichen 205","descriptiveName":"Vorfahrt gewähren","kind":"traffic_sign","imageName":"DE_205.svg","searchTokens":["205","zeichen","vorfahrt","gewähren"]},{"osmValuePart":"394-50","signId":"394-50","name":"Zeichen 394-50","descriptiveName":"Laternenring – Schild","kind":"traffic_sign","imageName":"DE_394_50.svg","searchTokens":["394-50","zeichen","laternenring","–","schild"]},{"osmValuePart":"206","signId":"206","name":"Zeichen 206","descriptiveName":"Halt! Vorfahrt gewähren","kind":"traffic_sign","imageName":"DE_206.svg","searchTokens":["206","zeichen","halt!","vorfahrt","gewähren"]},{"osmValuePart":"620-40","signId":"620-40","name":"Zeichen 620-40","descriptiveName":"Leitpfosten (rechts)","kind":"traffic_sign","imageName":"DE_620_40.svg","searchTokens":["620-40","zeichen","leitpfosten","(rechts)"]},{"osmValuePart":"620-41","signId":"620-41","name":"Zeichen 620-41","descriptiveName":"Leitpfosten (links)","kind":"traffic_sign","imageName":"DE_620_41.svg","searchTokens":["620-41","zeichen","leitpfosten","(links)"]},{"osmValuePart":"357","signId":"357","name":"Zeichen 357","descriptiveName":"Sackgasse","kind":"traffic_sign","imageName":"DE_357.svg","searchTokens":["357","zeichen","sackgasse"]},{"osmValuePart":"357-50","signId":"357-50","name":"Zeichen 357-50","descriptiveName":"Für Radverkehr und Fußgänger durchlässige Sackgasse","kind":"traffic_sign","imageName":"DE_357_50.svg","searchTokens":["357-50","zeichen","für","radverkehr","und","fußgänger","durchlässige","sackgasse"]},{"osmValuePart":"357-51","signId":"357-51","name":"Zeichen 357-51","descriptiveName":"Für Fußgänger durchlässige Sackgasse","kind":"traffic_sign","imageName":"DE_357_51.svg","searchTokens":["357-51","zeichen","für","fußgänger","durchlässige","sackgasse"]},{"osmValuePart":"357-52","signId":"357-52","name":"Zeichen 357-52","descriptiveName":"Für Radverkehr durchlässige Sackgasse","kind":"traffic_sign","imageName":"DE_357_52.svg","searchTokens":["357-52","zeichen","für","radverkehr","durchlässige","sackgasse"]},{"osmValuePart":"224","signId":"224","name":"Zeichen 224","descriptiveName":"Haltestelle","kind":"traffic_sign","imageName":"DE_224.svg","searchTokens":["224","zeichen","haltestelle"]},{"osmValuePart":"267","signId":"267","name":"Zeichen 267","descriptiveName":"Verbot der Einfahrt","kind":"traffic_sign","imageName":"DE_267.svg","searchTokens":["267","zeichen","verbot","der","einfahrt"]},{"osmValuePart":"306","signId":"306","name":"Zeichen 306","descriptiveName":"Vorfahrtstraße","kind":"traffic_sign","imageName":"DE_306.svg","searchTokens":["306","zeichen","vorfahrtstraße"]},{"osmValuePart":"307","signId":"307","name":"Zeichen 307","descriptiveName":"Ende der Vorfahrtstraße","kind":"traffic_sign","imageName":"DE_307.svg","searchTokens":["307","zeichen","ende","der","vorfahrtstraße"]},{"osmValuePart":"386.3","signId":"386.3","name":"Zeichen 386.3","descriptiveName":"Touristische Unterrichtungstafel","kind":"traffic_sign","imageName":"DE_386_3.svg","searchTokens":["386.3","zeichen","touristische","unterrichtungstafel"]},{"osmValuePart":"385","signId":"385","name":"Zeichen 385","descriptiveName":"Ortshinweistafel","kind":"traffic_sign","imageName":"DE_385.svg","searchTokens":["385","zeichen","ortshinweistafel"]},{"osmValuePart":"626-20","signId":"626-20","name":"Zeichen 626-20","descriptiveName":"Leitplatte, Aufstellung links","kind":"traffic_sign","imageName":"DE_626_20.svg","searchTokens":["626-20","zeichen","leitplatte","aufstellung","links"]},{"osmValuePart":"222","signId":"222","name":"Zeichen 222","descriptiveName":"Vorgeschriebene Vorbeifahrt, Rechts vorbei","kind":"traffic_sign","imageName":"DE_222.svg","searchTokens":["222","zeichen","vorgeschriebene","vorbeifahrt","rechts","vorbei"]},{"osmValuePart":"331.1","signId":"331.1","name":"Zeichen 331.1","descriptiveName":"Kraftfahrstraße","kind":"traffic_sign","imageName":"DE_331_1.svg","searchTokens":["331.1","zeichen","kraftfahrstraße"]},{"osmValuePart":"331.2","signId":"331.2","name":"Zeichen 331.2","descriptiveName":"Ende der Kraftfahrstraße","kind":"traffic_sign","imageName":"DE_331_2.svg","searchTokens":["331.2","zeichen","ende","der","kraftfahrstraße"]},{"osmValuePart":"330.1","signId":"330.1","name":"Zeichen 330.1","descriptiveName":"Autobahn","kind":"traffic_sign","imageName":"DE_330_1.svg","searchTokens":["330.1","zeichen","autobahn"]},{"osmValuePart":"330.2","signId":"330.2","name":"Zeichen 330.2","descriptiveName":"Ende der Autobahn","kind":"traffic_sign","imageName":"DE_330_2.svg","searchTokens":["330.2","zeichen","ende","der","autobahn"]},{"osmValuePart":"301","signId":"301","name":"Zeichen 301","descriptiveName":"Vorfahrt","kind":"traffic_sign","imageName":"DE_301.svg","searchTokens":["301","zeichen","vorfahrt"]},{"osmValuePart":"215","signId":"215","name":"Zeichen 215","descriptiveName":"Kreisverkehr","kind":"traffic_sign","imageName":"DE_215.svg","searchTokens":["215","zeichen","kreisverkehr"]},{"osmValuePart":"449","signId":"449","name":"Zeichen 449","descriptiveName":"Vorwegweiser auf Autobahnen","kind":"traffic_sign","imageName":"DE_449.svg","searchTokens":["449","zeichen","vorwegweiser","auf","autobahnen"]},{"osmValuePart":"438","signId":"438","name":"Zeichen 438","descriptiveName":"Vorwegweiser außerhalb von Autobahnen","kind":"traffic_sign","imageName":"DE_438.svg","searchTokens":["438","zeichen","vorwegweiser","außerhalb","von","autobahnen"]},{"osmValuePart":"439","signId":"439","name":"Zeichen 439","descriptiveName":"Gegliederter Vorwegweiser außerhalb von Autobahnen","kind":"traffic_sign","imageName":"DE_439.svg","searchTokens":["439","zeichen","gegliederter","vorwegweiser","außerhalb","von","autobahnen"]},{"osmValuePart":"Kein Winterdienst","signId":"Kein Winterdienst","name":"Zeichen \"Kein Winterdienst\"","descriptiveName":"Kein Winterdienst","kind":"traffic_sign","imageName":"DE_Kein_Winterdienst.svg","searchTokens":["kein","winterdienst","zeichen","\"kein","winterdienst\"","ein","inoffizielles","verkehrszeichen."]},{"osmValuePart":"Eingeschränkter Winterdienst","signId":"Eingeschränkter Winterdienst","name":"Zeichen \"Eingeschränkter Winterdienst\"","descriptiveName":"Eingeschränkter Winterdienst","kind":"traffic_sign","imageName":"DE_Eingeschr_nkter_Winterdienst.svg","searchTokens":["eingeschränkter","winterdienst","zeichen","\"eingeschränkter","winterdienst\"","ein","inoffizielles","verkehrszeichen."]}],"redirects":{"241":"241-30","242":"242.1","244":"244.1","325":"325.1","274.1[30]":"274.1","274.2[30]":"274.2","274[5]":"274-5","274[10]":"274-10","274[20]":"274-20","274[30]":"274-30","274[40]":"274-40","274[50]":"274-50","274[60]":"274-60","274[70]":"274-70","274[80]":"274-80","274[90]":"274-90","274[100]":"274-100","274[110]":"274-110","274[120]":"274-120","274[130]":"274-130","Kleinkrafträder frei":"\"Kleinkrafträder frei\"","\"Kraftfahrzeuge-frei\"":"\"Kfz-Verkehr frei\"","\"KFZ frei\"":"\"Kfz-Verkehr frei\"","Kraftfahrzeuge-frei":"\"Kfz-Verkehr frei\"","KFZ frei":"\"Kfz-Verkehr frei\"","Gehwegschäden":"\"Gehwegschäden\"","Radwegschäden":"\"Radwegschäden\"","Geh- und Radwegschäden":"\"Geh- und Radwegschäden\"","Schäden im Gehweg":"\"Schäden im Gehweg\"","108-4":"108[4]","108-5":"108[5]","108-6":"108[6]","108-7":"108[7]","108-8":"108[8]","108-9":"108[9]","108-11":"108[11]","108-12":"108[12]","108-13":"108[13]","108-14":"108[14]","108-16":"108[16]","108-17":"108[17]","108-18":"108[18]","108-19":"108[19]","108-20":"108[20]","108-21":"108[21]","108-22":"108[22]","108-23":"108[23]","108-24":"108[24]","108-25":"108[25]","110-4":"110[4]","110-5":"110[5]","110-6":"110[6]","110-7":"110[7]","110-8":"110[8]","110-9":"110[9]","110-11":"110[11]","110-12":"110[12]","110-13":"110[13]","110-14":"110[14]","110-16":"110[16]","110-17":"110[17]","110-18":"110[18]","110-19":"110[19]","110-20":"110[20]","110-21":"110[21]","110-22":"110[22]","110-23":"110[23]","110-24":"110[24]","110-25":"110[25]","no":"none"},"frequent":["205","206","267","274.1","274.2","277","301","306","325.1","330.1","331.1"]}}} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/Contents.json new file mode 100644 index 000000000..c47b5f2f1 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info": { + "author": "xcode", + "version": 1 + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_30.imageset/Contents.json new file mode 100644 index 000000000..3a2b5d504 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1000_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_30.imageset/DE_1000_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_30.imageset/DE_1000_30.svg new file mode 100644 index 000000000..fdf247319 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_30.imageset/DE_1000_30.svg @@ -0,0 +1,79 @@ + + Verkehrszeichen 1000-30 - Beide Richtungen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_31.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_31.imageset/Contents.json new file mode 100644 index 000000000..d3677d77b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_31.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1000_31.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_31.imageset/DE_1000_31.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_31.imageset/DE_1000_31.svg new file mode 100644 index 000000000..eea1e36c5 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_31.imageset/DE_1000_31.svg @@ -0,0 +1,69 @@ + + Verkehrszeichen 1000-31 - Beide Richtungen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_32.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_32.imageset/Contents.json new file mode 100644 index 000000000..df379d477 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_32.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1000_32.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_32.imageset/DE_1000_32.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_32.imageset/DE_1000_32.svg new file mode 100644 index 000000000..1c38f49df --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_32.imageset/DE_1000_32.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1000-32 - Radverkehr kreuzt von links und rechts + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_33.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_33.imageset/Contents.json new file mode 100644 index 000000000..e6bc20622 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_33.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1000_33.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1000_33.imageset/DE_1000_33.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_33.imageset/DE_1000_33.svg new file mode 100644 index 000000000..9a9057c0c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1000_33.imageset/DE_1000_33.svg @@ -0,0 +1,17 @@ + + Verkehrszeichen 1000-33 - Radverkehr im Gegenverkehr + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_30__800__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_30__800__.imageset/Contents.json new file mode 100644 index 000000000..07f7fb44c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_30__800__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1001_30__800__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_30__800__.imageset/DE_1001_30__800__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_30__800__.imageset/DE_1001_30__800__.svg new file mode 100644 index 000000000..2d5d207ca --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_30__800__.imageset/DE_1001_30__800__.svg @@ -0,0 +1,163 @@ + + Verkehrszeichen 1001-30[800] - auf ... m + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_31__3__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_31__3__.imageset/Contents.json new file mode 100644 index 000000000..3c6893a0e --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_31__3__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1001_31__3__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_31__3__.imageset/DE_1001_31__3__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_31__3__.imageset/DE_1001_31__3__.svg new file mode 100644 index 000000000..943fbc19c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_31__3__.imageset/DE_1001_31__3__.svg @@ -0,0 +1,121 @@ + + Verkehrszeichen 1001-31[3] - auf ... km + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_32__500__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_32__500__.imageset/Contents.json new file mode 100644 index 000000000..b50cc039d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_32__500__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1001_32__500__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_32__500__.imageset/DE_1001_32__500__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_32__500__.imageset/DE_1001_32__500__.svg new file mode 100644 index 000000000..0ddc6c816 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_32__500__.imageset/DE_1001_32__500__.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1001-32[500] - noch ... m + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_33__2__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_33__2__.imageset/Contents.json new file mode 100644 index 000000000..76bfee778 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_33__2__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1001_33__2__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_33__2__.imageset/DE_1001_33__2__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_33__2__.imageset/DE_1001_33__2__.svg new file mode 100644 index 000000000..120fd8c29 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_33__2__.imageset/DE_1001_33__2__.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1001-33[2] - noch ... km + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_34__800__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_34__800__.imageset/Contents.json new file mode 100644 index 000000000..617fa64ba --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_34__800__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1001_34__800__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_34__800__.imageset/DE_1001_34__800__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_34__800__.imageset/DE_1001_34__800__.svg new file mode 100644 index 000000000..f7d0282e4 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_34__800__.imageset/DE_1001_34__800__.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1001-34[800] - auf ... m + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_35__24__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_35__24__.imageset/Contents.json new file mode 100644 index 000000000..0bba6059a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_35__24__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1001_35__24__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1001_35__24__.imageset/DE_1001_35__24__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_35__24__.imageset/DE_1001_35__24__.svg new file mode 100644 index 000000000..a82fcf0a9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1001_35__24__.imageset/DE_1001_35__24__.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1001-35[24] - auf ... km + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1004_30__100__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_30__100__.imageset/Contents.json new file mode 100644 index 000000000..857bd2093 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_30__100__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1004_30__100__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1004_30__100__.imageset/DE_1004_30__100__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_30__100__.imageset/DE_1004_30__100__.svg new file mode 100644 index 000000000..06c382f26 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_30__100__.imageset/DE_1004_30__100__.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1004-30[100] - auf ... m + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1004_31__2__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_31__2__.imageset/Contents.json new file mode 100644 index 000000000..67d18e93a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_31__2__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1004_31__2__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1004_31__2__.imageset/DE_1004_31__2__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_31__2__.imageset/DE_1004_31__2__.svg new file mode 100644 index 000000000..5137c4fa5 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1004_31__2__.imageset/DE_1004_31__2__.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1004-31[2] - auf ... km + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_101.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_101.imageset/Contents.json new file mode 100644 index 000000000..cc9ea4ba0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_101.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_101.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_101.imageset/DE_101.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_101.imageset/DE_101.svg new file mode 100644 index 000000000..65416e714 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_101.imageset/DE_101.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 101 - Gefahrstelle + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_12.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_12.imageset/Contents.json new file mode 100644 index 000000000..e795c46f3 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_12.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_12.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_12.imageset/DE_1010_12.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_12.imageset/DE_1010_12.svg new file mode 100644 index 000000000..ffc965072 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_12.imageset/DE_1010_12.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 1010-12 - Parkflächen für Anhänger + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_50.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_50.imageset/Contents.json new file mode 100644 index 000000000..b41c8975f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_50.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_50.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_50.imageset/DE_1010_50.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_50.imageset/DE_1010_50.svg new file mode 100644 index 000000000..ee2b2666c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_50.imageset/DE_1010_50.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1010-50 - Kraftwagen und sonstige mehrspurige Fahrzeuge + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_51.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_51.imageset/Contents.json new file mode 100644 index 000000000..ae7324ad8 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_51.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_51.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_51.imageset/DE_1010_51.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_51.imageset/DE_1010_51.svg new file mode 100644 index 000000000..921b95c22 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_51.imageset/DE_1010_51.svg @@ -0,0 +1,28 @@ + + Verkehrszeichen 1010-51 - Kraftfahrzeuge mit einem zulässigen Gesamtgewicht über 3,5 t… + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_52.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_52.imageset/Contents.json new file mode 100644 index 000000000..d61b0c9e8 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_52.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_52.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_52.imageset/DE_1010_52.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_52.imageset/DE_1010_52.svg new file mode 100644 index 000000000..8bc72ae10 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_52.imageset/DE_1010_52.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1010-52 - Radverkehr + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_53.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_53.imageset/Contents.json new file mode 100644 index 000000000..a1a55e275 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_53.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_53.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_53.imageset/DE_1010_53.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_53.imageset/DE_1010_53.svg new file mode 100644 index 000000000..c40197ebb --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_53.imageset/DE_1010_53.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 1010-53 - Fußgänger + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_54.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_54.imageset/Contents.json new file mode 100644 index 000000000..f6bb1bb05 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_54.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_54.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_54.imageset/DE_1010_54.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_54.imageset/DE_1010_54.svg new file mode 100644 index 000000000..ee3d3b7f0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_54.imageset/DE_1010_54.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1010-54 - Reiter + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_56.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_56.imageset/Contents.json new file mode 100644 index 000000000..904883107 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_56.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_56.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_56.imageset/DE_1010_56.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_56.imageset/DE_1010_56.svg new file mode 100644 index 000000000..184f74d82 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_56.imageset/DE_1010_56.svg @@ -0,0 +1,20 @@ + + Verkehrszeichen 1010-56 - Straßenbahn + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_57.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_57.imageset/Contents.json new file mode 100644 index 000000000..215c65758 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_57.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_57.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_57.imageset/DE_1010_57.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_57.imageset/DE_1010_57.svg new file mode 100644 index 000000000..34de782c9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_57.imageset/DE_1010_57.svg @@ -0,0 +1,16 @@ + + Verkehrszeichen 1010-57 - Kraftomnibus + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_58.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_58.imageset/Contents.json new file mode 100644 index 000000000..dd3c5e069 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_58.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_58.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_58.imageset/DE_1010_58.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_58.imageset/DE_1010_58.svg new file mode 100644 index 000000000..61836bd2f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_58.imageset/DE_1010_58.svg @@ -0,0 +1,15 @@ + + Verkehrszeichen 1010-58 - Personenkraftwagen + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_61.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_61.imageset/Contents.json new file mode 100644 index 000000000..cac4686b6 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_61.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_61.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_61.imageset/DE_1010_61.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_61.imageset/DE_1010_61.svg new file mode 100644 index 000000000..275ed2a8b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_61.imageset/DE_1010_61.svg @@ -0,0 +1,16 @@ + + Verkehrszeichen 1010-61 - Kraftfahrzeuge bis 25 km/h + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_62.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_62.imageset/Contents.json new file mode 100644 index 000000000..34b4cafce --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_62.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_62.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_62.imageset/DE_1010_62.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_62.imageset/DE_1010_62.svg new file mode 100644 index 000000000..733572a87 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_62.imageset/DE_1010_62.svg @@ -0,0 +1,16 @@ + + Verkehrszeichen 1010-62 - Krafträder,… + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_63.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_63.imageset/Contents.json new file mode 100644 index 000000000..950ca1839 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_63.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_63.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_63.imageset/DE_1010_63.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_63.imageset/DE_1010_63.svg new file mode 100644 index 000000000..106ec1a9d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_63.imageset/DE_1010_63.svg @@ -0,0 +1,17 @@ + + Verkehrszeichen 1010-63 - Mofas + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_65.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_65.imageset/Contents.json new file mode 100644 index 000000000..170c305f7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_65.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_65.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_65.imageset/DE_1010_65.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_65.imageset/DE_1010_65.svg new file mode 100644 index 000000000..f733932f9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_65.imageset/DE_1010_65.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1010-65 - E-Bikes + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_66.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_66.imageset/Contents.json new file mode 100644 index 000000000..1b1e8eb41 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_66.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_66.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_66.imageset/DE_1010_66.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_66.imageset/DE_1010_66.svg new file mode 100644 index 000000000..ffe2454ec --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_66.imageset/DE_1010_66.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1010-66 - elektrisch betriebene Fahrzeuge + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_68.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_68.imageset/Contents.json new file mode 100644 index 000000000..c241c6f3c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_68.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_68.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_68.imageset/DE_1010_68.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_68.imageset/DE_1010_68.svg new file mode 100644 index 000000000..085f24848 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_68.imageset/DE_1010_68.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 1010-68 - Elektrokleinstfahrzeuge + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_69.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_69.imageset/Contents.json new file mode 100644 index 000000000..e32072496 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_69.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1010_69.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1010_69.imageset/DE_1010_69.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_69.imageset/DE_1010_69.svg new file mode 100644 index 000000000..6ba1a368c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1010_69.imageset/DE_1010_69.svg @@ -0,0 +1,17 @@ + + Verkehrszeichen 1010-69 - Lastenfahrrad + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1012_31.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_31.imageset/Contents.json new file mode 100644 index 000000000..9a4a0a737 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_31.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1012_31.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1012_31.imageset/DE_1012_31.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_31.imageset/DE_1012_31.svg new file mode 100644 index 000000000..adcc06f55 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_31.imageset/DE_1012_31.svg @@ -0,0 +1,19 @@ + + Verkehrszeichen 1012-31 - Ende + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1012_32.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_32.imageset/Contents.json new file mode 100644 index 000000000..c6cbf951a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_32.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1012_32.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1012_32.imageset/DE_1012_32.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_32.imageset/DE_1012_32.svg new file mode 100644 index 000000000..683cd009f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1012_32.imageset/DE_1012_32.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1012-32 - Radfahrer absteigen + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_101_15.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_101_15.imageset/Contents.json new file mode 100644 index 000000000..93291d760 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_101_15.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_101_15.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_101_15.imageset/DE_101_15.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_101_15.imageset/DE_101_15.svg new file mode 100644 index 000000000..cb96ef709 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_101_15.imageset/DE_101_15.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 101-15 - Steinschlag + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_101_25.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_101_25.imageset/Contents.json new file mode 100644 index 000000000..5db4f7e1f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_101_25.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_101_25.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_101_25.imageset/DE_101_25.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_101_25.imageset/DE_101_25.svg new file mode 100644 index 000000000..b5b21e823 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_101_25.imageset/DE_101_25.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 101-25 - Steinschlag + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_12.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_12.imageset/Contents.json new file mode 100644 index 000000000..265e2ad57 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_12.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1020_12.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_12.imageset/DE_1020_12.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_12.imageset/DE_1020_12.svg new file mode 100644 index 000000000..bc5afa979 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_12.imageset/DE_1020_12.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1020-12 - Radfahrer und Anlieger frei + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_13.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_13.imageset/Contents.json new file mode 100644 index 000000000..d78e19ed9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_13.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1020_13.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_13.imageset/DE_1020_13.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_13.imageset/DE_1020_13.svg new file mode 100644 index 000000000..868bec6bc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_13.imageset/DE_1020_13.svg @@ -0,0 +1,10 @@ + + Verkehrszeichen 1020-13 - Inline Skater frei + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_30.imageset/Contents.json new file mode 100644 index 000000000..feb5b8c9f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1020_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_30.imageset/DE_1020_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_30.imageset/DE_1020_30.svg new file mode 100644 index 000000000..898fbaf80 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_30.imageset/DE_1020_30.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1020-30 - Anlieger frei + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_32.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_32.imageset/Contents.json new file mode 100644 index 000000000..dde434480 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_32.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1020_32.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1020_32.imageset/DE_1020_32.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_32.imageset/DE_1020_32.svg new file mode 100644 index 000000000..5f2b42335 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1020_32.imageset/DE_1020_32.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 1020-32 - Bewohner mit Parkausweis Nr. … frei + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_10.imageset/Contents.json new file mode 100644 index 000000000..fa08de6cb --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1022_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_10.imageset/DE_1022_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_10.imageset/DE_1022_10.svg new file mode 100644 index 000000000..4c0ec26e3 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_10.imageset/DE_1022_10.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1022-10 - Radfahrer frei + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_11.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_11.imageset/Contents.json new file mode 100644 index 000000000..0658ae14f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_11.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1022_11.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_11.imageset/DE_1022_11.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_11.imageset/DE_1022_11.svg new file mode 100644 index 000000000..c2e55b8fa --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_11.imageset/DE_1022_11.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 1022-11 - Mofas frei + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_12.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_12.imageset/Contents.json new file mode 100644 index 000000000..a255a29e9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_12.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1022_12.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_12.imageset/DE_1022_12.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_12.imageset/DE_1022_12.svg new file mode 100644 index 000000000..138b53354 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_12.imageset/DE_1022_12.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 1022-12 - Krafträder auch mit Beiwagen, Krafträder und Mofas frei + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_13.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_13.imageset/Contents.json new file mode 100644 index 000000000..56ee62cbe --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_13.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1022_13.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_13.imageset/DE_1022_13.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_13.imageset/DE_1022_13.svg new file mode 100644 index 000000000..8b13b2840 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_13.imageset/DE_1022_13.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1022-13 - E-Bikes frei + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_16.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_16.imageset/Contents.json new file mode 100644 index 000000000..98be4f958 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_16.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1022_16.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1022_16.imageset/DE_1022_16.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_16.imageset/DE_1022_16.svg new file mode 100644 index 000000000..43886da86 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1022_16.imageset/DE_1022_16.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 1022-16 - Elektrokleinstfahrzeuge frei + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_10.imageset/Contents.json new file mode 100644 index 000000000..0b801dd91 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1024_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_10.imageset/DE_1024_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_10.imageset/DE_1024_10.svg new file mode 100644 index 000000000..4d28f3c15 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_10.imageset/DE_1024_10.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 1024-10 - Personenkraftwagen frei + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_12.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_12.imageset/Contents.json new file mode 100644 index 000000000..7e5c5c4bb --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_12.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1024_12.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_12.imageset/DE_1024_12.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_12.imageset/DE_1024_12.svg new file mode 100644 index 000000000..dcfa9e291 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_12.imageset/DE_1024_12.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 1024-12 - Kraftfahrzeuge mit einem zulässigen Gesamtgewicht über 3,5 t… frei + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_14.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_14.imageset/Contents.json new file mode 100644 index 000000000..a059baccd --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_14.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1024_14.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_14.imageset/DE_1024_14.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_14.imageset/DE_1024_14.svg new file mode 100644 index 000000000..33ca8e967 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_14.imageset/DE_1024_14.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 1024-14 - Kraftomnibus frei + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_17.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_17.imageset/Contents.json new file mode 100644 index 000000000..1035c8600 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_17.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1024_17.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1024_17.imageset/DE_1024_17.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_17.imageset/DE_1024_17.svg new file mode 100644 index 000000000..1d9066343 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1024_17.imageset/DE_1024_17.svg @@ -0,0 +1,20 @@ + + Verkehrszeichen 1024-17 - Kraftfahrzeuge und Züge … frei + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_30.imageset/Contents.json new file mode 100644 index 000000000..d2cb96e18 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_30.imageset/DE_1026_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_30.imageset/DE_1026_30.svg new file mode 100644 index 000000000..55ac96e28 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_30.imageset/DE_1026_30.svg @@ -0,0 +1,15 @@ + + Verkehrszeichen 1026-30 - Taxi frei + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_32.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_32.imageset/Contents.json new file mode 100644 index 000000000..57180a4c3 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_32.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_32.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_32.imageset/DE_1026_32.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_32.imageset/DE_1026_32.svg new file mode 100644 index 000000000..10b5b9fe0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_32.imageset/DE_1026_32.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1026-32 - Linienverkehr frei + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_33.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_33.imageset/Contents.json new file mode 100644 index 000000000..9249fc96b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_33.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_33.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_33.imageset/DE_1026_33.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_33.imageset/DE_1026_33.svg new file mode 100644 index 000000000..033707984 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_33.imageset/DE_1026_33.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1026-33 - Einsatzfahrzeuge frei + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_35.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_35.imageset/Contents.json new file mode 100644 index 000000000..edcc1f67f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_35.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_35.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_35.imageset/DE_1026_35.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_35.imageset/DE_1026_35.svg new file mode 100644 index 000000000..edb10b1f8 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_35.imageset/DE_1026_35.svg @@ -0,0 +1,428 @@ + + Verkehrszeichen 1026-35 - Lieferverkehr frei + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_36.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_36.imageset/Contents.json new file mode 100644 index 000000000..cd2f535dd --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_36.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_36.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_36.imageset/DE_1026_36.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_36.imageset/DE_1026_36.svg new file mode 100644 index 000000000..47d4e78e2 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_36.imageset/DE_1026_36.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1026-36 - Landwirtschaftlicher Verkehr frei + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_37.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_37.imageset/Contents.json new file mode 100644 index 000000000..cee50b457 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_37.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_37.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_37.imageset/DE_1026_37.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_37.imageset/DE_1026_37.svg new file mode 100644 index 000000000..e48dfd250 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_37.imageset/DE_1026_37.svg @@ -0,0 +1,15 @@ + + Verkehrszeichen 1026-37 - Forstwirtschaftlicher Verkehr frei + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_38.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_38.imageset/Contents.json new file mode 100644 index 000000000..33e40ed61 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_38.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_38.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_38.imageset/DE_1026_38.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_38.imageset/DE_1026_38.svg new file mode 100644 index 000000000..49760257b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_38.imageset/DE_1026_38.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1026-38 - Land- und forstwirtschaftlicher Verkehr frei + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_39.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_39.imageset/Contents.json new file mode 100644 index 000000000..da4ba685f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_39.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1026_39.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1026_39.imageset/DE_1026_39.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_39.imageset/DE_1026_39.svg new file mode 100644 index 000000000..5b330756d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1026_39.imageset/DE_1026_39.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 1026-39 - Betriebs- und Versorgungsfahrzeuge frei + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_103_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_103_10.imageset/Contents.json new file mode 100644 index 000000000..5a8e771a8 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_103_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_103_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_103_10.imageset/DE_103_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_103_10.imageset/DE_103_10.svg new file mode 100644 index 000000000..fc85e1593 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_103_10.imageset/DE_103_10.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 103-10 - Kurve (links) + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_103_20.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_103_20.imageset/Contents.json new file mode 100644 index 000000000..4315f9c57 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_103_20.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_103_20.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_103_20.imageset/DE_103_20.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_103_20.imageset/DE_103_20.svg new file mode 100644 index 000000000..fbd700a32 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_103_20.imageset/DE_103_20.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 103-20 - Kurve (rechts) + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1040_30__16_00_18_00__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_30__16_00_18_00__.imageset/Contents.json new file mode 100644 index 000000000..44c9bf71b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_30__16_00_18_00__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1040_30__16_00_18_00__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1040_30__16_00_18_00__.imageset/DE_1040_30__16_00_18_00__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_30__16_00_18_00__.imageset/DE_1040_30__16_00_18_00__.svg new file mode 100644 index 000000000..052bf9efd --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_30__16_00_18_00__.imageset/DE_1040_30__16_00_18_00__.svg @@ -0,0 +1,17 @@ + + Verkehrszeichen 1040-30[16:00-18:00] - Zeitliche Beschräkung + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1040_31__08_00_11_00_16_00_18_00__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_31__08_00_11_00_16_00_18_00__.imageset/Contents.json new file mode 100644 index 000000000..c59486b43 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_31__08_00_11_00_16_00_18_00__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1040_31__08_00_11_00_16_00_18_00__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1040_31__08_00_11_00_16_00_18_00__.imageset/DE_1040_31__08_00_11_00_16_00_18_00__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_31__08_00_11_00_16_00_18_00__.imageset/DE_1040_31__08_00_11_00_16_00_18_00__.svg new file mode 100644 index 000000000..0f374e47c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1040_31__08_00_11_00_16_00_18_00__.imageset/DE_1040_31__08_00_11_00_16_00_18_00__.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 1040-31[08:00-11:00,16:00-18:00] - Zeitliche Beschräkung + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_30.imageset/Contents.json new file mode 100644 index 000000000..93f107db1 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_30.imageset/DE_1042_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_30.imageset/DE_1042_30.svg new file mode 100644 index 000000000..dde207861 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_30.imageset/DE_1042_30.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1042-30 - Zeitliche Beschräkung: werktags + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_31__Mo_Sa_18_00_19_00__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_31__Mo_Sa_18_00_19_00__.imageset/Contents.json new file mode 100644 index 000000000..f356cff81 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_31__Mo_Sa_18_00_19_00__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_31__Mo_Sa_18_00_19_00__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_31__Mo_Sa_18_00_19_00__.imageset/DE_1042_31__Mo_Sa_18_00_19_00__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_31__Mo_Sa_18_00_19_00__.imageset/DE_1042_31__Mo_Sa_18_00_19_00__.svg new file mode 100644 index 000000000..d251d4e4a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_31__Mo_Sa_18_00_19_00__.imageset/DE_1042_31__Mo_Sa_18_00_19_00__.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1042-31[Mo-Sa 18:00-19:00] - Zeitliche Beschräkung: werktags, von-bis + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.imageset/Contents.json new file mode 100644 index 000000000..00d73dfc9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.imageset/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.imageset/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.svg new file mode 100644 index 000000000..6788265a7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.imageset/DE_1042_32__PH_off_Mo_Sa_8_30_11_30_16_00_18_00__.svg @@ -0,0 +1,15 @@ + + Verkehrszeichen 1042-32[PH off;Mo-Sa 8:30-11:30,16:00-18:00] - Zeitliche Beschräkung: werktags, von-bis, von-bis + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_33__Mo_Fr_16_00_18_00__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_33__Mo_Fr_16_00_18_00__.imageset/Contents.json new file mode 100644 index 000000000..175b35d06 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_33__Mo_Fr_16_00_18_00__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_33__Mo_Fr_16_00_18_00__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_33__Mo_Fr_16_00_18_00__.imageset/DE_1042_33__Mo_Fr_16_00_18_00__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_33__Mo_Fr_16_00_18_00__.imageset/DE_1042_33__Mo_Fr_16_00_18_00__.svg new file mode 100644 index 000000000..e3d79c86e --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_33__Mo_Fr_16_00_18_00__.imageset/DE_1042_33__Mo_Fr_16_00_18_00__.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1042-33[Mo-Fr 16:00-18:00] - Zeitliche Beschräkung: Mo-Fr, von-bis + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_34__Tu_Th_Fr_16_00_18_00__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_34__Tu_Th_Fr_16_00_18_00__.imageset/Contents.json new file mode 100644 index 000000000..5c9f4d13b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_34__Tu_Th_Fr_16_00_18_00__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_34__Tu_Th_Fr_16_00_18_00__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_34__Tu_Th_Fr_16_00_18_00__.imageset/DE_1042_34__Tu_Th_Fr_16_00_18_00__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_34__Tu_Th_Fr_16_00_18_00__.imageset/DE_1042_34__Tu_Th_Fr_16_00_18_00__.svg new file mode 100644 index 000000000..9e6eab190 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_34__Tu_Th_Fr_16_00_18_00__.imageset/DE_1042_34__Tu_Th_Fr_16_00_18_00__.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1042-34[Tu,Th,Fr 16:00-18:00] - Zeitliche Beschräkung: Di,Do,Fr, von-bis + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_35__Su_PH_6_00_22_00__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_35__Su_PH_6_00_22_00__.imageset/Contents.json new file mode 100644 index 000000000..aa65bd368 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_35__Su_PH_6_00_22_00__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_35__Su_PH_6_00_22_00__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_35__Su_PH_6_00_22_00__.imageset/DE_1042_35__Su_PH_6_00_22_00__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_35__Su_PH_6_00_22_00__.imageset/DE_1042_35__Su_PH_6_00_22_00__.svg new file mode 100644 index 000000000..2184a9d1d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_35__Su_PH_6_00_22_00__.imageset/DE_1042_35__Su_PH_6_00_22_00__.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1042-35[Su,PH 6:00-22:00] - Zeitliche Beschräkung: So- und Feiertage, von-bis + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_38.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_38.imageset/Contents.json new file mode 100644 index 000000000..887a2a764 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_38.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_38.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_38.imageset/DE_1042_38.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_38.imageset/DE_1042_38.svg new file mode 100644 index 000000000..ec0c78bfc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_38.imageset/DE_1042_38.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1042-38 - Zeitliche Beschräkung: Werktags, außer Samstags + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_51.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_51.imageset/Contents.json new file mode 100644 index 000000000..c54b62f0a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_51.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1042_51.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1042_51.imageset/DE_1042_51.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_51.imageset/DE_1042_51.svg new file mode 100644 index 000000000..be62161c2 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1042_51.imageset/DE_1042_51.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1042-51 - Zeitliche Beschräkung: Sa und So + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1048_11.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1048_11.imageset/Contents.json new file mode 100644 index 000000000..d4740b5e0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1048_11.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1048_11.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1048_11.imageset/DE_1048_11.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1048_11.imageset/DE_1048_11.svg new file mode 100644 index 000000000..02e211452 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1048_11.imageset/DE_1048_11.svg @@ -0,0 +1,21 @@ + + Verkehrszeichen 1048-11 - Anhänger + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1049_13.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1049_13.imageset/Contents.json new file mode 100644 index 000000000..7dd3f2dcc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1049_13.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1049_13.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1049_13.imageset/DE_1049_13.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1049_13.imageset/DE_1049_13.svg new file mode 100644 index 000000000..e216e2429 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1049_13.imageset/DE_1049_13.svg @@ -0,0 +1,19 @@ + + Verkehrszeichen 1049-13 - Nur Kfz über 3,5 t einschl. ihrer Anhänger, Zugmaschinen, Kraftomnibusse und Pkw mit Anhänger + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1053_33.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_33.imageset/Contents.json new file mode 100644 index 000000000..6cc01738d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_33.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1053_33.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1053_33.imageset/DE_1053_33.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_33.imageset/DE_1053_33.svg new file mode 100644 index 000000000..b30bed104 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_33.imageset/DE_1053_33.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1053-33 - Massenangabe 7,5 t + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1053_35.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_35.imageset/Contents.json new file mode 100644 index 000000000..c7e6d4fdb --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_35.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1053_35.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1053_35.imageset/DE_1053_35.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_35.imageset/DE_1053_35.svg new file mode 100644 index 000000000..42afc8ade --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_35.imageset/DE_1053_35.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 1053-35 - Beschräkung: bei Nässe + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1053_37.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_37.imageset/Contents.json new file mode 100644 index 000000000..735eb3e06 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_37.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1053_37.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1053_37.imageset/DE_1053_37.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_37.imageset/DE_1053_37.svg new file mode 100644 index 000000000..0c6903de4 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1053_37.imageset/DE_1053_37.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 1053-37 - Massenangabe 12 t + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1060_33.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_1060_33.imageset/Contents.json new file mode 100644 index 000000000..b37cf7512 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1060_33.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_1060_33.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_1060_33.imageset/DE_1060_33.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_1060_33.imageset/DE_1060_33.svg new file mode 100644 index 000000000..fc8c03428 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_1060_33.imageset/DE_1060_33.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 1060-33 - Massenangabe 2,8 t + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_108_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_108_10.imageset/Contents.json new file mode 100644 index 000000000..b3dbced13 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_108_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_108_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_108_10.imageset/DE_108_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_108_10.imageset/DE_108_10.svg new file mode 100644 index 000000000..fa9d00aca --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_108_10.imageset/DE_108_10.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 108-10 - Gefälle + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_108_15.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_108_15.imageset/Contents.json new file mode 100644 index 000000000..11cf5b92d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_108_15.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_108_15.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_108_15.imageset/DE_108_15.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_108_15.imageset/DE_108_15.svg new file mode 100644 index 000000000..fabe4922d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_108_15.imageset/DE_108_15.svg @@ -0,0 +1,65 @@ + + Verkehrszeichen 108-15 - Gefälle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_108__10__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_108__10__.imageset/Contents.json new file mode 100644 index 000000000..fe1d42f8e --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_108__10__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_108__10__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_108__10__.imageset/DE_108__10__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_108__10__.imageset/DE_108__10__.svg new file mode 100644 index 000000000..924847df9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_108__10__.imageset/DE_108__10__.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 108[10] - Gefälle von ??% + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_110_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_110_10.imageset/Contents.json new file mode 100644 index 000000000..6048ed27f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_110_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_110_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_110_10.imageset/DE_110_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_110_10.imageset/DE_110_10.svg new file mode 100644 index 000000000..c91a58cf4 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_110_10.imageset/DE_110_10.svg @@ -0,0 +1,35 @@ + + Verkehrszeichen 110-10 - Steigung + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_110_15.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_110_15.imageset/Contents.json new file mode 100644 index 000000000..9fb804495 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_110_15.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_110_15.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_110_15.imageset/DE_110_15.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_110_15.imageset/DE_110_15.svg new file mode 100644 index 000000000..4d4b2ac2c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_110_15.imageset/DE_110_15.svg @@ -0,0 +1,52 @@ + + Verkehrszeichen 110-15 - Steigung + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_110__10__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_110__10__.imageset/Contents.json new file mode 100644 index 000000000..821681f9c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_110__10__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_110__10__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_110__10__.imageset/DE_110__10__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_110__10__.imageset/DE_110__10__.svg new file mode 100644 index 000000000..1b0977313 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_110__10__.imageset/DE_110__10__.svg @@ -0,0 +1,35 @@ + + Verkehrszeichen 110[10] - Steigung von ??% + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_136_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_136_10.imageset/Contents.json new file mode 100644 index 000000000..84cbeece1 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_136_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_136_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_136_10.imageset/DE_136_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_136_10.imageset/DE_136_10.svg new file mode 100644 index 000000000..c0de3470a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_136_10.imageset/DE_136_10.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 136-10 - Vorsicht, Kinder! – Aufstellung rechts + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_138_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_138_10.imageset/Contents.json new file mode 100644 index 000000000..81534e264 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_138_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_138_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_138_10.imageset/DE_138_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_138_10.imageset/DE_138_10.svg new file mode 100644 index 000000000..7fe8304dc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_138_10.imageset/DE_138_10.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 138-10 - Radverkehr – Aufstellung rechts + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_201_50.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_201_50.imageset/Contents.json new file mode 100644 index 000000000..3df47f024 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_201_50.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_201_50.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_201_50.imageset/DE_201_50.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_201_50.imageset/DE_201_50.svg new file mode 100644 index 000000000..778b8eee5 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_201_50.imageset/DE_201_50.svg @@ -0,0 +1,11 @@ + + Verkehrszeichen 201-50 - Andreaskreuz — stehend + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_201_51.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_201_51.imageset/Contents.json new file mode 100644 index 000000000..8fac63bb6 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_201_51.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_201_51.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_201_51.imageset/DE_201_51.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_201_51.imageset/DE_201_51.svg new file mode 100644 index 000000000..665458239 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_201_51.imageset/DE_201_51.svg @@ -0,0 +1,5 @@ + + Verkehrszeichen 201-51 - Andreaskreuz — stehend + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_205.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_205.imageset/Contents.json new file mode 100644 index 000000000..27f8089dc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_205.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_205.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_205.imageset/DE_205.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_205.imageset/DE_205.svg new file mode 100644 index 000000000..13882de8b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_205.imageset/DE_205.svg @@ -0,0 +1,6 @@ + + Verkehrszeichen 205 - Vorfahrt gewähren + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_206.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_206.imageset/Contents.json new file mode 100644 index 000000000..f95cddb37 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_206.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_206.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_206.imageset/DE_206.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_206.imageset/DE_206.svg new file mode 100644 index 000000000..f49349268 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_206.imageset/DE_206.svg @@ -0,0 +1,6 @@ + + Verkehrszeichen 206 - Halt! Vorfahrt gewähren + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_215.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_215.imageset/Contents.json new file mode 100644 index 000000000..515b2a9c0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_215.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_215.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_215.imageset/DE_215.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_215.imageset/DE_215.svg new file mode 100644 index 000000000..0f95520ef --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_215.imageset/DE_215.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 215 - Kreisverkehr + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_220_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_220_10.imageset/Contents.json new file mode 100644 index 000000000..1c4f52f1f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_220_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_220_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_220_10.imageset/DE_220_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_220_10.imageset/DE_220_10.svg new file mode 100644 index 000000000..e13ee3e39 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_220_10.imageset/DE_220_10.svg @@ -0,0 +1,20 @@ + + Verkehrszeichen 220-10 - Einbahnstraße – linksweisend + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_220_20.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_220_20.imageset/Contents.json new file mode 100644 index 000000000..3e9127c11 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_220_20.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_220_20.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_220_20.imageset/DE_220_20.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_220_20.imageset/DE_220_20.svg new file mode 100644 index 000000000..2d06e5dec --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_220_20.imageset/DE_220_20.svg @@ -0,0 +1,20 @@ + + Verkehrszeichen 220-20 - Einbahnstraße – rechtsweisend + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_222.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_222.imageset/Contents.json new file mode 100644 index 000000000..d67fee5da --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_222.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_222.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_222.imageset/DE_222.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_222.imageset/DE_222.svg new file mode 100644 index 000000000..7dd8fac33 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_222.imageset/DE_222.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 222 - Vorgeschriebene Vorbeifahrt, Rechts vorbei + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_224.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_224.imageset/Contents.json new file mode 100644 index 000000000..e8be9fbe4 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_224.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_224.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_224.imageset/DE_224.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_224.imageset/DE_224.svg new file mode 100644 index 000000000..08b660413 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_224.imageset/DE_224.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 224 - Haltestelle + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_237.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_237.imageset/Contents.json new file mode 100644 index 000000000..7c9781cac --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_237.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_237.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_237.imageset/DE_237.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_237.imageset/DE_237.svg new file mode 100644 index 000000000..67715e03a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_237.imageset/DE_237.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 237 - Radweg + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_238.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_238.imageset/Contents.json new file mode 100644 index 000000000..1bea652dd --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_238.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_238.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_238.imageset/DE_238.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_238.imageset/DE_238.svg new file mode 100644 index 000000000..4944525af --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_238.imageset/DE_238.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 238 - Reitweg + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_239.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_239.imageset/Contents.json new file mode 100644 index 000000000..774560d6a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_239.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_239.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_239.imageset/DE_239.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_239.imageset/DE_239.svg new file mode 100644 index 000000000..81d720154 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_239.imageset/DE_239.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 239 - Gehweg + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_240.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_240.imageset/Contents.json new file mode 100644 index 000000000..9a7bb9341 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_240.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_240.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_240.imageset/DE_240.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_240.imageset/DE_240.svg new file mode 100644 index 000000000..d0b977e4a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_240.imageset/DE_240.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 240 - Gemeinsamer Fuß- und Radweg + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_241_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_241_30.imageset/Contents.json new file mode 100644 index 000000000..8e53c32ee --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_241_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_241_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_241_30.imageset/DE_241_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_241_30.imageset/DE_241_30.svg new file mode 100644 index 000000000..91c814ae5 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_241_30.imageset/DE_241_30.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 241-30 - Getrennter Rad- und Gehweg + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_241_31.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_241_31.imageset/Contents.json new file mode 100644 index 000000000..124b1b5fe --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_241_31.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_241_31.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_241_31.imageset/DE_241_31.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_241_31.imageset/DE_241_31.svg new file mode 100644 index 000000000..41d3545ef --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_241_31.imageset/DE_241_31.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 241-31 - Getrennter Rad- und Gehweg + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_242_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_242_1.imageset/Contents.json new file mode 100644 index 000000000..2fc76f579 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_242_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_242_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_242_1.imageset/DE_242_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_242_1.imageset/DE_242_1.svg new file mode 100644 index 000000000..d1d321bee --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_242_1.imageset/DE_242_1.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 242.1 - Fußgängerbereich + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_242_2.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_242_2.imageset/Contents.json new file mode 100644 index 000000000..08007be10 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_242_2.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_242_2.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_242_2.imageset/DE_242_2.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_242_2.imageset/DE_242_2.svg new file mode 100644 index 000000000..4ab643b7a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_242_2.imageset/DE_242_2.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 242.2 - Fußgängerzone (Ende) + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_244_1.imageset/Contents.json new file mode 100644 index 000000000..eb64ad617 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_244_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_1.imageset/DE_244_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_244_1.imageset/DE_244_1.svg new file mode 100644 index 000000000..dd443f136 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_1.imageset/DE_244_1.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 244.1 - Fahrradstraße + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_2.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_244_2.imageset/Contents.json new file mode 100644 index 000000000..783d1fba4 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_2.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_244_2.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_2.imageset/DE_244_2.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_244_2.imageset/DE_244_2.svg new file mode 100644 index 000000000..fdb35b362 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_2.imageset/DE_244_2.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 244.2 - Fahrradstraße + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_3.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_244_3.imageset/Contents.json new file mode 100644 index 000000000..80f955439 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_3.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_244_3.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_3.imageset/DE_244_3.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_244_3.imageset/DE_244_3.svg new file mode 100644 index 000000000..d2e21e1f3 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_3.imageset/DE_244_3.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 244.3 - Fahrradzone + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_4.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_244_4.imageset/Contents.json new file mode 100644 index 000000000..bf8e79a63 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_4.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_244_4.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_244_4.imageset/DE_244_4.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_244_4.imageset/DE_244_4.svg new file mode 100644 index 000000000..ae8ed3816 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_244_4.imageset/DE_244_4.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 244.4 - Fahrradzone + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_245.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_245.imageset/Contents.json new file mode 100644 index 000000000..2872bc238 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_245.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_245.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_245.imageset/DE_245.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_245.imageset/DE_245.svg new file mode 100644 index 000000000..bce32b63d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_245.imageset/DE_245.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 245 - Bussonderfahrstreifen + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_250.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_250.imageset/Contents.json new file mode 100644 index 000000000..078f96b91 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_250.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_250.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_250.imageset/DE_250.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_250.imageset/DE_250.svg new file mode 100644 index 000000000..11dff84bb --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_250.imageset/DE_250.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 250 - Verbot für Fahrzeuge aller Art + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_251.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_251.imageset/Contents.json new file mode 100644 index 000000000..c156304a6 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_251.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_251.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_251.imageset/DE_251.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_251.imageset/DE_251.svg new file mode 100644 index 000000000..2d6500171 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_251.imageset/DE_251.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 251 - Verbot für Kraftwagen und sonstige mehrspurige Kraftfahrzeuge + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_253.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_253.imageset/Contents.json new file mode 100644 index 000000000..9427b6205 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_253.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_253.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_253.imageset/DE_253.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_253.imageset/DE_253.svg new file mode 100644 index 000000000..581931dff --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_253.imageset/DE_253.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 253 - Verbot für Kraftfahrzeuge mit einem zulässigen Gesamtgewicht über 3,5 t… + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_254.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_254.imageset/Contents.json new file mode 100644 index 000000000..0641c4355 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_254.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_254.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_254.imageset/DE_254.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_254.imageset/DE_254.svg new file mode 100644 index 000000000..8b6d0a0b1 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_254.imageset/DE_254.svg @@ -0,0 +1,31 @@ + + Verkehrszeichen 254 - Verbot für Radfahrer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_255.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_255.imageset/Contents.json new file mode 100644 index 000000000..9a686fcfd --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_255.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_255.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_255.imageset/DE_255.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_255.imageset/DE_255.svg new file mode 100644 index 000000000..ee2bb45cd --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_255.imageset/DE_255.svg @@ -0,0 +1,31 @@ + + Verkehrszeichen 255 - Verbot für Krafträder, auch mit Beiwagen, Kleinkrafträder und Mofas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_50.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_257_50.imageset/Contents.json new file mode 100644 index 000000000..8dafd2b76 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_50.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_257_50.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_50.imageset/DE_257_50.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_257_50.imageset/DE_257_50.svg new file mode 100644 index 000000000..17b87e3ca --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_50.imageset/DE_257_50.svg @@ -0,0 +1,33 @@ + + Verkehrszeichen 257-50 - Verbot für Mofas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_51.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_257_51.imageset/Contents.json new file mode 100644 index 000000000..13e722a7d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_51.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_257_51.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_51.imageset/DE_257_51.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_257_51.imageset/DE_257_51.svg new file mode 100644 index 000000000..049d7116f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_51.imageset/DE_257_51.svg @@ -0,0 +1,31 @@ + + Verkehrszeichen 257-51 - Verbot für Reiter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_54.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_257_54.imageset/Contents.json new file mode 100644 index 000000000..2a4addba2 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_54.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_257_54.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_54.imageset/DE_257_54.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_257_54.imageset/DE_257_54.svg new file mode 100644 index 000000000..12cc10630 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_54.imageset/DE_257_54.svg @@ -0,0 +1,32 @@ + + Verkehrszeichen 257-54 - Verbot für Kraftomnibusse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_56.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_257_56.imageset/Contents.json new file mode 100644 index 000000000..d4b4ff88c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_56.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_257_56.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_257_56.imageset/DE_257_56.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_257_56.imageset/DE_257_56.svg new file mode 100644 index 000000000..44beac49e --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_257_56.imageset/DE_257_56.svg @@ -0,0 +1,34 @@ + + Verkehrszeichen 257-56 - Verbot für Personenkraftwagen mit Anhänger + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_259.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_259.imageset/Contents.json new file mode 100644 index 000000000..5c3bd2c94 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_259.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_259.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_259.imageset/DE_259.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_259.imageset/DE_259.svg new file mode 100644 index 000000000..b1ddb9b26 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_259.imageset/DE_259.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 259 - Verbot für Fußgänger + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_260.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_260.imageset/Contents.json new file mode 100644 index 000000000..63efae666 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_260.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_260.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_260.imageset/DE_260.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_260.imageset/DE_260.svg new file mode 100644 index 000000000..352aac950 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_260.imageset/DE_260.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 260 - Verbot für Krafträder, auch mit Beiwagen, Kleinkrafträder und Mofas sowie für Kraftwagen und sonstige mehrspurige Kraftfahrzeuge + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_261.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_261.imageset/Contents.json new file mode 100644 index 000000000..b5c8b78e9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_261.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_261.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_261.imageset/DE_261.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_261.imageset/DE_261.svg new file mode 100644 index 000000000..43fb6e9cd --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_261.imageset/DE_261.svg @@ -0,0 +1,32 @@ + + Verkehrszeichen 261 - Verbot für kennzeichnungspflichtige Kraftfahrzeuge mit gefährlichen Gütern + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_262__5_5__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_262__5_5__.imageset/Contents.json new file mode 100644 index 000000000..141a133ad --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_262__5_5__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_262__5_5__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_262__5_5__.imageset/DE_262__5_5__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_262__5_5__.imageset/DE_262__5_5__.svg new file mode 100644 index 000000000..6d97d6520 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_262__5_5__.imageset/DE_262__5_5__.svg @@ -0,0 +1,31 @@ + + Verkehrszeichen 262[5.5] - Verbot für Fahrzeuge über angegebenem tatsächlichen Gewicht + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_263__8__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_263__8__.imageset/Contents.json new file mode 100644 index 000000000..ad8fc3d66 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_263__8__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_263__8__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_263__8__.imageset/DE_263__8__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_263__8__.imageset/DE_263__8__.svg new file mode 100644 index 000000000..46ecb8776 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_263__8__.imageset/DE_263__8__.svg @@ -0,0 +1,30 @@ + + Verkehrszeichen 263[8] - Verbot für Fahrzeuge über angegebene tatsächliche Achslast + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_264__2__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_264__2__.imageset/Contents.json new file mode 100644 index 000000000..7c7534eb7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_264__2__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_264__2__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_264__2__.imageset/DE_264__2__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_264__2__.imageset/DE_264__2__.svg new file mode 100644 index 000000000..9dc1f0954 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_264__2__.imageset/DE_264__2__.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 264[2] - Verbot für Fahrzeuge über die angegebene Breite einschließlich Ladung + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_265__3_8__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_265__3_8__.imageset/Contents.json new file mode 100644 index 000000000..95a7e061c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_265__3_8__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_265__3_8__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_265__3_8__.imageset/DE_265__3_8__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_265__3_8__.imageset/DE_265__3_8__.svg new file mode 100644 index 000000000..06d6177f0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_265__3_8__.imageset/DE_265__3_8__.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 265[3.8] - Verbot für Fahrzeuge über die angegebene Höhe einschließlich Ladung + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_266__10__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_266__10__.imageset/Contents.json new file mode 100644 index 000000000..f9857644a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_266__10__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_266__10__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_266__10__.imageset/DE_266__10__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_266__10__.imageset/DE_266__10__.svg new file mode 100644 index 000000000..d0827ac0d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_266__10__.imageset/DE_266__10__.svg @@ -0,0 +1,31 @@ + + Verkehrszeichen 266[10] - Verbot für Fahrzeuge und Züge über angegebene Läge einschließlich Ladung + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_267.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_267.imageset/Contents.json new file mode 100644 index 000000000..af3f00edc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_267.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_267.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_267.imageset/DE_267.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_267.imageset/DE_267.svg new file mode 100644 index 000000000..04fd68b61 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_267.imageset/DE_267.svg @@ -0,0 +1,37 @@ + + Verkehrszeichen 267 - Verbot der Einfahrt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_268.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_268.imageset/Contents.json new file mode 100644 index 000000000..82fbad9c6 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_268.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_268.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_268.imageset/DE_268.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_268.imageset/DE_268.svg new file mode 100644 index 000000000..3d77c0d6f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_268.imageset/DE_268.svg @@ -0,0 +1,35 @@ + + Verkehrszeichen 268 - Schneeketten vorgeschrieben + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_269.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_269.imageset/Contents.json new file mode 100644 index 000000000..703c03b4a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_269.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_269.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_269.imageset/DE_269.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_269.imageset/DE_269.svg new file mode 100644 index 000000000..66d1f569f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_269.imageset/DE_269.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 269 - Verbot für Fahrzeuge mit wassergefährdender Ladung + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1.imageset/Contents.json new file mode 100644 index 000000000..237e72dfa --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_1.imageset/DE_274_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1.imageset/DE_274_1.svg new file mode 100644 index 000000000..29aebdebe --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1.imageset/DE_274_1.svg @@ -0,0 +1,15 @@ + + Verkehrszeichen 274.1 - Tempo 30-Zone + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_10.imageset/Contents.json new file mode 100644 index 000000000..b90e2eb89 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_10.imageset/DE_274_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_10.imageset/DE_274_10.svg new file mode 100644 index 000000000..f119f7256 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_10.imageset/DE_274_10.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-10 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_100.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_100.imageset/Contents.json new file mode 100644 index 000000000..0731a934f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_100.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_100.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_100.imageset/DE_274_100.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_100.imageset/DE_274_100.svg new file mode 100644 index 000000000..e29f7c90f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_100.imageset/DE_274_100.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-100 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_110.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_110.imageset/Contents.json new file mode 100644 index 000000000..80a16aef7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_110.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_110.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_110.imageset/DE_274_110.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_110.imageset/DE_274_110.svg new file mode 100644 index 000000000..fc1a31ea7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_110.imageset/DE_274_110.svg @@ -0,0 +1,32 @@ + + Verkehrszeichen 274-110 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_120.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_120.imageset/Contents.json new file mode 100644 index 000000000..a740538d7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_120.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_120.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_120.imageset/DE_274_120.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_120.imageset/DE_274_120.svg new file mode 100644 index 000000000..8dfccd2cc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_120.imageset/DE_274_120.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-120 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_130.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_130.imageset/Contents.json new file mode 100644 index 000000000..7520f6082 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_130.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_130.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_130.imageset/DE_274_130.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_130.imageset/DE_274_130.svg new file mode 100644 index 000000000..4d9776f32 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_130.imageset/DE_274_130.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-130 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_1_20.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1_20.imageset/Contents.json new file mode 100644 index 000000000..563ec0b3a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1_20.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_1_20.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_1_20.imageset/DE_274_1_20.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1_20.imageset/DE_274_1_20.svg new file mode 100644 index 000000000..d0758df88 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1_20.imageset/DE_274_1_20.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 274.1-20 - Tempo 20-Zone + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_1__47__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1__47__.imageset/Contents.json new file mode 100644 index 000000000..88e58f539 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1__47__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_1__47__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_1__47__.imageset/DE_274_1__47__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1__47__.imageset/DE_274_1__47__.svg new file mode 100644 index 000000000..5a2868202 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_1__47__.imageset/DE_274_1__47__.svg @@ -0,0 +1,15 @@ + + Verkehrszeichen 274.1[47] - Tempo ??-Zone + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_2.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_2.imageset/Contents.json new file mode 100644 index 000000000..3976dd0fc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_2.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_2.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_2.imageset/DE_274_2.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_2.imageset/DE_274_2.svg new file mode 100644 index 000000000..83504210c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_2.imageset/DE_274_2.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 274.2 - Tempo 30-Zone (Ende) + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_20.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_20.imageset/Contents.json new file mode 100644 index 000000000..4897340c8 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_20.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_20.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_20.imageset/DE_274_20.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_20.imageset/DE_274_20.svg new file mode 100644 index 000000000..19f60b07c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_20.imageset/DE_274_20.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-20 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_30.imageset/Contents.json new file mode 100644 index 000000000..33d9ff9ed --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_30.imageset/DE_274_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_30.imageset/DE_274_30.svg new file mode 100644 index 000000000..1d5a55242 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_30.imageset/DE_274_30.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-30 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_40.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_40.imageset/Contents.json new file mode 100644 index 000000000..478e96547 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_40.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_40.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_40.imageset/DE_274_40.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_40.imageset/DE_274_40.svg new file mode 100644 index 000000000..cebba7585 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_40.imageset/DE_274_40.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-40 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_5.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_5.imageset/Contents.json new file mode 100644 index 000000000..cb82d4b6a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_5.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_5.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_5.imageset/DE_274_5.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_5.imageset/DE_274_5.svg new file mode 100644 index 000000000..12da45d9c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_5.imageset/DE_274_5.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-5 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_50.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_50.imageset/Contents.json new file mode 100644 index 000000000..bf07de389 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_50.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_50.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_50.imageset/DE_274_50.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_50.imageset/DE_274_50.svg new file mode 100644 index 000000000..6b6b35198 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_50.imageset/DE_274_50.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-50 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_60.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_60.imageset/Contents.json new file mode 100644 index 000000000..d5dd52910 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_60.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_60.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_60.imageset/DE_274_60.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_60.imageset/DE_274_60.svg new file mode 100644 index 000000000..a78f76e48 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_60.imageset/DE_274_60.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-60 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_70.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_70.imageset/Contents.json new file mode 100644 index 000000000..ccb6201d7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_70.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_70.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_70.imageset/DE_274_70.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_70.imageset/DE_274_70.svg new file mode 100644 index 000000000..c1d28dc46 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_70.imageset/DE_274_70.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-70 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_80.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_80.imageset/Contents.json new file mode 100644 index 000000000..1ee5b9bb0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_80.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_80.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_80.imageset/DE_274_80.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_80.imageset/DE_274_80.svg new file mode 100644 index 000000000..0b5e01319 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_80.imageset/DE_274_80.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-80 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_90.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274_90.imageset/Contents.json new file mode 100644 index 000000000..9dd588ffe --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_90.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274_90.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274_90.imageset/DE_274_90.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274_90.imageset/DE_274_90.svg new file mode 100644 index 000000000..f25aa05bf --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274_90.imageset/DE_274_90.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274-90 - Zulässige Höchstgeschwindigkeit + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274__47__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_274__47__.imageset/Contents.json new file mode 100644 index 000000000..1de291d0d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274__47__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_274__47__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_274__47__.imageset/DE_274__47__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_274__47__.imageset/DE_274__47__.svg new file mode 100644 index 000000000..afdb1eac6 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_274__47__.imageset/DE_274__47__.svg @@ -0,0 +1,29 @@ + + Verkehrszeichen 274[47] - Zulässige Höchstgeschwindigkeit von ?? km/h + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_275_30.imageset/Contents.json new file mode 100644 index 000000000..7f72321de --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_275_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275_30.imageset/DE_275_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_275_30.imageset/DE_275_30.svg new file mode 100644 index 000000000..1c203c24f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275_30.imageset/DE_275_30.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 275-30 - Vorgeschriebene Mindestgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275_40.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_275_40.imageset/Contents.json new file mode 100644 index 000000000..94d67e1b7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275_40.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_275_40.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275_40.imageset/DE_275_40.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_275_40.imageset/DE_275_40.svg new file mode 100644 index 000000000..e13fbc60b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275_40.imageset/DE_275_40.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 275-40 - Vorgeschriebene Mindestgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275_80.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_275_80.imageset/Contents.json new file mode 100644 index 000000000..eecb6dbbc --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275_80.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_275_80.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275_80.imageset/DE_275_80.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_275_80.imageset/DE_275_80.svg new file mode 100644 index 000000000..99b880a38 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275_80.imageset/DE_275_80.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 275-80 - Vorgeschriebene Mindestgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275__47__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_275__47__.imageset/Contents.json new file mode 100644 index 000000000..68abdbead --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275__47__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_275__47__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_275__47__.imageset/DE_275__47__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_275__47__.imageset/DE_275__47__.svg new file mode 100644 index 000000000..c2c1d497a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_275__47__.imageset/DE_275__47__.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 275[47] - Vorgeschriebene Mindestgeschwindigkeit von ?? km/h + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_276.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_276.imageset/Contents.json new file mode 100644 index 000000000..5fe684657 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_276.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_276.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_276.imageset/DE_276.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_276.imageset/DE_276.svg new file mode 100644 index 000000000..a25aed489 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_276.imageset/DE_276.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 276 - Überholverbot für Kraftfahrzeuge aller Art + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_277.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_277.imageset/Contents.json new file mode 100644 index 000000000..da68d248d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_277.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_277.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_277.imageset/DE_277.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_277.imageset/DE_277.svg new file mode 100644 index 000000000..47ea6628d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_277.imageset/DE_277.svg @@ -0,0 +1,33 @@ + + Verkehrszeichen 277 - Überholverbot für Kraftfahrzeuge über 3,5 t + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_277_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_277_1.imageset/Contents.json new file mode 100644 index 000000000..4e339425c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_277_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_277_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_277_1.imageset/DE_277_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_277_1.imageset/DE_277_1.svg new file mode 100644 index 000000000..df6a79228 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_277_1.imageset/DE_277_1.svg @@ -0,0 +1,10 @@ + + Verkehrszeichen 277.1 - Verbot des Überholens von einspurigen Fahrzeugen für mehrspurige Kraftfahrzeuge und Krafträder mit Beiwagen + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_10.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_10.imageset/Contents.json new file mode 100644 index 000000000..33b459ed7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_10.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_10.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_10.imageset/DE_278_10.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_10.imageset/DE_278_10.svg new file mode 100644 index 000000000..d2c2ffaf9 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_10.imageset/DE_278_10.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-10 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_100.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_100.imageset/Contents.json new file mode 100644 index 000000000..2eeda5d1a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_100.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_100.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_100.imageset/DE_278_100.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_100.imageset/DE_278_100.svg new file mode 100644 index 000000000..ca642f4c1 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_100.imageset/DE_278_100.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-100 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_110.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_110.imageset/Contents.json new file mode 100644 index 000000000..ccf474d67 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_110.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_110.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_110.imageset/DE_278_110.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_110.imageset/DE_278_110.svg new file mode 100644 index 000000000..71b0e8b11 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_110.imageset/DE_278_110.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-110 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_120.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_120.imageset/Contents.json new file mode 100644 index 000000000..a3c51031e --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_120.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_120.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_120.imageset/DE_278_120.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_120.imageset/DE_278_120.svg new file mode 100644 index 000000000..f48cffbfe --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_120.imageset/DE_278_120.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-120 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_130.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_130.imageset/Contents.json new file mode 100644 index 000000000..25732e936 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_130.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_130.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_130.imageset/DE_278_130.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_130.imageset/DE_278_130.svg new file mode 100644 index 000000000..6d090611f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_130.imageset/DE_278_130.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-130 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_20.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_20.imageset/Contents.json new file mode 100644 index 000000000..f2e9e8dc1 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_20.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_20.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_20.imageset/DE_278_20.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_20.imageset/DE_278_20.svg new file mode 100644 index 000000000..88bf50e18 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_20.imageset/DE_278_20.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-20 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_30.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_30.imageset/Contents.json new file mode 100644 index 000000000..c4c71e401 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_30.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_30.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_30.imageset/DE_278_30.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_30.imageset/DE_278_30.svg new file mode 100644 index 000000000..eaa403549 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_30.imageset/DE_278_30.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-30 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_40.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_40.imageset/Contents.json new file mode 100644 index 000000000..6238b6e92 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_40.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_40.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_40.imageset/DE_278_40.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_40.imageset/DE_278_40.svg new file mode 100644 index 000000000..d4390a974 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_40.imageset/DE_278_40.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-40 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_50.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_50.imageset/Contents.json new file mode 100644 index 000000000..3cfaa65af --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_50.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_50.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_50.imageset/DE_278_50.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_50.imageset/DE_278_50.svg new file mode 100644 index 000000000..c8183d5df --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_50.imageset/DE_278_50.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-50 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_60.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_60.imageset/Contents.json new file mode 100644 index 000000000..663923d41 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_60.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_60.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_60.imageset/DE_278_60.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_60.imageset/DE_278_60.svg new file mode 100644 index 000000000..96e124f2a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_60.imageset/DE_278_60.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-60 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_70.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_70.imageset/Contents.json new file mode 100644 index 000000000..95e27f3c0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_70.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_70.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_70.imageset/DE_278_70.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_70.imageset/DE_278_70.svg new file mode 100644 index 000000000..9b4732248 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_70.imageset/DE_278_70.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-70 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_80.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_80.imageset/Contents.json new file mode 100644 index 000000000..d1dc6945c --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_80.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_80.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_80.imageset/DE_278_80.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_80.imageset/DE_278_80.svg new file mode 100644 index 000000000..9fcfc23df --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_80.imageset/DE_278_80.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-80 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_90.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278_90.imageset/Contents.json new file mode 100644 index 000000000..dde567e43 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_90.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278_90.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278_90.imageset/DE_278_90.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278_90.imageset/DE_278_90.svg new file mode 100644 index 000000000..839be3954 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278_90.imageset/DE_278_90.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278-90 - Ende der zulässigen Höchstgeschwindigkeit + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278__47__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_278__47__.imageset/Contents.json new file mode 100644 index 000000000..4488d5a4d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278__47__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_278__47__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_278__47__.imageset/DE_278__47__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_278__47__.imageset/DE_278__47__.svg new file mode 100644 index 000000000..01a25f6a5 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_278__47__.imageset/DE_278__47__.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 278[47] - Ende der zulässigen Höchstgeschwindigkeit von ?? km/h + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_279_40.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_279_40.imageset/Contents.json new file mode 100644 index 000000000..af663fda2 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_279_40.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_279_40.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_279_40.imageset/DE_279_40.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_279_40.imageset/DE_279_40.svg new file mode 100644 index 000000000..b37f01b35 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_279_40.imageset/DE_279_40.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 279-40 - Ende der vorgeschriebenen Mindestgeschwindigkeit + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_279_80.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_279_80.imageset/Contents.json new file mode 100644 index 000000000..fd88f4db7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_279_80.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_279_80.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_279_80.imageset/DE_279_80.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_279_80.imageset/DE_279_80.svg new file mode 100644 index 000000000..6e5a08990 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_279_80.imageset/DE_279_80.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 279-80 - Ende der vorgeschriebenen Mindestgeschwindigkeit + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_279__47__.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_279__47__.imageset/Contents.json new file mode 100644 index 000000000..09bb3121f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_279__47__.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_279__47__.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_279__47__.imageset/DE_279__47__.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_279__47__.imageset/DE_279__47__.svg new file mode 100644 index 000000000..f79703105 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_279__47__.imageset/DE_279__47__.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 279[47] - Ende der vorgeschriebenen Mindestgeschwindigkeit von ?? km/h + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_295.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_295.imageset/Contents.json new file mode 100644 index 000000000..e066c8b8e --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_295.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_295.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_295.imageset/DE_295.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_295.imageset/DE_295.svg new file mode 100644 index 000000000..cfc60e032 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_295.imageset/DE_295.svg @@ -0,0 +1,5 @@ + + Verkehrszeichen 295 - Fahrstreifenbegrenzung und Fahrbahnbegrenzung + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_298.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_298.imageset/Contents.json new file mode 100644 index 000000000..ed826c62d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_298.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_298.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_298.imageset/DE_298.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_298.imageset/DE_298.svg new file mode 100644 index 000000000..b83f7014a --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_298.imageset/DE_298.svg @@ -0,0 +1,17 @@ + + Verkehrszeichen 298 - Sperrflächen + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_299.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_299.imageset/Contents.json new file mode 100644 index 000000000..63093feec --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_299.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_299.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_299.imageset/DE_299.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_299.imageset/DE_299.svg new file mode 100644 index 000000000..377c6f147 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_299.imageset/DE_299.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 299 - Grenzmarkierung für Halt- und Parkverbote + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_301.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_301.imageset/Contents.json new file mode 100644 index 000000000..db6bfb6b7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_301.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_301.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_301.imageset/DE_301.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_301.imageset/DE_301.svg new file mode 100644 index 000000000..6f3b29a82 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_301.imageset/DE_301.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 301 - Vorfahrt + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_306.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_306.imageset/Contents.json new file mode 100644 index 000000000..9649b1626 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_306.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_306.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_306.imageset/DE_306.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_306.imageset/DE_306.svg new file mode 100644 index 000000000..bd2fb41da --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_306.imageset/DE_306.svg @@ -0,0 +1,10 @@ + + Verkehrszeichen 306 - Vorfahrtstraße + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_307.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_307.imageset/Contents.json new file mode 100644 index 000000000..6572eb741 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_307.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_307.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_307.imageset/DE_307.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_307.imageset/DE_307.svg new file mode 100644 index 000000000..42d00a56b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_307.imageset/DE_307.svg @@ -0,0 +1,11 @@ + + Verkehrszeichen 307 - Ende der Vorfahrtstraße + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_325_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_325_1.imageset/Contents.json new file mode 100644 index 000000000..412930134 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_325_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_325_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_325_1.imageset/DE_325_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_325_1.imageset/DE_325_1.svg new file mode 100644 index 000000000..932139201 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_325_1.imageset/DE_325_1.svg @@ -0,0 +1,20 @@ + + Verkehrszeichen 325.1 - Verkehrsberuhigter Bereich + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_325_2.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_325_2.imageset/Contents.json new file mode 100644 index 000000000..ef27923bb --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_325_2.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_325_2.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_325_2.imageset/DE_325_2.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_325_2.imageset/DE_325_2.svg new file mode 100644 index 000000000..0fcc85c79 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_325_2.imageset/DE_325_2.svg @@ -0,0 +1,21 @@ + + Verkehrszeichen 325.2 - Verkehrsberuhigter Bereich (Ende) + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_330_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_330_1.imageset/Contents.json new file mode 100644 index 000000000..d0dd10890 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_330_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_330_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_330_1.imageset/DE_330_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_330_1.imageset/DE_330_1.svg new file mode 100644 index 000000000..6d0e3b9d5 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_330_1.imageset/DE_330_1.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 330.1 - Autobahn + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_330_2.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_330_2.imageset/Contents.json new file mode 100644 index 000000000..c2ca24320 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_330_2.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_330_2.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_330_2.imageset/DE_330_2.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_330_2.imageset/DE_330_2.svg new file mode 100644 index 000000000..2094bab5f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_330_2.imageset/DE_330_2.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 330.2 - Ende der Autobahn + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_331_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_331_1.imageset/Contents.json new file mode 100644 index 000000000..9d008a00b --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_331_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_331_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_331_1.imageset/DE_331_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_331_1.imageset/DE_331_1.svg new file mode 100644 index 000000000..509edc284 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_331_1.imageset/DE_331_1.svg @@ -0,0 +1,7 @@ + + Verkehrszeichen 331.1 - Kraftfahrstraße + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_331_2.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_331_2.imageset/Contents.json new file mode 100644 index 000000000..c2b61b626 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_331_2.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_331_2.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_331_2.imageset/DE_331_2.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_331_2.imageset/DE_331_2.svg new file mode 100644 index 000000000..2662a0e42 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_331_2.imageset/DE_331_2.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 331.2 - Ende der Kraftfahrstraße + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_340.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_340.imageset/Contents.json new file mode 100644 index 000000000..805ad359d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_340.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_340.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_340.imageset/DE_340.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_340.imageset/DE_340.svg new file mode 100644 index 000000000..81e9ba4aa --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_340.imageset/DE_340.svg @@ -0,0 +1,6 @@ + + Verkehrszeichen 340 - Leitlinie + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_350_1.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_350_1.imageset/Contents.json new file mode 100644 index 000000000..d00710a35 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_350_1.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_350_1.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_350_1.imageset/DE_350_1.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_350_1.imageset/DE_350_1.svg new file mode 100644 index 000000000..dc7517278 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_350_1.imageset/DE_350_1.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 350.1 - Radschnellweg + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_350_2.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_350_2.imageset/Contents.json new file mode 100644 index 000000000..44ba1d256 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_350_2.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_350_2.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_350_2.imageset/DE_350_2.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_350_2.imageset/DE_350_2.svg new file mode 100644 index 000000000..648a1ff83 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_350_2.imageset/DE_350_2.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 350.2 - Radschnellweg (Ende) + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_354.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_354.imageset/Contents.json new file mode 100644 index 000000000..52267d14f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_354.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_354.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_354.imageset/DE_354.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_354.imageset/DE_354.svg new file mode 100644 index 000000000..6b32b5d50 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_354.imageset/DE_354.svg @@ -0,0 +1,11 @@ + + Verkehrszeichen 354 - Wasserschutzgebiet + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_357.imageset/Contents.json new file mode 100644 index 000000000..e58502a42 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_357.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357.imageset/DE_357.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_357.imageset/DE_357.svg new file mode 100644 index 000000000..854c414fb --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357.imageset/DE_357.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 357 - Sackgasse + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357_50.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_357_50.imageset/Contents.json new file mode 100644 index 000000000..55ee2a138 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357_50.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_357_50.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357_50.imageset/DE_357_50.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_357_50.imageset/DE_357_50.svg new file mode 100644 index 000000000..be6011717 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357_50.imageset/DE_357_50.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 357-50 - Für Radverkehr und Fußgänger durchlässige Sackgasse + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357_51.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_357_51.imageset/Contents.json new file mode 100644 index 000000000..55710b426 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357_51.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_357_51.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357_51.imageset/DE_357_51.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_357_51.imageset/DE_357_51.svg new file mode 100644 index 000000000..f4222ef75 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357_51.imageset/DE_357_51.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 357-51 - Für Fußgänger durchlässige Sackgasse + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357_52.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_357_52.imageset/Contents.json new file mode 100644 index 000000000..923a15f6f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357_52.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_357_52.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_357_52.imageset/DE_357_52.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_357_52.imageset/DE_357_52.svg new file mode 100644 index 000000000..4ba93ae90 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_357_52.imageset/DE_357_52.svg @@ -0,0 +1,9 @@ + + Verkehrszeichen 357-52 - Für Radverkehr durchlässige Sackgasse + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_385.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_385.imageset/Contents.json new file mode 100644 index 000000000..32d2901a7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_385.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_385.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_385.imageset/DE_385.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_385.imageset/DE_385.svg new file mode 100644 index 000000000..76205aee2 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_385.imageset/DE_385.svg @@ -0,0 +1,13 @@ + + Verkehrszeichen 385 - Ortshinweistafel + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_386_3.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_386_3.imageset/Contents.json new file mode 100644 index 000000000..f5c069201 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_386_3.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_386_3.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_386_3.imageset/DE_386_3.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_386_3.imageset/DE_386_3.svg new file mode 100644 index 000000000..12e5c29e4 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_386_3.imageset/DE_386_3.svg @@ -0,0 +1,26 @@ + + Verkehrszeichen 386.3 - Touristische Unterrichtungstafel + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_394_50.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_394_50.imageset/Contents.json new file mode 100644 index 000000000..018a15d68 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_394_50.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_394_50.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_394_50.imageset/DE_394_50.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_394_50.imageset/DE_394_50.svg new file mode 100644 index 000000000..5d2cebbb0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_394_50.imageset/DE_394_50.svg @@ -0,0 +1,14 @@ + + Verkehrszeichen 394-50 - Laternenring – Schild + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_438.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_438.imageset/Contents.json new file mode 100644 index 000000000..0be5a6b8f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_438.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_438.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_438.imageset/DE_438.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_438.imageset/DE_438.svg new file mode 100644 index 000000000..a68482d9d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_438.imageset/DE_438.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 438 - Vorwegweiser außerhalb von Autobahnen + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_439.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_439.imageset/Contents.json new file mode 100644 index 000000000..f275c69c2 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_439.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_439.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_439.imageset/DE_439.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_439.imageset/DE_439.svg new file mode 100644 index 000000000..993345a91 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_439.imageset/DE_439.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen 439 - Gegliederter Vorwegweiser außerhalb von Autobahnen + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_449.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_449.imageset/Contents.json new file mode 100644 index 000000000..40075b69f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_449.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_449.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_449.imageset/DE_449.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_449.imageset/DE_449.svg new file mode 100644 index 000000000..cd5f85f7d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_449.imageset/DE_449.svg @@ -0,0 +1,17 @@ + + Verkehrszeichen 449 - Vorwegweiser auf Autobahnen + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_620_40.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_620_40.imageset/Contents.json new file mode 100644 index 000000000..be46b7ea0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_620_40.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_620_40.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_620_40.imageset/DE_620_40.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_620_40.imageset/DE_620_40.svg new file mode 100644 index 000000000..4136af13f --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_620_40.imageset/DE_620_40.svg @@ -0,0 +1,16 @@ + + Verkehrszeichen 620-40 - Leitpfosten (rechts) + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_620_41.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_620_41.imageset/Contents.json new file mode 100644 index 000000000..e640fa980 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_620_41.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_620_41.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_620_41.imageset/DE_620_41.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_620_41.imageset/DE_620_41.svg new file mode 100644 index 000000000..ebec7cf15 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_620_41.imageset/DE_620_41.svg @@ -0,0 +1,18 @@ + + Verkehrszeichen 620-41 - Leitpfosten (links) + + + + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_626_20.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_626_20.imageset/Contents.json new file mode 100644 index 000000000..f3597f87e --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_626_20.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_626_20.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_626_20.imageset/DE_626_20.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_626_20.imageset/DE_626_20.svg new file mode 100644 index 000000000..78e57c57d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_626_20.imageset/DE_626_20.svg @@ -0,0 +1,6 @@ + + Verkehrszeichen 626-20 - Leitplatte, Aufstellung links + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_Eingeschr_nkter_Winterdienst.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_Eingeschr_nkter_Winterdienst.imageset/Contents.json new file mode 100644 index 000000000..1f2b3d3c8 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_Eingeschr_nkter_Winterdienst.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_Eingeschr_nkter_Winterdienst.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_Eingeschr_nkter_Winterdienst.imageset/DE_Eingeschr_nkter_Winterdienst.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_Eingeschr_nkter_Winterdienst.imageset/DE_Eingeschr_nkter_Winterdienst.svg new file mode 100644 index 000000000..b62f153d7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_Eingeschr_nkter_Winterdienst.imageset/DE_Eingeschr_nkter_Winterdienst.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen Eingeschränkter Winterdienst - Eingeschränkter Winterdienst + Verkehrszeichen - Eingeschränkter Winterdienst + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_Kein_Winterdienst.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE_Kein_Winterdienst.imageset/Contents.json new file mode 100644 index 000000000..f1a5e14b0 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_Kein_Winterdienst.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE_Kein_Winterdienst.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE_Kein_Winterdienst.imageset/DE_Kein_Winterdienst.svg b/src/traffic-signs/TrafficSigns.xcassets/DE_Kein_Winterdienst.imageset/DE_Kein_Winterdienst.svg new file mode 100644 index 000000000..1a12f35ad --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE_Kein_Winterdienst.imageset/DE_Kein_Winterdienst.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen Kein Winterdienst - Kein Winterdienst + Verkehrszeichen - Kein Winterdienst + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Geh__und_Radwegsch_den_.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE__Geh__und_Radwegsch_den_.imageset/Contents.json new file mode 100644 index 000000000..d19ccc45d --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Geh__und_Radwegsch_den_.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE__Geh__und_Radwegsch_den_.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Geh__und_Radwegsch_den_.imageset/DE__Geh__und_Radwegsch_den_.svg b/src/traffic-signs/TrafficSigns.xcassets/DE__Geh__und_Radwegsch_den_.imageset/DE__Geh__und_Radwegsch_den_.svg new file mode 100644 index 000000000..a48f03896 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Geh__und_Radwegsch_den_.imageset/DE__Geh__und_Radwegsch_den_.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen "Geh- und Radwegschäden" - Geh- und Radwegschäden + Verkehrszeichen - Geh- und Radwegschäden + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Gehwegsch_den_.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE__Gehwegsch_den_.imageset/Contents.json new file mode 100644 index 000000000..1a5411ef3 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Gehwegsch_den_.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE__Gehwegsch_den_.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Gehwegsch_den_.imageset/DE__Gehwegsch_den_.svg b/src/traffic-signs/TrafficSigns.xcassets/DE__Gehwegsch_den_.imageset/DE__Gehwegsch_den_.svg new file mode 100644 index 000000000..dd78db1a4 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Gehwegsch_den_.imageset/DE__Gehwegsch_den_.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen "Gehwegschäden" - Gehwegschäden + Verkehrszeichen - Gehwegschäden + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Kfz_Verkehr_frei_.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE__Kfz_Verkehr_frei_.imageset/Contents.json new file mode 100644 index 000000000..df7d9e5f5 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Kfz_Verkehr_frei_.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE__Kfz_Verkehr_frei_.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Kfz_Verkehr_frei_.imageset/DE__Kfz_Verkehr_frei_.svg b/src/traffic-signs/TrafficSigns.xcassets/DE__Kfz_Verkehr_frei_.imageset/DE__Kfz_Verkehr_frei_.svg new file mode 100644 index 000000000..2900658c8 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Kfz_Verkehr_frei_.imageset/DE__Kfz_Verkehr_frei_.svg @@ -0,0 +1,15 @@ + + Verkehrszeichen "Kfz-Verkehr frei" - Kfz-Verkehr frei + + + + + + + + + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Kleinkraftr_der_frei_.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE__Kleinkraftr_der_frei_.imageset/Contents.json new file mode 100644 index 000000000..0a43a55b2 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Kleinkraftr_der_frei_.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE__Kleinkraftr_der_frei_.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Kleinkraftr_der_frei_.imageset/DE__Kleinkraftr_der_frei_.svg b/src/traffic-signs/TrafficSigns.xcassets/DE__Kleinkraftr_der_frei_.imageset/DE__Kleinkraftr_der_frei_.svg new file mode 100644 index 000000000..4aabfa375 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Kleinkraftr_der_frei_.imageset/DE__Kleinkraftr_der_frei_.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen "Kleinkrafträder frei" - Kleinkrafträder frei + Verkehrszeichen - Kleinkrafträder frei + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Radwegsch_den_.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE__Radwegsch_den_.imageset/Contents.json new file mode 100644 index 000000000..e0e020d76 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Radwegsch_den_.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE__Radwegsch_den_.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Radwegsch_den_.imageset/DE__Radwegsch_den_.svg b/src/traffic-signs/TrafficSigns.xcassets/DE__Radwegsch_den_.imageset/DE__Radwegsch_den_.svg new file mode 100644 index 000000000..5abf3b734 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Radwegsch_den_.imageset/DE__Radwegsch_den_.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen "Radwegschäden" - Radwegschäden + Verkehrszeichen - Radwegschäden + + + + + diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Sch_den_im_Gehweg_.imageset/Contents.json b/src/traffic-signs/TrafficSigns.xcassets/DE__Sch_den_im_Gehweg_.imageset/Contents.json new file mode 100644 index 000000000..c16aabf94 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Sch_den_im_Gehweg_.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images": [ + { + "filename": "DE__Sch_den_im_Gehweg_.svg", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + }, + "properties": { + "preserves-vector-representation": true + } +} \ No newline at end of file diff --git a/src/traffic-signs/TrafficSigns.xcassets/DE__Sch_den_im_Gehweg_.imageset/DE__Sch_den_im_Gehweg_.svg b/src/traffic-signs/TrafficSigns.xcassets/DE__Sch_den_im_Gehweg_.imageset/DE__Sch_den_im_Gehweg_.svg new file mode 100644 index 000000000..c0aad46f7 --- /dev/null +++ b/src/traffic-signs/TrafficSigns.xcassets/DE__Sch_den_im_Gehweg_.imageset/DE__Sch_den_im_Gehweg_.svg @@ -0,0 +1,8 @@ + + Verkehrszeichen "Schäden im Gehweg" - Schäden im Gehweg + Verkehrszeichen - Schäden im Gehweg + + + + + diff --git a/src/traffic-signs/build_index.mjs b/src/traffic-signs/build_index.mjs new file mode 100644 index 000000000..ba8759c63 --- /dev/null +++ b/src/traffic-signs/build_index.mjs @@ -0,0 +1,163 @@ +#!/usr/bin/env node +/** + * Build bundled traffic-sign index and iOS asset catalog from @osm-traffic-signs/converter. + */ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { + countryDefinitions, + countries, + namedTrafficSignValues, + buildRedirectMap, + trafficSignTagToSigns, + signsToTrafficSignTagValue, + createSvgFilename, +} from '@osm-traffic-signs/converter'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const outDir = __dirname; +const assetsDir = path.join(outDir, 'TrafficSigns.xcassets'); + +/** Frequently used DE signs (osmValuePart without country prefix). */ +const FREQUENTLY_USED_DE = [ + '205', + '206', + '267', + '274.1', + '274.2', + '277', + '283', + '286', + '301', + '306', + '310', + '314', + '314.1', + '314.2', + '325.1', + '330.1', + '331.1', + 'city_limit', + 'maxspeed', + 'stop', + 'give_way', +]; + +function searchTokens(sign) { + const parts = [ + sign.signId, + sign.osmValuePart, + sign.name, + sign.descriptiveName, + sign.description, + ]; + return [...new Set(parts.filter(Boolean).flatMap((s) => String(s).toLowerCase().split(/[\s,;/]+/)))]; +} + +function ensureDir(dir) { + fs.mkdirSync(dir, { recursive: true }); +} + +function writeImageset(name, svgPath) { + const imagesetDir = path.join(assetsDir, `${name}.imageset`); + ensureDir(imagesetDir); + const destSvg = path.join(imagesetDir, `${name}.svg`); + fs.copyFileSync(svgPath, destSvg); + fs.writeFileSync( + path.join(imagesetDir, 'Contents.json'), + JSON.stringify( + { + images: [{ filename: `${name}.svg`, idiom: 'universal' }], + info: { author: 'xcode', version: 1 }, + properties: { 'preserves-vector-representation': true }, + }, + null, + 2, + ), + ); +} + +function buildCountryCatalog(countryCode) { + const signs = countryDefinitions[countryCode]; + const redirectMap = buildRedirectMap(signs); + const redirects = Object.fromEntries(redirectMap.entries()); + + const entries = signs.map((sign) => { + const imageName = createSvgFilename(countryCode, sign.osmValuePart); + return { + osmValuePart: sign.osmValuePart, + signId: sign.signId, + name: sign.name, + descriptiveName: sign.descriptiveName, + kind: sign.kind, + imageName, + searchTokens: searchTokens(sign), + }; + }); + + const frequent = FREQUENTLY_USED_DE.filter((id) => + entries.some((e) => e.osmValuePart === id || e.signId === id), + ); + + return { entries, redirects, frequent }; +} + +function copySvgs(countryCode) { + const svgDir = path.join( + __dirname, + 'node_modules', + '@osm-traffic-signs', + 'converter', + 'dist', + 'data-svgs', + countryCode, + 'svgs', + ); + if (!fs.existsSync(svgDir)) { + console.error(`SVG directory not found: ${svgDir}`); + process.exit(1); + } + ensureDir(assetsDir); + fs.writeFileSync( + path.join(assetsDir, 'Contents.json'), + JSON.stringify({ info: { author: 'xcode', version: 1 } }, null, 2), + ); + for (const file of fs.readdirSync(svgDir)) { + if (!file.endsWith('.svg')) continue; + const base = file.replace(/\.svg$/, ''); + writeImageset(base, path.join(svgDir, file)); + } +} + +// Validate compose/decompose round-trip samples +const samples = ['DE:205', 'DE:310;city_limit', 'DE:244.1,"Kfz-Verkehr frei"']; +for (const sample of samples) { + for (const cc of countries) { + const parts = trafficSignTagToSigns(sample, cc); + const back = signsToTrafficSignTagValue(parts, cc); + if (back && sample.startsWith(`${cc}:`) && back !== sample && !sample.includes('"')) { + console.warn(`Round-trip mismatch for ${cc}: ${sample} -> ${back}`); + } + } +} + +const catalogs = {}; +for (const countryCode of countries) { + catalogs[countryCode] = buildCountryCatalog(countryCode); +} + +const index = { + version: 1, + countries, + namedTrafficSignValues, + catalogs, +}; + +fs.writeFileSync(path.join(outDir, 'TrafficSignIndex.json'), JSON.stringify(index)); + +copySvgs('DE'); + +console.log( + `Built TrafficSignIndex.json (${countries.length} countries, ${catalogs.DE.entries.length} DE signs) and TrafficSigns.xcassets`, +); diff --git a/src/traffic-signs/package-lock.json b/src/traffic-signs/package-lock.json new file mode 100644 index 000000000..5c4a172e0 --- /dev/null +++ b/src/traffic-signs/package-lock.json @@ -0,0 +1,20 @@ +{ + "name": "gomap-traffic-signs-build", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "gomap-traffic-signs-build", + "dependencies": { + "@osm-traffic-signs/converter": "^0.4.0" + } + }, + "node_modules/@osm-traffic-signs/converter": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@osm-traffic-signs/converter/-/converter-0.4.0.tgz", + "integrity": "sha512-HtImZm0SK2bPv1ijottOssiyrkFWhKQG5Ri85xO1IjwumS8s49fj6qQ10gIYyk5gic1qxD+4sIzGdMdJ6n4Iqg==", + "hasInstallScript": true, + "license": "AGPL-3.0-or-later" + } + } +} diff --git a/src/traffic-signs/package.json b/src/traffic-signs/package.json new file mode 100644 index 000000000..aecf07d1d --- /dev/null +++ b/src/traffic-signs/package.json @@ -0,0 +1,8 @@ +{ + "name": "gomap-traffic-signs-build", + "private": true, + "type": "module", + "dependencies": { + "@osm-traffic-signs/converter": "^0.4.0" + } +} diff --git a/src/traffic-signs/update.sh b/src/traffic-signs/update.sh new file mode 100755 index 000000000..7d52f13e7 --- /dev/null +++ b/src/traffic-signs/update.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -ex + +cd "$(dirname "$0")" + +if ! command -v npm >/dev/null 2>&1; then + echo "npm is required to build traffic signs assets" + exit 1 +fi + +npm install --no-fund --no-audit +node build_index.mjs + +git add TrafficSignIndex.json TrafficSigns.xcassets package.json package-lock.json build_index.mjs update.sh 2>/dev/null || true diff --git a/src/update_all.sh b/src/update_all.sh index b2958bed5..e0b192186 100755 --- a/src/update_all.sh +++ b/src/update_all.sh @@ -4,4 +4,5 @@ (cd presets && ./getBrandIcons.py) # downloads images from various websites and converts them to png as necessary (cd presets && ./uploadBrandIcons.sh) # uploads imagery to gomaposm.com where they can be downloaded on demand at runtime (password required) (cd POI-Icons && ./update.sh) # fetches maki/temaki icons +(cd traffic-signs && ./update.sh) # builds traffic sign catalog from @osm-traffic-signs/converter (cd xliff && ./update.sh) # downloads latest translations from weblate (password required). This step is very noisy and produces many pages of warnings that can be ignored.