Compare commits

..

No commits in common. "master" and "feature/refactoring-inject-javascript" have entirely different histories.

242 changed files with 48349 additions and 34978 deletions

3
.gitignore vendored
View File

@ -5,6 +5,3 @@ npm-debug.*
*.p12
*.key
*.mobileprovision
dist/
# Local Netlify folder
.netlify

377
App.js
View File

@ -1,58 +1,353 @@
import React, { useEffect } from "react";
import React, { useEffect, useRef, useState } from "react";
import { NavigationContainer } from "@react-navigation/native";
import {
createStackNavigator,
TransitionPresets,
} from "@react-navigation/stack";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { AntDesign, Ionicons } from "@expo/vector-icons";
import { Platform, UIManager } from "react-native";
import { GestureHandlerRootView } from "react-native-gesture-handler";
import { AppContainer } from "./Apps";
import { UpdateAsync } from "./UpdateAsync";
import { UpdateAsync } from "./UpdateAsync.js";
import { getStationList2 } from "./lib/getStationList2";
import { AS } from "./storageControl";
import Apps from "./Apps";
import TNDView from "./ndView";
import TrainBase from "./trainbaseview";
import HowTo from "./howto";
import Menu from "./menu";
import News from "./components/news.js";
import Setting from "./components/settings.js";
import TrainMenu from "./components/trainMenu.js";
import FavoriteList from "./components/FavoriteList.js";
import { LogBox } from "react-native";
import { FavoriteStationProvider } from "./stateBox/useFavoriteStation";
import { CurrentTrainProvider } from "./stateBox/useCurrentTrain";
import { AreaInfoProvider } from "./stateBox/useAreaInfo";
import { BusAndTrainDataProvider } from "./stateBox/useBusAndTrainData";
import { AllTrainDiagramProvider } from "./stateBox/useAllTrainDiagram";
import { SheetProvider } from "react-native-actions-sheet";
import "./components/ActionSheetComponents/sheets";
import { TrainDelayDataProvider } from "./stateBox/useTrainDelayData";
import { SafeAreaProvider } from "react-native-safe-area-context";
import { DeviceOrientationChangeProvider } from "./stateBox/useDeviceOrientationChange";
import { TrainMenuProvider } from "./stateBox/useTrainMenu";
import { buildProvidersTree } from "./lib/providerTreeProvider";
import { StationListProvider } from "./stateBox/useStationList";
import { NotificationProvider } from "./stateBox/useNotifications";
import useInterval from "./lib/useInterval";
import { HeaderConfig } from "./lib/HeaderConfig";
LogBox.ignoreLogs([
"ViewPropTypes will be removed",
"ColorPropType will be removed",
]);
const Stack = createStackNavigator();
const Tab = createBottomTabNavigator();
if (Platform.OS === "android") {
if (UIManager.setLayoutAnimationEnabledExperimental) {
UIManager.setLayoutAnimationEnabledExperimental(true);
}
}
export default function App() {
useEffect(() => UpdateAsync(), []);
useEffect(() => {
UpdateAsync();
}, []);
const [favoriteStation, setFavoriteStation] = useState([]);
useEffect(() => {
AS.getItem("favoriteStation")
.then((d) => {
const returnData = JSON.parse(d);
setFavoriteStation(returnData);
})
.catch((d) => console.log(d));
}, []);
const [busAndTrainData, setBusAndTrainData] = useState([]);
useEffect(() => {
AS.getItem("busAndTrain")
.then((d) => {
const returnData = JSON.parse(d);
setBusAndTrainData(returnData);
})
.catch((d) => {
fetch(
"https://script.google.com/macros/s/AKfycbw0UW6ZeCDgUYFRP0zxpc_Oqfy-91dBdbWv-cM8n3narKp14IyCd2wy5HW7taXcW7E/exec"
)
.then((d) => d.json())
.then((d) => {
setBusAndTrainData(d);
AS.setItem("busAndTrain", JSON.stringify(d));
});
});
}, []);
const [currentTrain, setCurrentTrain] = useState([]); //現在在線中の全列車 { num: 列車番号, delay: 遅延時分(状態), Pos: 位置情報 }
const [currentTrainLoading, setCurrentTrainLoading] = useState("loading"); // success, error, loading
const getCurrentTrain = () =>
fetch(
"https://train.jr-shikoku.co.jp/g?arg1=train&arg2=train",
HeaderConfig
)
.then((response) => response.json())
.then((d) =>
d.map((x) => ({ num: x.TrainNum, delay: x.delay, Pos: x.Pos }))
)
.then((d) => {
setCurrentTrain(d);
setCurrentTrainLoading("success");
})
.catch((e) => {
console.log("えらー");
setCurrentTrainLoading("error");
});
useEffect(getCurrentTrain, []); //初回だけ現在の全在線列車取得
useInterval(getCurrentTrain, 15000); //15秒毎に全在線列車取得
const ProviderTree = buildProvidersTree([
NotificationProvider,
StationListProvider,
FavoriteStationProvider,
TrainDelayDataProvider,
CurrentTrainProvider,
AreaInfoProvider,
AllTrainDiagramProvider,
BusAndTrainDataProvider,
TrainMenuProvider,
SheetProvider,
AppContainer,
]);
return (
<DeviceOrientationChangeProvider>
<SafeAreaProvider>
<GestureHandlerRootView style={{ flex: 1 }}>
<ProviderTree />
</GestureHandlerRootView>
</SafeAreaProvider>
</DeviceOrientationChangeProvider>
<NavigationContainer name="Root" style={{ flex: 1 }}>
<Tab.Navigator detachInactiveScreens={false}>
<Tab.Screen
name="login"
options={{
tabBarLabel: "位置情報",
headerTransparent: true,
gestureEnabled: true,
tabBarIcon: initIcon("barchart", "AntDesign"),
}}
>
{(props) => (
<Top
{...props}
favoriteStation={favoriteStation}
setFavoriteStation={setFavoriteStation}
busAndTrainData={busAndTrainData}
currentTrainState={{ currentTrain, setCurrentTrain }}
currentTrainLoadingState={{
currentTrainLoading,
setCurrentTrainLoading,
}}
getCurrentTrain={getCurrentTrain}
/>
)}
</Tab.Screen>
<Tab.Screen
name="menuPage"
options={{
tabBarLabel: "リンク",
headerTransparent: true,
gestureEnabled: true,
tabBarIcon: initIcon("ios-radio", "Ionicons"),
}}
>
{(props) => (
<MenuPage
{...props}
favoriteStation={favoriteStation}
setFavoriteStation={setFavoriteStation}
busAndTrainData={busAndTrainData}
currentTrainState={{ currentTrain, setCurrentTrain }}
currentTrainLoadingState={{
currentTrainLoading,
setCurrentTrainLoading,
}}
getCurrentTrain={getCurrentTrain}
/>
)}
</Tab.Screen>
<Tab.Screen
name="home"
options={{
tabBarLabel: "運行情報",
headerTransparent: true,
gestureEnabled: true,
tabBarIcon: initIcon("md-train", "Ionicons"),
}}
>
{(props) => <TNDView {...props} />}
</Tab.Screen>
</Tab.Navigator>
</NavigationContainer>
);
}
const initIcon = (name, type) => {
switch (type) {
case "Ionicons":
return ({ focused, color, size }) => (
<Ionicons name={name} size={32} color={focused ? "#0099CC" : "black"} />
);
case "AntDesign":
return ({ focused, color, size }) => (
<AntDesign
name={name}
size={32}
color={focused ? "#0099CC" : "black"}
/>
);
}
};
const Top = ({
navigation,
favoriteStation,
setFavoriteStation,
busAndTrainData,
currentTrainState,
currentTrainLoadingState,
getCurrentTrain,
}) => {
const webview = useRef();
//地図用
const [mapsStationData, setMapsStationData] = useState(undefined);
useEffect(() => {
getStationList2().then(setMapsStationData);
}, []);
useEffect(() => {
const unsubscribe = navigation.addListener("tabLongPress", (e) => {
navigation.navigate("favoriteList");
});
return unsubscribe;
}, [navigation]);
return (
<Stack.Navigator>
<Stack.Screen
name="Apps"
options={{
headerShown: false,
gestureEnabled: true,
headerTransparent: true,
}}
>
{(props) => (
<Apps
{...props}
webview={webview}
favoriteStation={favoriteStation}
setFavoriteStation={setFavoriteStation}
busAndTrainData={busAndTrainData}
stationData={mapsStationData}
currentTrainState={currentTrainState}
currentTrainLoadingState={currentTrainLoadingState}
getCurrentTrain={getCurrentTrain}
/>
)}
</Stack.Screen>
<Stack.Screen
name="trainbase"
options={{
title: "トレインビジョン",
gestureEnabled: true,
...TransitionPresets.SlideFromRightIOS,
}}
>
{(props) => <TrainBase {...props} />}
</Stack.Screen>
<Stack.Screen
name="howto"
options={{
...optionData,
}}
>
{(props) => <HowTo {...props} />}
</Stack.Screen>
<Stack.Screen name="news" options={optionData}>
{(props) => <News {...props} />}
</Stack.Screen>
<Stack.Screen name="trainMenu" options={optionData}>
{(props) => (
<TrainMenu
{...props}
webview={webview}
stationData={mapsStationData}
/>
)}
</Stack.Screen>
<Stack.Screen
name="favoriteList"
options={{ ...optionData, gestureEnabled: false }}
>
{(props) => (
<FavoriteList
{...props}
webview={webview}
stationData={mapsStationData}
favoriteStation={favoriteStation}
setFavoriteStation={setFavoriteStation}
/>
)}
</Stack.Screen>
</Stack.Navigator>
);
};
function MenuPage({
navigation,
favoriteStation,
setFavoriteStation,
busAndTrainData,
currentTrainState,
currentTrainLoadingState,
getCurrentTrain,
}) {
useEffect(() => {
const unsubscribe = navigation.addListener("tabPress", (e) => {
AS.getItem("favoriteStation")
.then((d) => {
const returnData = JSON.parse(d);
if (favoriteStation.toString() != d) {
setFavoriteStation(returnData);
}
})
.catch((d) => console.log(d));
});
return unsubscribe;
}, [navigation]);
return (
<Stack.Navigator>
<Stack.Screen
name="menu"
options={{
headerShown: false,
gestureEnabled: true,
headerTransparent: true,
}}
>
{(props) => (
<Menu
{...props}
favoriteStation={favoriteStation}
setFavoriteStation={setFavoriteStation}
busAndTrainData={busAndTrainData}
currentTrainState={currentTrainState}
currentTrainLoadingState={currentTrainLoadingState}
getCurrentTrain={getCurrentTrain}
/>
)}
</Stack.Screen>
<Stack.Screen name="setting" options={optionData}>
{(props) => <Setting {...props} />}
</Stack.Screen>
<Stack.Screen
name="trainbase"
options={{
...TransitionPresets.ModalPresentationIOS,
cardOverlayEnabled: true,
headerShown: false,
gestureEnabled: true,
headerTransparent: true,
gestureResponseDistance: { vertical: 300 },
}}
>
{(props) => <TrainBase {...props} />}
</Stack.Screen>
<Stack.Screen
name="howto"
options={{
...optionData,
}}
>
{(props) => <HowTo {...props} />}
</Stack.Screen>
</Stack.Navigator>
);
}
const optionData = {
gestureEnabled: true,
...TransitionPresets.ModalPresentationIOS,
cardOverlayEnabled: true,
headerTransparent: true,
headerShown: false,
};

456
Apps.js
View File

@ -1,67 +1,403 @@
import React from "react";
import { NavigationContainer } from "@react-navigation/native";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { Platform } from "react-native";
import { useFonts } from "expo-font";
import TNDView from "./ndView";
import { initIcon } from "./lib/initIcon";
import { Top } from "./Top";
import { MenuPage } from "./MenuPage";
import { useAreaInfo } from "./stateBox/useAreaInfo";
import "./components/ActionSheetComponents/sheets";
import React, { useEffect, useRef, useState } from "react";
import {
View,
Platform,
ToastAndroid,
Text,
TouchableOpacity,
} from "react-native";
import { WebView } from "react-native-webview";
import Constants from "expo-constants";
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
import { AS } from "./storageControl";
import { news } from "./config/newsUpdate";
import { getStationList, lineList } from "./lib/getStationList";
import { StationDeteilView } from "./components/ActionSheetComponents/StationDeteilView";
import { injectJavascriptData } from "./lib/webViewInjectjavascript";
import { getStationList2 } from "./lib/getStationList2";
import { EachTrainInfo } from "./components/ActionSheetComponents/EachTrainInfo";
import { checkDuplicateTrainData } from "./lib/checkDuplicateTrainData";
/*
import StatusbarDetect from './StatusbarDetect';
var Status = StatusbarDetect(); */
export function AppContainer() {
const Tab = createBottomTabNavigator();
const { areaInfo, areaIconBadgeText, isInfo } = useAreaInfo();
const navigationRef = React.useRef();
const getTabProps = (name, label, icon, iconFamily, tabBarBadge, isInfo) => ({
name,
options: {
tabBarLabel: label,
headerShown: false,
gestureEnabled: true,
tabBarIcon: initIcon(icon, iconFamily,tabBarBadge,isInfo),
},
});
const [fontLoaded, error] = useFonts({
"JR-Nishi": require("./assets/fonts/jr-nishi.otf"),
Zou: require("./assets/fonts/DelaGothicOne-Regular.ttf"),
"JNR-font": require("./assets/fonts/JNRfont_pict.ttf"),
export default function Apps({
navigation,
webview,
favoriteStation,
setFavoriteStation,
busAndTrainData,
stationData,
currentTrainState,
currentTrainLoadingState,
getCurrentTrain,
}) {
const { currentTrain, setCurrentTrain } = currentTrainState;
const { currentTrainLoading, setCurrentTrainLoading } =
currentTrainLoadingState;
const { navigate } = navigation;
var urlcache = "";
//画面表示関連
const [iconSetting, setIconSetting] = useState(undefined);
const [mapSwitch, setMapSwitch] = useState(undefined);
const [stationMenu, setStationMenu] = useState(undefined);
//列車情報表示関連
const EachTrainInfoAsSR = useRef(null);
const [trainInfo, setTrainInfo] = useState({
trainNum: undefined,
limited: undefined,
trainData: undefined,
});
//駅情報画面用
const StationBoardAcSR = useRef(null);
const [stationBoardData, setStationBoardData] = useState(undefined);
const [originalStationList, setOriginalStationList] = useState();
const [selectedStation, setSelectedStation] = useState(undefined);
const [trainMenu, setTrainMenu] = useState("true");
let once = false;
useEffect(() => {
getStationList().then(setOriginalStationList);
}, []);
useEffect(() => {}, [stationData, favoriteStation]);
//地図表示テキスト
const injectJavascript = injectJavascriptData(
mapSwitch,
iconSetting,
stationMenu,
trainMenu
);
useEffect(() => {
//ニュース表示
AS.getItem("status")
.then((d) => {
if (d != news) navigate("news");
})
.catch((e) => navigate("news"));
}, []);
useEffect(() => {
//列車アイコンスイッチ
AS.getItem("iconSwitch")
.then((d) => {
if (d) {
setIconSetting(d);
} else {
AS.setItem("iconSwitch", "true").then(Updates.reloadAsync);
}
})
.catch((d) => AS.setItem("iconSwitch", "true").then(Updates.reloadAsync));
}, []);
useEffect(() => {
//地図スイッチ
AS.getItem("mapSwitch")
.then((d) => {
if (d) {
setMapSwitch(d);
} else {
AS.setItem("mapSwitch", "false").then(Updates.reloadAsync);
}
})
.catch((d) => AS.setItem("mapSwitch", "false").then(Updates.reloadAsync));
}, []);
useEffect(() => {
//駅メニュースイッチ
AS.getItem("stationSwitch")
.then((d) => {
if (d) {
setStationMenu(d);
} else {
AS.setItem("stationSwitch", "true").then(Updates.reloadAsync);
}
})
.catch((d) =>
AS.setItem("stationSwitch", "true").then(Updates.reloadAsync)
);
}, []);
useEffect(() => {
//列車メニュースイッチ
AS.getItem("trainSwitch")
.then((d) => {
if (d) {
setTrainMenu(d);
} else {
AS.setItem("trainSwitch", "true").then(Updates.reloadAsync);
}
})
.catch((d) =>
AS.setItem("trainSwitch", "true").then(Updates.reloadAsync)
);
}, []);
const onMessage = (event) => {
if (event.nativeEvent.data.includes("train.html")) {
navigate("trainbase", { info: event.nativeEvent.data, from: "Train" });
return;
}
if (!originalStationList) {
alert("駅名標データを取得中...");
return;
}
const dataSet = JSON.parse(event.nativeEvent.data);
switch (dataSet.type) {
case "PopUpMenu": {
const selectedStationPDFAddress = dataSet.pdf;
const findStationEachLine = (selectLine) => {
let NearStation = selectLine.filter(
(d) => d.StationTimeTable == selectedStationPDFAddress
);
return NearStation;
};
let returnDataBase = lineList
.map((d) => findStationEachLine(originalStationList[d]))
.filter((d) => d.length > 0)
.reduce((pre, current) => {
pre.push(...current);
return pre;
}, []);
if (returnDataBase.length) {
setStationBoardData(returnDataBase);
StationBoardAcSR.current?.show();
} else {
setStationBoardData(undefined);
StationBoardAcSR.current?.hide();
}
return;
}
case "ShowTrainTimeInfo": {
const { trainNum, limited } = dataSet;
//alert(trainNum, limited);
setTrainInfo({
trainNum,
limited,
trainData: checkDuplicateTrainData(
currentTrain.filter((a) => a.num == trainNum)
),
}); //遅延情報は未実装
EachTrainInfoAsSR.current?.show();
return;
}
default: {
return;
}
}
};
const onNavigationStateChange = (event) => {
if (event.url != urlcache) {
//URL二重判定回避
urlcache = event.url;
if (event.url.includes("https://train.jr-shikoku.co.jp/usage.htm")) {
if (Platform.OS === "android") navigate("howto", { info: event.url });
webview?.current.goBack();
//Actions.howto();
} else if (
event.url.includes("https://train.jr-shikoku.co.jp/train.html")
) {
//Actions.trainbase({info: event.url});
if (Platform.OS === "android")
navigate("trainbase", { info: event.url });
webview?.current.goBack();
}
}
};
function sleep(waitSec, callbackFunc) {
// 経過時間(秒)
var spanedSec = 0;
// 1秒間隔で無名関数を実行
var id = setInterval(function () {
spanedSec++;
// 経過時間 >= 待機時間の場合、待機終了。
if (spanedSec >= waitSec) {
// タイマー停止
clearInterval(id);
// 完了時、コールバック関数を実行
if (callbackFunc) callbackFunc();
}
}, 1);
}
const openStationACFromEachTrainInfo = (stationName) => {
EachTrainInfoAsSR.current?.hide();
const findStationEachLine = (selectLine) => {
let NearStation = selectLine.filter((d) => d.Station_JP == stationName);
return NearStation;
};
let returnDataBase = lineList
.map((d) => findStationEachLine(originalStationList[d]))
.filter((d) => d.length > 0)
.reduce((pre, current) => {
pre.push(...current);
return pre;
}, []);
if (returnDataBase.length) {
setStationBoardData(returnDataBase);
sleep(25, function () {
StationBoardAcSR.current?.show();
});
} else {
setStationBoardData(undefined);
StationBoardAcSR.current?.hide();
}
};
return (
<NavigationContainer ref={navigationRef}>
<Tab.Navigator
initialRouteName="topMenu"
screenOptions={{
lazy: false,
animation: "shift",
tabBarHideOnKeyboard: Platform.OS === "android",
<View
style={{
height: "100%",
paddingTop: Platform.OS == "ios" ? Constants.statusBarHeight : 0,
}}
>
{/* {Status} */}
<WebView
useWebKit
ref={webview}
source={{ uri: "https://train.jr-shikoku.co.jp/sp.html" }}
originWhitelist={[
"https://train.jr-shikoku.co.jp",
"https://train.jr-shikoku.co.jp/sp.html",
]}
mixedContentMode={"compatibility"}
javaScriptEnabled
allowsBackForwardNavigationGestures
setSupportMultipleWindows
onNavigationStateChange={onNavigationStateChange}
onMessage={onMessage}
injectedJavaScript={injectJavascript}
onTouchMove={() => StationBoardAcSR.current?.hide()}
onLoadEnd={() => {
if (once) return () => {};
if (!stationData) return () => {};
if (favoriteStation.length > 0) {
const getStationLine = (now) => {
const returnData = Object.keys(stationData).filter((d) => {
const cache = stationData[d].findIndex(
(data) => data.Station_JP == now.Station_JP
);
return cache != -1;
});
return returnData[0];
};
const lineName = getStationLine(favoriteStation[0][0]);
webview.current?.injectJavaScript(
`MoveDisplayStation('${lineName}_${favoriteStation[0][0].MyStation}_${favoriteStation[0][0].Station_JP}')`
);
once = true;
}
}}
detachInactiveScreens={false}
lazy={false}
>
<Tab.Screen
{...getTabProps("positions", "走行位置", "barchart", "AntDesign")}
component={Top}
/>
<Tab.Screen
{...getTabProps("topMenu", "トップメニュー", "radio", "Ionicons")}
component={MenuPage}
/>
/>
<MapsButton
onPress={() => navigate("trainMenu", { webview })}
top={Platform.OS == "ios" ? Constants.statusBarHeight : 0}
mapSwitch={mapSwitch == "true" ? "flex" : "none"}
/>
<ReloadButton
onPress={() => webview.current.reload()}
top={Platform.OS == "ios" ? Constants.statusBarHeight : 0}
/>
<Tab.Screen
{...getTabProps(
"information",
"運行情報",
"train",
"Ionicons",
areaInfo ? areaIconBadgeText : undefined,
isInfo
)}
children={TNDView}
/>
</Tab.Navigator>
</NavigationContainer>
<StationDeteilView
StationBoardAcSR={StationBoardAcSR}
currentStation={stationBoardData}
originalStationList={originalStationList}
favoriteStation={favoriteStation}
setFavoriteStation={setFavoriteStation}
busAndTrainData={busAndTrainData}
navigate={navigate}
onExit={() => {
StationBoardAcSR.current?.setModalVisible();
navigate("Apps");
}}
/>
<EachTrainInfo
setRef={EachTrainInfoAsSR}
data={trainInfo}
navigate={navigate}
originalStationList={originalStationList}
openStationACFromEachTrainInfo={openStationACFromEachTrainInfo}
/>
</View>
);
}
const MapsButton = ({ onPress, top, mapSwitch }) => {
const styles = {
touch: {
position: "absolute",
top,
left: 10,
width: 50,
height: 50,
backgroundColor: "#0099CC",
borderColor: "white",
borderStyle: "solid",
borderWidth: 1,
borderRadius: 50,
alignContent: "center",
alignSelf: "center",
alignItems: "center",
display: mapSwitch,
},
text: {
textAlign: "center",
width: "auto",
height: "auto",
textAlignVertical: "center",
fontWeight: "bold",
color: "white",
},
};
return (
<TouchableOpacity onPress={onPress} style={styles.touch}>
<View style={{ flex: 1 }} />
<Text style={styles.text}></Text>
<View style={{ flex: 1 }} />
</TouchableOpacity>
);
};
const ReloadButton = ({ onPress, top, mapSwitch }) => {
const styles = {
touch: {
position: "absolute",
top,
right: 10,
width: 50,
height: 50,
backgroundColor: "#0099CC",
borderColor: "white",
borderStyle: "solid",
borderWidth: 1,
borderRadius: 50,
alignContent: "center",
alignSelf: "center",
alignItems: "center",
display: mapSwitch,
},
text: {
textAlign: "center",
width: "auto",
height: "auto",
textAlignVertical: "center",
fontWeight: "bold",
color: "white",
},
};
return (
<TouchableOpacity onPress={onPress} style={styles.touch}>
<View style={{ flex: 1 }} />
<Ionicons name="reload" color="white" size={30} />
<View style={{ flex: 1 }} />
</TouchableOpacity>
);
};

View File

@ -1,93 +0,0 @@
import React, { useEffect } from "react";
import { createStackNavigator } from "@react-navigation/stack";
import { SheetManager } from "react-native-actions-sheet";
import { AS } from "./storageControl";
import TrainBase from "./components/trainbaseview";
import HowTo from "./howto";
import Menu from "./menu";
import News from "./components/news";
import Setting from "./components/Settings/settings";
import { useFavoriteStation } from "./stateBox/useFavoriteStation";
import { optionData } from "./lib/stackOption";
import AllTrainDiagramView from "./components/AllTrainDiagramView";
import { useCurrentTrain } from "./stateBox/useCurrentTrain";
import { useNavigation } from "@react-navigation/native";
import { news } from "./config/newsUpdate";
const Stack = createStackNavigator();
export function MenuPage() {
const { favoriteStation, setFavoriteStation } = useFavoriteStation();
const { getCurrentTrain } = useCurrentTrain();
const navigation = useNavigation();
const { addListener } = navigation;
useEffect(() => {
AS.getItem("startPage")
.then((res) => {
if (res == "true") navigation.navigate("positions");
})
.catch((e) => {
//6.0以降false
AS.setItem("startPage", "false");
});
//ニュース表示
AS.getItem("status")
.then((d) => {
if (d != news) navigation.navigate("topMenu", { screen: "news" });
})
.catch(() => navigation.navigate("topMenu", { screen: "news" }));
AS.getItem("isSetIcon")
.then((isSetIcon) => {
if (isSetIcon == "true") SheetManager.show("TrainIconUpdate");
})
.catch((error) => console.error("Error fetching icon setting:", error));
}, []);
useEffect(() => {
const unsubscribe = addListener("tabPress", (e) => {
AS.getItem("favoriteStation")
.then((d) => {
const returnData = JSON.parse(d);
if (favoriteStation.toString() != d) {
setFavoriteStation(returnData);
}
})
.catch((d) => console.log(d));
});
return unsubscribe;
}, [navigation]);
return (
<Stack.Navigator>
<Stack.Screen
name="menu"
options={{
headerShown: false,
gestureEnabled: true,
headerTransparent: true,
}}
children={() => <Menu getCurrentTrain={getCurrentTrain} />}
/>
<Stack.Screen name="news" options={optionData} component={News} />
<Stack.Screen
name="setting"
options={{
...optionData,
gestureEnabled: false,
cardOverlayEnabled: true,
}}
component={Setting}
/>
<Stack.Screen
name="trainbase"
options={{ ...optionData }}
component={TrainBase}
/>
<Stack.Screen
name="AllTrainIDList"
options={{ ...optionData, gestureEnabled: false }}
component={AllTrainDiagramView}
/>
<Stack.Screen name="howto" options={optionData} component={HowTo} />
</Stack.Navigator>
);
}

View File

@ -1,12 +1,10 @@
import React, { FC } from "react";
import React from "react";
import { Platform, StatusBar, View } from "react-native";
const StatusbarDetect: FC = () => {
export default function StatusbarDetect() {
if (Platform.OS == "ios") {
return <StatusBar barStyle="dark-content" />;
} else if (Platform.OS == "android") {
return <View />;
}
};
export default StatusbarDetect;
}

80
Top.js
View File

@ -1,80 +0,0 @@
import React, { useEffect } from "react";
import { createStackNavigator } from "@react-navigation/stack";
import { useNavigation } from "@react-navigation/native";
import Apps from "./components/Apps";
import TrainBase from "./components/trainbaseview";
import HowTo from "./howto";
import News from "./components/news";
import TrainMenu from "./components/trainMenu";
import { FavoriteList } from "./components/FavoriteList";
import { optionData } from "./lib/stackOption";
import { useCurrentTrain } from "./stateBox/useCurrentTrain";
import { useTrainMenu } from "./stateBox/useTrainMenu";
import { AS } from "./storageControl";
import { news } from "./config/newsUpdate";
import { Linking, Platform } from "react-native";
const Stack = createStackNavigator();
export const Top = () => {
const { webview } = useCurrentTrain();
const { navigate, addListener, isFocused } = useNavigation();
//地図用
const { injectJavaScript, mapSwitch } = useTrainMenu();
const goToFavoriteList = () =>
navigate("positions", { screen: "favoriteList" });
useEffect(() => {
const unsubscribe = addListener("tabLongPress", goToFavoriteList);
return unsubscribe;
}, []);
const goToTrainMenu = () => {
if (Platform.OS === "web") {
Linking.openURL("https://train.jr-shikoku.co.jp/");
setTimeout(() => navigate("topMenu", { screen: "menu" }), 100);
return;
}
if (!isFocused()) navigate("positions", { screen: "Apps" });
else if (mapSwitch == "true") navigate("positions", { screen: "trainMenu" });
else webview.current?.injectJavaScript(`AccordionClassEvent()`);
return;
};
useEffect(() => {
const unsubscribe = addListener("tabPress", goToTrainMenu);
return unsubscribe;
}, [addListener, mapSwitch, injectJavaScript]);
return (
<Stack.Navigator detachInactiveScreens={false}>
<Stack.Screen
name="Apps"
options={{
headerShown: false,
gestureEnabled: true,
headerTransparent: true,
detachPreviousScreen: false,
}}
component={Apps}
/>
<Stack.Screen
name="trainbase"
options={{ ...optionData }}
component={TrainBase}
/>
<Stack.Screen name="howto" options={optionData} component={HowTo} />
<Stack.Screen name="news" options={optionData} component={News} />
<Stack.Screen
name="trainMenu"
options={optionData}
component={TrainMenu}
/>
<Stack.Screen
name="favoriteList"
options={{ ...optionData, gestureEnabled: false }}
component={FavoriteList}
/>
</Stack.Navigator>
);
};

View File

@ -1,11 +1,11 @@
import { Platform, ToastAndroid } from "react-native";
import { ToastAndroid } from "react-native";
import * as Updates from "expo-updates";
export const UpdateAsync = () => {
Updates.checkForUpdateAsync()
.then((update) => {
if (!update.isAvailable) return;
if (Platform.OS !== "android") {
if (Platform.OS == "ios") {
alert("アプリのデータを更新しています。");
} else {
ToastAndroid.showWithGravityAndOffset(
@ -20,7 +20,7 @@ export const UpdateAsync = () => {
return;
})
.catch((e) => {
Platform.OS != "android"
Platform.OS == "ios"
? alert(e.toString())
: ToastAndroid.showWithGravityAndOffset(
e.toString(),

433
app.json
View File

@ -1,55 +1,39 @@
{
"expo": {
"name": "JR四国非公式",
"name": "JR四国運行状況",
"slug": "jrshikoku",
"privacy": "public",
"platforms": [
"ios",
"android",
"web"
"android"
],
"version": "6.0.1",
"orientation": "default",
"icon": "./assets/icons/s8600.png",
"version": "4.5",
"orientation": "portrait",
"icon": "./assets/icon.png",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#00b8ff"
},
"updates": {
"fallbackToCacheTimeout": 0,
"url": "https://u.expo.dev/398abf60-57a7-11e9-970c-8f04356d08bf"
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"buildNumber": "47",
"supportsTablet": false,
"buildNumber": "28",
"supportsTablet": true,
"bundleIdentifier": "jrshikokuinfo.xprocess.hrkn",
"config": {
"googleMapsApiKey": "AIzaSyAVGDTjBkR_0wkQiNkoo5WDLhqXCjrjk8Y"
},
"infoPlist": {
"NFCReaderUsageDescription": "To read FeliCa card",
"com.apple.developer.nfc.readersession.felica.systemcodes": [
"0003",
"FE00"
],
"ITSAppUsesNonExemptEncryption": false
},
"entitlements": {
"com.apple.developer.nfc.readersession.formats": [
"TAG"
]
}
},
"android": {
"package": "jrshikokuinfo.xprocess.hrkn",
"versionCode": 28,
"versionCode": 18,
"permissions": [
"ACCESS_FINE_LOCATION",
"NFC",
"android.permission.ACCESS_COARSE_LOCATION",
"android.permission.ACCESS_FINE_LOCATION"
"ACCESS_FINE_LOCATION"
],
"googleServicesFile": "./google-services.json",
"config": {
@ -62,397 +46,6 @@
"eas": {
"projectId": "398abf60-57a7-11e9-970c-8f04356d08bf"
}
},
"runtimeVersion": {
"policy": "sdkVersion"
},
"plugins": [
"expo-font",
"expo-localization",
[
"expo-screen-orientation",
{
"initialOrientation": "DEFAULT"
}
],
[
"expo-location",
{
"locationWhenInUsePermission": "この位置情報は、リンク画面で現在地側近の駅情報を取得するのに使用されます。"
}
],
[
"react-native-android-widget",
{
"widgets": [
{
"name": "JR_shikoku_train_info",
"label": "列車遅延速報EX",
"minWidth": "70dp",
"minHeight": "50dp",
"description": "JR四国列車遅延速報EXのウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。",
"previewImage": "./assets/icon.png",
"updatePeriodMillis": 1800000,
"resizeMode": "horizontal|vertical"
},
{
"name": "JR_shikoku_train_strange",
"label": "怪レい列車",
"minWidth": "70dp",
"minHeight": "50dp",
"description": "JR四国怪レい列車BOTのウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。",
"previewImage": "./assets/icon.png",
"updatePeriodMillis": 1800000,
"resizeMode": "horizontal|vertical"
},
{
"name": "JR_shikoku_info",
"label": "運行情報",
"minWidth": "70dp",
"minHeight": "50dp",
"description": "JR四国運行情報のウィジェットです。30分ごとに自動更新します。タッチすると強制更新します。",
"previewImage": "./assets/icon.png",
"updatePeriodMillis": 1800000,
"resizeMode": "horizontal|vertical"
},
{
"name": "JR_shikoku_apps_shortcut",
"label": "クイックアクセス",
"minWidth": "70dp",
"minHeight": "50dp",
"description": "JR四国非公式アプリの各種リンクを表示するウィジェットです。",
"previewImage": "./assets/icon.png",
"updatePeriodMillis": 1800000,
"resizeMode": "horizontal|vertical"
}
]
}
],
[
"expo-alternate-app-icons",
[
{
"name": "32",
"ios": "./assets/icons/32.png",
"android": {
"foregroundImage": "./assets/icons/32.png",
"backgroundColor": "#001413"
}
},
{
"name": "32kpuuy",
"ios": "./assets/icons/32kpuuy.png",
"android": {
"foregroundImage": "./assets/icons/32kpuuy.png",
"backgroundColor": "#001413"
}
},
{
"name": "32tht",
"ios": "./assets/icons/32tht.png",
"android": {
"foregroundImage": "./assets/icons/32tht.png",
"backgroundColor": "#001413"
}
},
{
"name": "32at",
"ios": "./assets/icons/32at.png",
"android": {
"foregroundImage": "./assets/icons/32at.png",
"backgroundColor": "#001413"
}
},
{
"name": "54",
"ios": "./assets/icons/54.png",
"android": {
"foregroundImage": "./assets/icons/54.png",
"backgroundColor": "#001413"
}
},
{
"name": "54st",
"ios": "./assets/icons/54st.png",
"android": {
"foregroundImage": "./assets/icons/54st.png",
"backgroundColor": "#001413"
}
},
{
"name": "40",
"ios": "./assets/icons/40.png",
"android": {
"foregroundImage": "./assets/icons/40.png",
"backgroundColor": "#001413"
}
},
{
"name": "185mrt",
"ios": "./assets/icons/s185_mrt.png",
"android": {
"foregroundImage": "./assets/icons/s185_mrt.png",
"backgroundColor": "#001413"
}
},
{
"name": "185tu",
"ios": "./assets/icons/s185tu.png",
"android": {
"foregroundImage": "./assets/icons/s185tu.png",
"backgroundColor": "#001413"
}
},
{
"name": "185iyor",
"ios": "./assets/icons/s185iyor.png",
"android": {
"foregroundImage": "./assets/icons/s185iyor.png",
"backgroundColor": "#001413"
}
},
{
"name": "185iyoy",
"ios": "./assets/icons/s185iyoy.png",
"android": {
"foregroundImage": "./assets/icons/s185iyoy.png",
"backgroundColor": "#001413"
}
},
{
"name": "185toai",
"ios": "./assets/icons/s185to_ai.png",
"android": {
"foregroundImage": "./assets/icons/s185to_ai.png",
"backgroundColor": "#001413"
}
},
{
"name": "185mm1",
"ios": "./assets/icons/s185mm1.png",
"android": {
"foregroundImage": "./assets/icons/s185mm1.png",
"backgroundColor": "#001413"
}
},
{
"name": "185ym1",
"ios": "./assets/icons/s185ym1.png",
"android": {
"foregroundImage": "./assets/icons/s185ym1.png",
"backgroundColor": "#001413"
}
},
{
"name": "1000",
"ios": "./assets/icons/s1000.png",
"android": {
"foregroundImage": "./assets/icons/s1000.png",
"backgroundColor": "#001413"
}
},
{
"name": "1200n",
"ios": "./assets/icons/s1200n.png",
"android": {
"foregroundImage": "./assets/icons/s1200n.png",
"backgroundColor": "#001413"
}
},
{
"name": "1500",
"ios": "./assets/icons/s1500.png",
"android": {
"foregroundImage": "./assets/icons/s1500.png",
"backgroundColor": "#001413"
}
},
{
"name": "5001",
"ios": "./assets/icons/s5001.png",
"android": {
"foregroundImage": "./assets/icons/s5001.png",
"backgroundColor": "#001413"
}
},
{
"name": "5001k",
"ios": "./assets/icons/s5001k.png",
"android": {
"foregroundImage": "./assets/icons/s5001k.png",
"backgroundColor": "#001413"
}
},
{
"name": "6000p",
"ios": "./assets/icons/s6000p.png",
"android": {
"foregroundImage": "./assets/icons/s6000p.png",
"backgroundColor": "#001413"
}
},
{
"name": "7000",
"ios": "./assets/icons/s7000.png",
"android": {
"foregroundImage": "./assets/icons/s7000.png",
"backgroundColor": "#001413"
}
},
{
"name": "7200",
"ios": "./assets/icons/s7200.png",
"android": {
"foregroundImage": "./assets/icons/s7200.png",
"backgroundColor": "#001413"
}
},
{
"name": "2000asi",
"ios": "./assets/icons/s2000_asi.png",
"android": {
"foregroundImage": "./assets/icons/s2000_asi.png",
"backgroundColor": "#001413"
}
},
{
"name": "N2000",
"ios": "./assets/icons/s2000n.png",
"android": {
"foregroundImage": "./assets/icons/s2000n.png",
"backgroundColor": "#001413"
}
},
{
"name": "2002a",
"ios": "./assets/icons/s2002a.png",
"android": {
"foregroundImage": "./assets/icons/s2002a.png",
"backgroundColor": "#001413"
}
},
{
"name": "2600",
"ios": "./assets/icons/s2600.png",
"android": {
"foregroundImage": "./assets/icons/s2600.png",
"backgroundColor": "#001413"
}
},
{
"name": "2700",
"ios": "./assets/icons/s2700.png",
"android": {
"foregroundImage": "./assets/icons/s2700.png",
"backgroundColor": "#001413"
}
},
{
"name": "2700apy",
"ios": "./assets/icons/s2700apy.png",
"android": {
"foregroundImage": "./assets/icons/s2700apy.png",
"backgroundColor": "#001413"
}
},
{
"name": "2700apr",
"ios": "./assets/icons/s2700apr.png",
"android": {
"foregroundImage": "./assets/icons/s2700apr.png",
"backgroundColor": "#001413"
}
},
{
"name": "8000no",
"ios": "./assets/icons/s8000no.png",
"android": {
"foregroundImage": "./assets/icons/s8000no.png",
"backgroundColor": "#001413"
}
},
{
"name": "8000nr",
"ios": "./assets/icons/s8000nr.png",
"android": {
"foregroundImage": "./assets/icons/s8000nr.png",
"backgroundColor": "#001413"
}
},
{
"name": "8000ap",
"ios": "./assets/icons/s8000ap.png",
"android": {
"foregroundImage": "./assets/icons/s8000ap.png",
"backgroundColor": "#001413"
}
},
{
"name": "8000nn",
"ios": "./assets/icons/s8000nn.png",
"android": {
"foregroundImage": "./assets/icons/s8000nn.png",
"backgroundColor": "#001413"
}
},
{
"name": "8600",
"ios": "./assets/icons/s8600.png",
"android": {
"foregroundImage": "./assets/icons/s8600.png",
"backgroundColor": "#001413"
}
},
{
"name": "9640",
"ios": "./assets/icons/tosa9640.png",
"android": {
"foregroundImage": "./assets/icons/tosa9640.png",
"backgroundColor": "#001413"
}
},
{
"name": "9640jgr",
"ios": "./assets/icons/tosa9640jgr.png",
"android": {
"foregroundImage": "./assets/icons/tosa9640jgr.png",
"backgroundColor": "#001413"
}
},
{
"name": "285",
"ios": "./assets/icons/w285.png",
"android": {
"foregroundImage": "./assets/icons/w285.png",
"backgroundColor": "#001413"
}
},
{
"name": "213w",
"ios": "./assets/icons/w213w.png",
"android": {
"foregroundImage": "./assets/icons/w213w.png",
"backgroundColor": "#001413"
}
},
{
"name": "EF65",
"ios": "./assets/icons/ef65.png",
"android": {
"foregroundImage": "./assets/icons/ef65.png",
"backgroundColor": "#001413"
}
},
{
"name": "EF210",
"ios": "./assets/icons/ef210.png",
"android": {
"foregroundImage": "./assets/icons/ef210.png",
"backgroundColor": "#001413"
}
}
]
]
]
}
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

View File

@ -1,94 +0,0 @@
◆国鉄っぽいフォントぽいフォントピクトfor Win(xp)
 かつて日本国有鉄道(国鉄)の吊り下げ式駅名標や駅の案内で使用されていたもピクトグラム
(プラスアルファ)を搭載したフォントです。
 東海地方~四国で広く使用されていたものを見本としています。
◆作成ソフト
TTEditにより作成しています。
◆インストールの方法
 「スタート」から設定、コントロールパネルを開き、さらに「フォント」フォルダを開きます。
ファイルメニューから「新しいフォントのインストール」で、フォントを選択のうえインストール
してください。
 また、フォントファイルを適宜の場所に解凍し、上記「フォント」フォルダを開いたうえで、
ドラッグアンドドロップする方法でもインストールできます。
◆収録文字・記号一覧
左側が入力文字、右側が表示されるピクト類です。
0…公衆電話
1…エスカレーター(のぼり)
2…エスカレーター(くだり)
3…階段(おり)
4…階段(のぼり)
B…国鉄バスつばめマーク(つばめ左向き)
C…国鉄バスつばめマーク(つばめ右向き)
G…グリーン車マーク
J…国鉄「JNR」ロゴ
L…L特急マーク
M…公衆便所(男性)
S…シルバーシート
W…公衆便所(女性)
い…手荷物一時預かり
お…大阪市内の駅マーク
き…京都市内の駅マーク
く…北九州市内の駅マーク
け…禁煙マーク
こ…神戸市内の駅マーク
さ…札幌市内の駅マーク
し…新幹線
せ…仙台市内の駅マーク
た…タクシー
つ…つばめマーク(つばめ左向き)
ツ…つばめマーク(つばめ右向き)
て…手荷物預かり
で…国電
と…東京都区内の駅マーク
な…名古屋市内の駅マーク
は…国鉄ハイウェイバス
ば…路線バス
ひ…広島市内の駅マーク
ふ…福岡市内の駅マーク
ぶ…寝台急行マーク
ブ…寝台特急マーク
や…東京山手線内の駅マーク
ゆ…温泉マーク
よ…横浜市内の駅マーク
れ…レール
ろ…コインロッカー
←…矢印(左向き)
→…矢印(右向き)
↑…矢印(上向き)
↓…矢印(下向き)
◆ご使用に当たってのお願い
 フォントは無料にて配布しています。商用利用には耐えられない出来だと思いますが、ご自身
の責任においてご自由にお使いください。
 インストール及び使用にあたっても、ご自身の責任においてご使用ください。インストールや
使用によって蒙る損害については、当方は一切責任を負いかねます。
◆Windows Vistaをお使いの方へ
 Windows Vistaをお使いの方で、フォントのエッジを滑らかにしたい方は、スクリーンフ
ォントの縁を滑らかにする方法を「標準」にしてください。Clear Typeだと滑らかに表示されない
場合があります。
 ・標準への変更方法
 1.ウィンドウ上で右クリックをします。
 2.現れたメニュー中の「個人設定」を選択。
 3.続いて「ウィンドウの色とデザイン」を選択。
 4.一番下の「「デザイン」プロパティを開きます」をクリックします。
 5.現れた別ウィンドウの「効果」ボタンをクリック。
 「次の方法でスクリーンフォントの縁を滑らかにする」のところを「Clear Type」から「標
   準」にします。
 ※これでこのフォントについてはより滑らかに表示されますが、他のフォントが滑らかに表示さ
れない場合が多くなります。
◆フォント自体についての若干のご説明
 このフォントは、前述のとおり、国鉄において東海地区から四国地区の吊り下げ式駅名標や各種
案内表示で使用されたものを見本としています。もともとは、「鉄道掲示基準規程」という通達に
定められているピクトグラムです。
--------------------------------------
作成者Yokochan
ホームページ「旅と鉄の盲腸」http://travelcecum.xsrv.jp/font.htm
連絡先travel_cecum@yahoo.co.jp

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

View File

@ -1,45 +0,0 @@
export default () =>{
return [
{ "id": "32", "name": "キハ32形", "icon": require("./32.png") },
{ "id": "32kpuuy", "name": "キハ32形かっぱうようよ号", "icon": require("./32kpuuy.png") },
{ "id": "32tht", "name": "キハ32形新幹線ホビートレイン", "icon": require("./32tht.png") },
{ "id": "32at", "name": "キクハ32形アンパンマントロッコ", "icon": require("./32at.png") },
{ "id": "54", "name": "キハ54形", "icon": require("./54.png") },
{ "id": "54st", "name": "キハ54形しまんトロッコ", "icon": require("./54st.png") },
{ "id": "40", "name": "キハ40", "icon": require("./40.png") },
{ "id": "185mrt", "name": "キハ185系四国色", "icon": require("./s185_mrt.png") },
{ "id": "185tu", "name": "キハ185系剣山色", "icon": require("./s185tu.png") },
{ "id": "185iyor", "name": "キハ185系伊予灘ものがたり(赤)", "icon": require("./s185iyor.png") },
{ "id": "185iyoy", "name": "キハ185系伊予灘ものがたり(黄)", "icon": require("./s185iyoy.png") },
{ "id": "185toai", "name": "キハ185系藍よしのがわトロッコ", "icon": require("./s185to_ai.png") },
{ "id": "185mm1", "name": "キハ185系四国まんなか千年ものがたり(緑)", "icon": require("./s185mm1.png") },
{ "id": "185ym1", "name": "キハ185系時代の夜明けのものがたり(茶)", "icon": require("./s185ym1.png") },
{ "id": "1000", "name": "1000形", "icon": require("./s1000.png") },
{ "id": "1200n", "name": "1200形", "icon": require("./s1200n.png") },
{ "id": "1500", "name": "1500形", "icon": require("./s1500.png") },
{ "id": "5001", "name": "5000系(二階建て)", "icon": require("./s5001.png") },
{ "id": "5001k", "name": "5000系(平屋側)", "icon": require("./s5001k.png") },
{ "id": "6000p", "name": "6000系", "icon": require("./s6000p.png") },
{ "id": "7000", "name": "7000系", "icon": require("./s7000.png") },
{ "id": "7200", "name": "7200系", "icon": require("./s7200.png") },
{ "id": "2000asi", "name": "2000系", "icon": require("./s2000_asi.png") },
{ "id": "N2000", "name": "N2000系", "icon": require("./s2000n.png") },
{ "id": "2002a", "name": "2000系アンパンマン", "icon": require("./s2002a.png") },
{ "id": "2600", "name": "2600系" , "icon": require("./s2600.png")},
{ "id": "2700", "name": "2700系", "icon": require("./s2700.png") },
{ "id": "2700apy", "name": "2700系アンパンマン(黄)", "icon": require("./s2700apy.png") },
{ "id": "2700apr", "name": "2700系アンパンマン(赤)", "icon": require("./s2700apr.png") },
{ "id": "8000no", "name": "8000系(オレンジ)", "icon": require("./s8000no.png") },
{ "id": "8000nr", "name": "8000系(赤)", "icon": require("./s8000nr.png") },
{ "id": "8000ap", "name": "8000系アンパンマン", "icon": require("./s8000ap.png") },
{ "id": "8000nn", "name": "8000系リニューアル改", "icon": require("./s8000nn.png") },
{ "id": "8600", "name": "8600系", "icon": require("./s8600.png") },
{ "id": "9640", "name": "9640形(白)", "icon": require("./tosa9640.png") },
{ "id": "9640jgr", "name": "9640形オープンデッキ(緑)", "icon": require("./tosa9640jgr.png") },
{ "id": "285", "name": "285系サンライズ瀬戸", "icon": require("./w285.png") },
{ "id": "213w", "name": "ラ・マル・ド・ボァ", "icon": require("./w213w.png") },
{ "id": "EF65", "name": "EF65", "icon": require("./ef65.png") },
{ "id": "EF210", "name": "EF210", "icon": require("./ef210.png") },
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -1,5 +1,5 @@
export default [
{"Station_JP" : "徳島", "Station_EN" : "Tokushima", "MyStation" : "0", "StationNumber" : "B00", "DispNum" : "3", "StationTimeTable" : "http://www.jr-shikoku.co.jp/01_trainbus/jikoku/pdf/tokushima.pdf", "StationMap":"https://www.google.co.jp/maps/place/34.074642,134.550764", "JrHpUrl" : "http://www.jr-shikoku.co.jp/01_trainbus/kakueki/tokushima/"},
{"Station_JP" : "徳島", "Station_EN" : "Tokushima", "MyStation" : "0", "StationNumber" : "T00", "DispNum" : "3", "StationTimeTable" : "http://www.jr-shikoku.co.jp/01_trainbus/jikoku/pdf/tokushima.pdf", "StationMap":"https://www.google.co.jp/maps/place/34.074642,134.550764", "JrHpUrl" : "http://www.jr-shikoku.co.jp/01_trainbus/kakueki/tokushima/"},
{"Station_JP" : "佐古", "Station_EN" : "Sako", "MyStation" : "0", "StationNumber" : "B01", "DispNum" : "2", "StationTimeTable" : "http://www.jr-shikoku.co.jp/01_trainbus/jikoku/pdf/sako.pdf", "StationMap":"https://www.google.co.jp/maps/place/34.080616,134.538576", "JrHpUrl" : ""},
{"Station_JP" : "蔵本", "Station_EN" : "Kuramoto", "MyStation" : "1", "StationNumber" : "B02", "DispNum" : "2", "StationTimeTable" : "http://www.jr-shikoku.co.jp/01_trainbus/jikoku/pdf/kuramoto.pdf", "StationMap":"https://www.google.co.jp/maps/place/34.079332,134.518705", "JrHpUrl" : ""},
{"Station_JP" : "府中", "Station_EN" : "Kō", "MyStation" : "2", "StationNumber" : "B04", "DispNum" : "2", "StationTimeTable" : "http://www.jr-shikoku.co.jp/01_trainbus/jikoku/pdf/ko.pdf", "StationMap":"https://www.google.co.jp/maps/place/34.074134,134.482939", "JrHpUrl" : ""},

File diff suppressed because it is too large Load Diff

View File

@ -1,935 +0,0 @@
export default{
"104M":"多度津,発,5:51#讃岐塩屋,発,5:55#丸亀,発,5:57#宇多津,発,6:04#坂出,発,6:09#八十場,発,6:12#鴨川,発,6:19#讃岐府中,発,6:22#国分,発,6:25#端岡,発,6:28#鬼無,発,6:32#香西,発,6:34#高松,着,6:39#",
"108M":"観音寺,発,6:26#本山,発,6:31#比地大,発,6:34#高瀬,発,6:38#みの,発,6:41#詫間,発,6:45#海岸寺,発,6:50#多度津,発,6:58#讃岐塩屋,発,7:01#丸亀,発,7:04#宇多津,発,7:08#坂出,発,7:13#八十場,発,7:16#鴨川,発,7:26#讃岐府中,発,7:30#国分,発,7:33#端岡,発,7:36#鬼無,発,7:40#香西,発,7:43#高松,着,7:47#",
"110M":"多度津,発,7:18#讃岐塩屋,発,7:21#丸亀,発,7:24#宇多津,発,7:28#坂出,発,7:32#八十場,発,7:36#鴨川,発,7:39#讃岐府中,発,7:42#国分,発,7:45#端岡,発,7:48#鬼無,発,7:52#香西,発,7:55#高松,着,7:59#",
"112M":"伊予西条,発,5:36#中萩,発,5:42#新居浜,発,5:47#多喜浜,発,5:51#関川,発,5:58#伊予土居,発,6:02#赤星,発,6:05#伊予寒川,発,6:09#伊予三島,発,6:25#川之江,発,6:38#箕浦,発,6:43#豊浜,発,6:50#観音寺,発,6:56#本山,発,7:00#比地大,発,7:03#高瀬,発,7:07#みの,発,7:10#詫間,発,7:14#海岸寺,発,7:19#多度津,発,7:24#讃岐塩屋,発,7:27#丸亀,発,7:30#宇多津,発,7:33#坂出,発,7:38#八十場,発,7:41#鴨川,発,7:44#讃岐府中,発,7:47#国分,発,7:50#端岡,発,7:53#鬼無,発,7:57#香西,発,8:00#高松,着,8:04#",
"116M":"伊予西条,発,6:13#中萩,発,6:19#新居浜,発,6:24#多喜浜,発,6:31#関川,発,6:38#伊予土居,発,6:44#赤星,発,6:48#伊予寒川,発,6:52#伊予三島,発,7:01#川之江,発,7:05#箕浦,発,7:11#豊浜,発,7:15#観音寺,発,7:21#本山,発,7:30#比地大,発,7:33#高瀬,発,7:38#みの,発,7:41#詫間,発,7:44#海岸寺,発,7:50#多度津,発,7:56#讃岐塩屋,発,7:59#丸亀,発,8:03#宇多津,発,8:07#坂出,発,8:12#八十場,発,8:15#鴨川,発,8:18#讃岐府中,発,8:22#国分,発,8:25#端岡,発,8:29#鬼無,発,8:33#香西,発,8:36#高松,着,8:41#",
"128M":"多度津,発,12:09#讃岐塩屋,発,12:12#丸亀,発,12:15#宇多津,発,12:18#坂出,発,12:24#八十場,発,12:28#鴨川,発,12:31#讃岐府中,発,12:34#国分,発,12:37#端岡,発,12:40#鬼無,発,12:44#香西,発,12:47#高松,着,12:51#",
"130M":"観音寺,発,12:13#本山,発,12:20#比地大,発,12:23#高瀬,発,12:32#みの,発,12:35#詫間,発,12:39#海岸寺,発,12:48#多度津,発,13:02#讃岐塩屋,発,13:05#丸亀,発,13:08#宇多津,発,13:11#坂出,発,13:16#端岡,発,13:25#高松,着,13:33#",
"132M":"多度津,発,14:02#讃岐塩屋,発,14:05#丸亀,発,14:08#宇多津,発,14:11#坂出,発,14:16#端岡,発,14:25#高松,着,14:33#",
"134M":"多度津,発,14:09#讃岐塩屋,発,14:12#丸亀,発,14:15#宇多津,発,14:18#坂出,発,14:24#八十場,発,14:27#鴨川,発,14:30#讃岐府中,発,14:33#国分,発,14:36#端岡,発,14:39#鬼無,発,14:42#香西,発,14:45#高松,着,14:49#",
"136M":"観音寺,発,14:14#本山,発,14:21#比地大,発,14:25#高瀬,発,14:33#みの,発,14:36#詫間,発,14:40#海岸寺,発,14:46#多度津,発,15:02#讃岐塩屋,発,15:05#丸亀,発,15:08#宇多津,発,15:11#坂出,発,15:16#端岡,発,15:25#高松,着,15:33#",
"140M":"観音寺,発,15:12#本山,発,15:17#比地大,発,15:20#高瀬,発,15:33#みの,発,15:37#詫間,発,15:44#海岸寺,発,15:50#多度津,発,16:02#讃岐塩屋,発,16:05#丸亀,発,16:08#宇多津,発,16:11#坂出,発,16:16#端岡,発,16:25#高松,着,16:33#",
"142M":"多度津,発,16:12#讃岐塩屋,発,16:15#丸亀,発,16:18#宇多津,発,16:22#坂出,発,16:27#八十場,発,16:30#鴨川,発,16:34#讃岐府中,発,16:37#国分,発,16:40#端岡,発,16:48#鬼無,発,16:52#香西,発,16:55#高松,着,16:59#",
"144M":"観音寺,発,16:12#本山,発,16:16#比地大,発,16:19#高瀬,発,16:23#みの,発,16:26#詫間,発,16:31#海岸寺,発,16:37#多度津,発,17:02#讃岐塩屋,発,17:05#丸亀,発,17:08#宇多津,発,17:11#坂出,発,17:16#端岡,発,17:25#高松,着,17:33#",
"146M":"観音寺,発,17:31#本山,発,17:38#比地大,発,17:41#高瀬,発,17:45#みの,発,17:48#詫間,発,17:52#海岸寺,発,17:57#多度津,発,18:02#讃岐塩屋,発,18:05#丸亀,発,18:08#宇多津,発,18:11#坂出,発,18:16#鴨川,発,18:20#国分,発,18:25#端岡,発,18:28#鬼無,発,18:31#高松,着,18:37#",
"150M":"観音寺,発,18:18#本山,発,18:24#比地大,発,18:28#高瀬,発,18:36#みの,発,18:39#詫間,発,18:42#海岸寺,発,18:47#多度津,発,19:02#讃岐塩屋,発,19:06#丸亀,発,19:09#宇多津,発,19:12#坂出,発,19:17#端岡,発,19:27#高松,着,19:35#",
"152M":"多度津,発,19:14#讃岐塩屋,発,19:17#丸亀,発,19:20#宇多津,発,19:23#坂出,発,19:27#八十場,発,19:31#鴨川,発,19:33#讃岐府中,発,19:36#国分,発,19:39#端岡,発,19:42#鬼無,発,19:46#香西,発,19:49#高松,着,19:53#",
"154M":"多度津,発,20:54#讃岐塩屋,発,20:58#丸亀,発,21:01#宇多津,発,21:04#坂出,発,21:09#八十場,発,21:13#鴨川,発,21:16#讃岐府中,発,21:19#国分,発,21:22#端岡,発,21:25#鬼無,発,21:29#香西,発,21:32#高松,着,21:36#",
"156M":"観音寺,発,20:48#本山,発,20:53#比地大,発,20:55#高瀬,発,20:59#みの,発,21:02#詫間,発,21:05#海岸寺,発,21:11#多度津,発,21:18#讃岐塩屋,発,21:22#丸亀,発,21:24#宇多津,発,21:28#坂出,発,21:33#鴨川,発,21:37#国分,発,21:42#端岡,発,21:45#鬼無,発,21:49#高松,着,21:55#",
"158M":"多度津,発,22:48#讃岐塩屋,発,22:52#丸亀,発,22:54#宇多津,発,22:57#坂出,発,23:02#八十場,発,23:05#鴨川,発,23:08#讃岐府中,発,23:11#国分,発,23:14#端岡,発,23:17#鬼無,発,23:21#香西,発,23:24#高松,着,23:28#",
"510M":"今治,発,5:50#伊予富田,発,5:54#伊予桜井,発,5:58#伊予三芳,発,6:06#壬生川,発,6:11#玉之江,発,6:14#伊予小松,発,6:18#伊予氷見,発,6:20#石鎚山,発,6:24#伊予西条,発,6:30#中萩,発,6:39#新居浜,着,6:43#",
"514M":"松山,発,5:53#三津浜,発,5:58#伊予和気,発,6:03#堀江,発,6:06#光洋台,発,6:10#粟井,発,6:13#柳原,発,6:15#伊予北条,発,6:19#大浦,発,6:30#浅海,発,6:34#菊間,発,6:39#伊予亀岡,発,6:54#大西,発,6:59#波方,発,7:06#波止浜,発,7:10#今治,発,7:20#伊予富田,発,7:24#伊予桜井,発,7:28#伊予三芳,発,7:35#壬生川,発,7:42#玉之江,発,7:45#伊予小松,発,7:49#伊予氷見,発,7:51#石鎚山,発,7:54#伊予西条,発,8:01#中萩,発,8:07#新居浜,発,8:12#多喜浜,発,8:16#関川,発,8:23#伊予土居,発,8:28#赤星,発,8:31#伊予寒川,発,8:35#伊予三島,発,8:48#川之江,発,8:53#箕浦,発,8:59#豊浜,発,9:04#観音寺,着,9:08#",
"520M":"松山,発,7:48#三津浜,発,7:54#伊予和気,発,8:02#堀江,発,8:05#光洋台,発,8:08#粟井,発,8:11#柳原,発,8:13#伊予北条,着,8:16#",
"550M":"伊予西条,発,18:24#中萩,発,18:30#新居浜,発,18:47#多喜浜,発,18:51#関川,発,18:59#伊予土居,発,19:05#赤星,発,19:09#伊予寒川,発,19:13#伊予三島,発,19:17#川之江,発,19:24#箕浦,発,19:30#豊浜,発,19:35#観音寺,着,19:40#",
"558M":"松山,発,19:07#三津浜,発,19:12#伊予和気,発,19:19#堀江,発,19:22#光洋台,発,19:25#粟井,発,19:28#柳原,発,19:31#伊予北条,発,19:51#大浦,発,19:56#浅海,発,20:00#菊間,発,20:08#伊予亀岡,発,20:13#大西,発,20:22#波方,発,20:27#波止浜,発,20:30#今治,発,20:40#伊予富田,発,20:44#伊予桜井,発,20:51#伊予三芳,発,20:59#壬生川,発,21:03#玉之江,発,21:06#伊予小松,発,21:10#伊予氷見,発,21:13#石鎚山,発,21:16#伊予西条,着,21:20#",
"560M":"松山,発,20:29#三津浜,発,20:33#伊予和気,発,20:37#堀江,発,20:47#光洋台,発,20:50#粟井,発,20:53#柳原,発,20:56#伊予北条,発,20:59#大浦,発,21:02#浅海,発,21:06#菊間,発,21:14#伊予亀岡,発,21:18#大西,発,21:24#波方,発,21:28#波止浜,発,21:31#今治,着,21:36#",
"622D":"八幡浜,発,6:02#千丈,発,6:06#伊予平野,発,6:15#西大洲,発,6:18#伊予大洲,発,6:22#新谷,発,6:31#喜多山,発,6:34#五十崎,発,6:39#内子,発,6:42#伊予立川,発,6:49#伊予中山,発,7:07#伊予大平,発,7:14#向井原,発,7:17#伊予市,発,7:22#鳥ノ木,発,7:25#伊予横田,発,7:28#南伊予,発,7:31#北伊予,発,7:34#市坪,発,7:38#松山,着,7:42#",
"628D":"宇和島,発,6:10#北宇和島,発,6:14#高光,発,6:18#伊予吉田,発,6:25#立間,発,6:29#下宇和,発,6:42#卯之町,発,6:49#上宇和,発,6:52#伊予石城,発,7:09#双岩,発,7:19#八幡浜,発,7:28#千丈,発,7:34#伊予平野,発,7:43#西大洲,発,7:47#伊予大洲,発,7:51#新谷,発,7:58#喜多山,発,8:00#五十崎,発,8:05#内子,発,8:08#伊予立川,発,8:16#伊予中山,発,8:28#伊予大平,発,8:35#向井原,発,8:39#伊予市,発,8:45#鳥ノ木,発,8:47#伊予横田,発,8:50#南伊予,発,8:53#北伊予,発,8:56#市坪,発,9:00#松山,着,9:04#",
"912D":"八幡浜,発,5:42#千丈,発,5:46#伊予平野,発,5:55#西大洲,発,5:58#伊予大洲,発,6:02#五郎,発,6:07#春賀,発,6:11#八多喜,発,6:14#伊予白滝,発,6:18#伊予出石,発,6:24#伊予長浜,発,6:29#喜多灘,発,6:36#串,発,6:41#下灘,発,6:45#伊予上灘,発,6:56#高野川,発,7:01#向井原,発,7:09#伊予市,発,7:33#鳥ノ木,発,7:36#伊予横田,発,7:39#南伊予,発,7:42#北伊予,発,7:45#市坪,発,7:50#松山,着,7:54#",
"1004M":"宇多津,発,7:14#坂出,発,7:21#高松,着,7:36#",
"1006M":"宇多津,発,8:26#坂出,発,8:31#高松,着,8:45#",
"1008M":"宇多津,発,9:25#坂出,発,9:32#高松,着,9:47#",
"1010M":"宇多津,発,10:19#坂出,発,10:24#高松,着,10:39#",
"1012M":"宇多津,発,11:33#坂出,発,11:39#高松,着,11:54#",
"1014M":"宇多津,発,12:33#坂出,発,12:39#高松,着,12:54#",
"1016M":"宇多津,発,13:34#坂出,発,13:39#高松,着,13:55#",
"1018M":"宇多津,発,14:34#坂出,発,14:39#高松,着,14:56#",
"1020M":"宇多津,発,15:34#坂出,発,15:39#高松,着,15:56#",
"1022M":"宇多津,発,16:34#坂出,発,16:39#高松,着,16:54#",
"1024M":"宇多津,発,17:35#坂出,発,17:41#高松,着,17:57#",
"1026M":"宇多津,発,18:36#坂出,発,18:41#高松,着,18:56#",
"1028M":"宇多津,発,19:38#坂出,発,19:43#高松,着,19:58#",
"1030M":"宇多津,発,20:52#坂出,発,20:57#高松,着,21:11#",
"1042M":"松山,発,19:32#伊予北条,発,19:44#今治,発,20:09#壬生川,発,20:23#伊予西条,発,20:33#新居浜,発,20:41#伊予三島,発,20:57#川之江,発,21:02#観音寺,発,21:12#高瀬,発,21:20#詫間,発,21:24#多度津,発,21:32#丸亀,発,21:36#坂出,発,21:42#高松,着,21:58#",
"1044M":"松山,発,20:38#伊予北条,発,20:50#今治,発,21:14#壬生川,発,21:27#伊予西条,発,21:36#新居浜,発,21:44#伊予三島,発,22:01#川之江,発,22:06#観音寺,発,22:16#多度津,発,22:32#丸亀,発,22:36#坂出,発,22:42#高松,着,22:56#",
"1046M":"松山,発,21:49#伊予北条,発,22:02#今治,発,22:30#壬生川,発,22:45#伊予西条,発,22:54#新居浜,着,23:02#",
"1052D":"宇和島,発,5:24#伊予吉田,発,5:32#卯之町,発,5:44#八幡浜,発,5:57#伊予大洲,発,6:10#内子,発,6:23#伊予中山,発,6:31#伊予市,発,6:41#松山,着,6:55#",
"1054D":"宇和島,発,6:37#伊予吉田,発,6:46#卯之町,発,6:58#八幡浜,発,7:11#伊予大洲,発,7:24#内子,発,7:34#伊予中山,発,7:43#伊予市,発,7:56#松山,着,8:04#",
"1056D":"宇和島,発,7:37#伊予吉田,発,7:46#卯之町,発,7:59#八幡浜,発,8:12#伊予大洲,発,8:25#内子,発,8:36#伊予中山,発,8:46#伊予市,発,8:57#松山,着,9:06#",
"1058D":"宇和島,発,8:47#伊予吉田,発,8:57#卯之町,発,9:11#八幡浜,発,9:26#伊予大洲,発,9:42#内子,発,9:53#伊予市,発,10:10#松山,着,10:18#",
"1060D":"宇和島,発,9:46#伊予吉田,発,9:55#卯之町,発,10:09#八幡浜,発,10:22#伊予大洲,発,10:35#内子,発,10:46#伊予市,発,11:10#松山,着,11:19#",
"1062D":"宇和島,発,10:46#伊予吉田,発,10:55#卯之町,発,11:07#八幡浜,発,11:20#伊予大洲,発,11:34#内子,発,11:46#伊予市,発,12:10#松山,着,12:19#",
"1064D":"宇和島,発,11:46#伊予吉田,発,11:55#卯之町,発,12:07#八幡浜,発,12:20#伊予大洲,発,12:34#内子,発,12:46#伊予市,発,13:10#松山,着,13:19#",
"1066D":"宇和島,発,12:46#伊予吉田,発,12:55#卯之町,発,13:07#八幡浜,発,13:20#伊予大洲,発,13:34#内子,発,13:46#伊予市,発,14:10#松山,着,14:19#",
"1068D":"宇和島,発,13:46#伊予吉田,発,13:55#卯之町,発,14:07#八幡浜,発,14:20#伊予大洲,発,14:34#内子,発,14:46#伊予市,発,15:10#松山,着,15:19#",
"1070D":"宇和島,発,14:46#伊予吉田,発,14:55#卯之町,発,15:07#八幡浜,発,15:20#伊予大洲,発,15:34#内子,発,15:46#伊予市,発,16:10#松山,着,16:19#",
"1072D":"宇和島,発,15:46#伊予吉田,発,15:55#卯之町,発,16:07#八幡浜,発,16:20#伊予大洲,発,16:34#内子,発,16:46#伊予市,発,17:08#松山,着,17:17#",
"1074D":"宇和島,発,16:46#伊予吉田,発,16:55#卯之町,発,17:07#八幡浜,発,17:20#伊予大洲,発,17:34#内子,発,17:46#伊予市,発,18:10#松山,着,18:18#",
"1076D":"宇和島,発,17:46#伊予吉田,発,17:55#卯之町,発,18:07#八幡浜,発,18:20#伊予大洲,発,18:34#内子,発,18:46#伊予市,発,19:08#松山,着,19:17#",
"1078D":"宇和島,発,18:46#伊予吉田,発,18:55#卯之町,発,19:07#八幡浜,発,19:20#伊予大洲,発,19:34#内子,発,19:46#伊予市,発,20:09#松山,着,20:18#",
"1080D":"宇和島,発,19:46#伊予吉田,発,19:55#卯之町,発,20:07#八幡浜,発,20:20#伊予大洲,発,20:34#内子,発,20:46#伊予市,発,21:10#松山,着,21:19#",
"1082D":"宇和島,発,21:25#伊予吉田,発,21:33#卯之町,発,21:45#八幡浜,発,21:58#伊予大洲,発,22:11#内子,発,22:20#伊予市,発,22:39#松山,着,22:47#",
"1092M":"伊予西条,発,6:43#新居浜,発,6:52#伊予三島,発,7:09#川之江,発,7:14#観音寺,発,7:24#高瀬,発,7:31#詫間,発,7:36#多度津,発,7:45#丸亀,発,7:50#宇多津,発,7:53#坂出,発,7:57#高松,着,8:11#",
"1602M":"観音寺,発,8:36#本山,発,8:40#比地大,発,8:43#高瀬,発,8:49#みの,発,8:52#詫間,発,8:56#海岸寺,発,9:01#多度津,着,9:04#",
"1606M":"観音寺,発,19:17#本山,発,19:21#比地大,発,19:25#高瀬,発,19:29#みの,発,19:32#詫間,発,19:37#海岸寺,発,19:46#多度津,着,19:49#",
"3648D":"宇和島,発,18:11#北宇和島,発,18:15#高光,発,18:19#伊予吉田,発,18:25#立間,発,18:29#下宇和,発,18:45#卯之町,発,18:55#上宇和,発,18:58#伊予石城,発,19:03#双岩,発,19:18#八幡浜,着,19:24#",
"3656D":"宇和島,発,20:18#北宇和島,発,20:21#高光,発,20:25#伊予吉田,発,20:31#立間,発,20:35#下宇和,発,20:48#卯之町,発,20:52#上宇和,発,20:55#伊予石城,発,21:00#双岩,発,21:08#八幡浜,発,21:26#千丈,発,21:30#伊予平野,発,21:39#西大洲,発,21:42#伊予大洲,着,21:45#",
"4106M":"観音寺,発,6:00#本山,発,6:04#比地大,発,6:07#高瀬,発,6:12#みの,発,6:16#詫間,発,6:19#海岸寺,発,6:29#多度津,着,6:33#",
"4126M":"伊予西条,発,9:47#中萩,発,9:54#新居浜,発,10:02#多喜浜,発,10:08#関川,発,10:16#伊予土居,発,10:20#赤星,発,10:24#伊予寒川,発,10:28#伊予三島,発,10:33#川之江,発,10:41#箕浦,発,10:47#豊浜,発,10:52#観音寺,着,10:56#",
"4132M":"観音寺,発,13:18#本山,発,13:23#比地大,発,13:26#高瀬,発,13:32#みの,発,13:36#詫間,発,13:40#海岸寺,発,13:45#多度津,着,13:49#",
"4152M":"観音寺,発,18:42#本山,発,18:46#比地大,発,18:49#高瀬,発,18:53#みの,発,18:56#詫間,発,19:01#海岸寺,発,19:06#多度津,着,19:10#",
"4158M":"伊予西条,発,20:45#中萩,発,20:54#新居浜,発,20:59#多喜浜,発,21:04#関川,発,21:16#伊予土居,発,21:20#赤星,発,21:23#伊予寒川,発,21:27#伊予三島,発,21:31#川之江,発,21:35#箕浦,発,21:43#豊浜,発,21:47#観音寺,発,21:54#本山,発,21:59#比地大,発,22:01#高瀬,発,22:05#みの,発,22:08#詫間,発,22:11#海岸寺,発,22:16#多度津,着,22:20#",
"4160M":"伊予西条,発,21:56#中萩,発,22:02#新居浜,発,22:06#多喜浜,発,22:10#関川,発,22:20#伊予土居,発,22:25#赤星,発,22:28#伊予寒川,発,22:32#伊予三島,発,22:36#川之江,発,22:41#箕浦,発,22:46#豊浜,発,22:51#観音寺,発,23:03#本山,発,23:09#比地大,発,23:13#高瀬,発,23:17#みの,発,23:21#詫間,発,23:25#海岸寺,発,23:30#多度津,着,23:34#",
"4520M":"伊予北条,発,8:26#大浦,発,8:30#浅海,発,8:34#菊間,発,8:40#伊予亀岡,発,8:45#大西,発,8:50#波方,発,8:55#波止浜,発,8:58#今治,発,9:03#伊予富田,発,9:07#伊予桜井,発,9:11#伊予三芳,発,9:21#壬生川,発,9:25#玉之江,発,9:28#伊予小松,発,9:32#伊予氷見,発,9:34#石鎚山,発,9:37#伊予西条,着,9:41#",
"4522M":"松山,発,8:40#三津浜,発,8:47#伊予和気,発,8:51#堀江,発,8:54#光洋台,発,8:58#粟井,発,9:01#柳原,発,9:04#伊予北条,発,9:07#大浦,発,9:11#浅海,発,9:15#菊間,発,9:21#伊予亀岡,発,9:26#大西,発,9:40#波方,発,9:44#波止浜,発,9:56#今治,発,10:06#伊予富田,発,10:10#伊予桜井,発,10:14#伊予三芳,発,10:22#壬生川,発,10:28#玉之江,発,10:31#伊予小松,発,10:35#伊予氷見,発,10:37#石鎚山,発,10:41#伊予西条,着,10:45#",
"4524M":"伊予西条,発,10:35#中萩,発,10:42#新居浜,発,10:49#多喜浜,発,11:00#関川,発,11:08#伊予土居,発,11:12#赤星,発,11:15#伊予寒川,発,11:19#伊予三島,発,11:29#川之江,発,11:35#箕浦,発,11:49#豊浜,発,11:54#観音寺,着,11:59#",
"4526M":"松山,発,9:36#三津浜,発,9:41#伊予和気,発,9:45#堀江,発,9:48#光洋台,発,9:52#粟井,発,9:57#柳原,発,9:59#伊予北条,発,10:04#大浦,発,10:08#浅海,発,10:12#菊間,発,10:17#伊予亀岡,発,10:25#大西,発,10:31#波方,発,10:36#波止浜,発,10:45#今治,発,11:02#伊予富田,発,11:06#伊予桜井,発,11:11#伊予三芳,発,11:26#壬生川,発,11:30#玉之江,発,11:33#伊予小松,発,11:36#伊予氷見,発,11:39#石鎚山,発,11:42#伊予西条,発,11:49#中萩,発,11:55#新居浜,発,11:59#多喜浜,発,12:06#関川,発,12:13#伊予土居,発,12:17#赤星,発,12:20#伊予寒川,発,12:25#伊予三島,発,12:31#川之江,発,12:36#箕浦,発,12:50#豊浜,発,12:54#観音寺,着,12:59#",
"4528M":"伊予西条,発,12:38#中萩,発,12:47#新居浜,発,13:01#多喜浜,発,13:07#関川,発,13:14#伊予土居,発,13:19#赤星,発,13:22#伊予寒川,発,13:27#伊予三島,発,13:31#川之江,発,13:37#箕浦,発,13:50#豊浜,発,13:55#観音寺,着,14:00#",
"4532M":"伊予西条,発,13:20#中萩,発,13:33#新居浜,発,13:42#多喜浜,発,13:46#関川,発,13:53#伊予土居,発,14:00#赤星,発,14:03#伊予寒川,発,14:08#伊予三島,発,14:12#川之江,発,14:17#箕浦,発,14:22#豊浜,発,14:27#観音寺,着,14:31#",
"4534M":"松山,発,11:58#三津浜,発,12:12#伊予和気,発,12:16#堀江,発,12:20#光洋台,発,12:23#粟井,発,12:32#柳原,発,12:35#伊予北条,発,12:38#大浦,発,12:42#浅海,発,12:46#菊間,発,12:57#伊予亀岡,発,13:01#大西,発,13:07#波方,発,13:14#波止浜,発,13:17#今治,発,13:25#伊予富田,発,13:29#伊予桜井,発,13:35#伊予三芳,発,13:43#壬生川,発,13:47#玉之江,発,13:50#伊予小松,発,13:55#伊予氷見,発,13:57#石鎚山,発,14:04#伊予西条,着,14:08#",
"4536M":"伊予西条,発,14:20#中萩,発,14:34#新居浜,発,14:42#多喜浜,発,14:46#関川,発,14:53#伊予土居,発,15:00#赤星,発,15:04#伊予寒川,発,15:08#伊予三島,発,15:12#川之江,発,15:17#箕浦,発,15:23#豊浜,発,15:29#観音寺,着,15:33#",
"4538M":"松山,発,12:58#三津浜,発,13:03#伊予和気,発,13:14#堀江,発,13:17#光洋台,発,13:20#粟井,発,13:23#柳原,発,13:26#伊予北条,発,13:29#大浦,発,13:34#浅海,発,13:38#菊間,発,13:55#伊予亀岡,発,13:59#大西,発,14:06#波方,発,14:14#波止浜,発,14:17#今治,発,14:25#伊予富田,発,14:29#伊予桜井,発,14:39#伊予三芳,発,14:47#壬生川,発,14:51#玉之江,発,14:54#伊予小松,発,14:58#伊予氷見,発,15:01#石鎚山,発,15:05#伊予西条,発,15:30#中萩,発,15:37#新居浜,発,15:41#多喜浜,発,15:45#関川,発,15:53#伊予土居,発,16:00#赤星,発,16:04#伊予寒川,発,16:07#伊予三島,発,16:14#川之江,発,16:19#箕浦,発,16:24#豊浜,発,16:29#観音寺,着,16:33#",
"4540M":"松山,発,13:29#三津浜,発,13:33#伊予和気,発,13:37#堀江,発,13:40#光洋台,発,13:43#粟井,発,13:46#柳原,発,13:49#伊予北条,着,13:52#",
"4542M":"松山,発,13:58#三津浜,発,14:02#伊予和気,発,14:11#堀江,発,14:14#光洋台,発,14:18#粟井,発,14:21#柳原,発,14:24#伊予北条,発,14:27#大浦,発,14:39#浅海,発,14:43#菊間,発,14:49#伊予亀岡,発,14:56#大西,発,15:02#波方,発,15:13#波止浜,発,15:16#今治,発,15:25#伊予富田,発,15:29#伊予桜井,発,15:36#伊予三芳,発,15:44#壬生川,発,15:48#玉之江,発,15:51#伊予小松,発,15:55#伊予氷見,発,15:58#石鎚山,発,16:04#伊予西条,着,16:08#",
"4562M":"松山,発,21:35#三津浜,発,21:39#伊予和気,発,21:43#堀江,発,21:46#光洋台,発,21:49#粟井,発,21:52#柳原,発,21:55#伊予北条,発,22:05#大浦,発,22:09#浅海,発,22:17#菊間,発,22:22#伊予亀岡,発,22:28#大西,発,22:33#波方,発,22:38#波止浜,発,22:41#今治,発,22:48#伊予富田,発,22:56#伊予桜井,発,23:01#伊予三芳,発,23:08#壬生川,発,23:13#玉之江,発,23:16#伊予小松,発,23:19#伊予氷見,発,23:22#石鎚山,発,23:25#伊予西条,着,23:29#",
"4564M":"松山,発,22:50#三津浜,発,22:55#伊予和気,発,22:59#堀江,発,23:03#光洋台,発,23:06#粟井,発,23:09#柳原,発,23:12#伊予北条,着,23:15#",
"4604M":"観音寺,発,16:46#本山,発,16:51#比地大,発,16:54#高瀬,発,17:00#みの,発,17:04#詫間,発,17:07#海岸寺,発,17:12#多度津,着,17:16#",
"4608M":"観音寺,発,19:52#本山,発,19:57#比地大,発,20:00#高瀬,発,20:05#みの,発,20:08#詫間,発,20:12#海岸寺,発,20:17#多度津,着,20:21#",
"4618D":"伊予市,発,6:11#鳥ノ木,発,6:14#伊予横田,発,6:17#南伊予,発,6:20#北伊予,発,6:23#市坪,発,6:27#松山,着,6:31#",
"4620D":"伊予市,発,6:58#鳥ノ木,発,7:00#伊予横田,発,7:03#南伊予,発,7:06#北伊予,発,7:09#市坪,発,7:12#松山,着,7:16#",
"4624D":"伊予市,発,8:02#鳥ノ木,発,8:05#伊予横田,発,8:08#南伊予,発,8:11#北伊予,発,8:19#市坪,発,8:23#松山,着,8:27#",
"4626D":"伊予市,発,8:20#鳥ノ木,発,8:22#伊予横田,発,8:25#南伊予,発,8:28#北伊予,発,8:31#市坪,発,8:34#松山,着,8:38#",
"4630M":"伊予市,発,9:16#鳥ノ木,発,9:18#伊予横田,発,9:21#南伊予,発,9:23#北伊予,発,9:26#市坪,発,9:30#松山,着,9:33#",
"4632D":"宇和島,発,6:47#北宇和島,発,6:51#高光,発,6:55#伊予吉田,発,7:15#立間,発,7:19#下宇和,発,7:30#卯之町,発,7:37#上宇和,発,7:40#伊予石城,発,7:47#双岩,発,7:54#八幡浜,着,8:00#",
"4634M":"伊予市,発,10:42#鳥ノ木,発,10:44#伊予横田,発,10:47#南伊予,発,10:49#北伊予,発,10:54#市坪,発,10:58#松山,発,11:32#三津浜,発,11:36#伊予和気,発,11:40#堀江,発,11:43#光洋台,発,11:46#粟井,発,11:52#柳原,発,11:54#伊予北条,着,11:57#",
"4636D":"伊予大洲,発,10:14#新谷,発,10:21#喜多山,発,10:23#五十崎,発,10:28#内子,発,10:31#伊予立川,発,10:38#伊予中山,発,10:49#伊予大平,発,10:56#向井原,発,10:59#伊予市,発,11:13#鳥ノ木,発,11:16#伊予横田,発,11:19#南伊予,発,11:21#北伊予,発,11:25#市坪,発,11:33#松山,着,11:38#",
"4638D":"伊予大洲,発,12:14#新谷,発,12:21#喜多山,発,12:23#五十崎,発,12:28#内子,発,12:31#伊予立川,発,12:38#伊予中山,発,12:49#伊予大平,発,12:56#向井原,発,12:59#伊予市,発,13:13#鳥ノ木,発,13:16#伊予横田,発,13:19#南伊予,発,13:21#北伊予,発,13:25#市坪,発,13:33#松山,着,13:37#",
"4640D":"伊予大洲,発,14:14#新谷,発,14:21#喜多山,発,14:23#五十崎,発,14:28#内子,発,14:31#伊予立川,発,14:38#伊予中山,発,14:49#伊予大平,発,14:56#向井原,発,14:59#伊予市,発,15:13#鳥ノ木,発,15:15#伊予横田,発,15:18#南伊予,発,15:21#北伊予,発,15:26#市坪,発,15:33#松山,着,15:37#",
"4642M":"伊予市,発,15:42#鳥ノ木,発,15:45#伊予横田,発,15:47#南伊予,発,15:49#北伊予,発,15:54#市坪,発,15:58#松山,発,16:31#三津浜,発,16:36#伊予和気,発,16:40#堀江,発,16:44#光洋台,発,16:47#粟井,発,17:00#柳原,発,17:02#伊予北条,着,17:05#",
"4644D":"伊予大洲,発,16:14#新谷,発,16:21#喜多山,発,16:23#五十崎,発,16:28#内子,発,16:31#伊予立川,発,16:38#伊予中山,発,16:49#伊予大平,発,16:56#向井原,発,16:59#伊予市,発,17:11#鳥ノ木,発,17:14#伊予横田,発,17:17#南伊予,発,17:19#北伊予,発,17:22#市坪,発,17:26#松山,着,17:30#",
"4646M":"伊予市,発,18:42#鳥ノ木,発,18:45#伊予横田,発,18:47#南伊予,発,18:49#北伊予,発,18:54#市坪,発,18:58#松山,着,19:01#",
"4650D":"伊予大洲,発,18:14#新谷,発,18:21#喜多山,発,18:23#五十崎,発,18:28#内子,発,18:31#伊予立川,発,18:38#伊予中山,発,18:49#伊予大平,発,18:56#向井原,発,18:59#伊予市,発,19:11#鳥ノ木,発,19:14#伊予横田,発,19:17#南伊予,発,19:19#北伊予,発,19:22#市坪,発,19:26#松山,着,19:30#",
"4652M":"伊予市,発,20:47#鳥ノ木,発,20:50#伊予横田,発,20:52#南伊予,発,20:55#北伊予,発,20:58#市坪,発,21:05#松山,着,21:08#",
"4654D":"伊予大洲,発,20:54#新谷,発,21:04#喜多山,発,21:06#五十崎,発,21:11#内子,発,21:16#伊予立川,発,21:23#伊予中山,発,21:32#伊予大平,発,21:39#向井原,発,21:43#伊予市,着,21:46#",
"4658M":"伊予市,発,22:09#鳥ノ木,発,22:12#伊予横田,発,22:14#南伊予,発,22:16#北伊予,発,22:19#市坪,発,22:22#松山,着,22:26#",
"4660D":"伊予市,発,23:25#鳥ノ木,発,23:28#伊予横田,発,23:31#南伊予,発,23:34#北伊予,発,23:37#市坪,発,23:41#松山,着,23:45#",
"4914D":"伊予大洲,発,6:52#五郎,発,6:57#春賀,発,7:00#八多喜,発,7:03#伊予白滝,発,7:07#伊予出石,発,7:12#伊予長浜,発,7:18#喜多灘,発,7:26#串,発,7:31#下灘,発,7:35#伊予上灘,発,7:42#高野川,発,7:47#向井原,発,7:55#伊予市,着,7:59#",
"4916D":"伊予大洲,発,7:57#五郎,発,8:03#春賀,発,8:07#八多喜,発,8:10#伊予白滝,発,8:14#伊予出石,発,8:19#伊予長浜,発,8:31#喜多灘,発,8:38#串,発,8:43#下灘,発,8:48#伊予上灘,発,9:15#高野川,発,9:20#向井原,発,9:28#伊予市,発,9:34#鳥ノ木,発,9:37#伊予横田,発,9:40#南伊予,発,9:42#北伊予,発,9:45#市坪,発,9:49#松山,着,9:53#",
"4918D":"八幡浜,発,9:44#千丈,発,9:53#伊予平野,発,10:03#西大洲,発,10:06#伊予大洲,発,10:29#五郎,発,10:34#春賀,発,10:38#八多喜,発,10:41#伊予白滝,発,10:45#伊予出石,発,10:51#伊予長浜,発,10:56#喜多灘,発,11:03#串,発,11:08#下灘,発,11:12#伊予上灘,発,11:18#高野川,発,11:23#向井原,発,11:31#伊予市,発,11:39#鳥ノ木,発,11:42#伊予横田,発,11:45#南伊予,発,11:49#北伊予,発,11:54#市坪,発,11:58#松山,着,12:02#",
"4920D":"八幡浜,発,11:44#千丈,発,11:50#伊予平野,発,11:59#西大洲,発,12:02#伊予大洲,発,12:23#五郎,発,12:28#春賀,発,12:32#八多喜,発,12:35#伊予白滝,発,12:38#伊予出石,発,12:43#伊予長浜,発,13:09#喜多灘,発,13:16#串,発,13:21#下灘,発,13:25#伊予上灘,発,13:32#高野川,発,13:37#向井原,発,13:44#伊予市,発,14:13#鳥ノ木,発,14:16#伊予横田,発,14:19#南伊予,発,14:21#北伊予,発,14:25#市坪,発,14:33#松山,着,14:37#",
"4922D":"宇和島,発,12:11#北宇和島,発,12:15#高光,発,12:19#伊予吉田,発,12:25#立間,発,12:29#下宇和,発,12:45#卯之町,発,12:56#上宇和,発,12:59#伊予石城,発,13:03#双岩,発,13:18#八幡浜,発,13:44#千丈,発,13:48#伊予平野,発,13:57#西大洲,発,14:00#伊予大洲,発,14:25#五郎,発,14:30#春賀,発,14:34#八多喜,発,14:37#伊予白滝,発,15:01#伊予出石,発,15:06#伊予長浜,発,15:14#喜多灘,発,15:22#串,発,15:27#下灘,発,15:31#伊予上灘,発,15:51#高野川,発,15:55#向井原,発,16:02#伊予市,発,16:13#鳥ノ木,発,16:16#伊予横田,発,16:19#南伊予,発,16:21#北伊予,発,16:25#市坪,発,16:33#松山,着,16:37#",
"4924D":"宇和島,発,14:11#北宇和島,発,14:15#高光,発,14:19#伊予吉田,発,14:25#立間,発,14:29#下宇和,発,14:45#卯之町,発,14:56#上宇和,発,14:59#伊予石城,発,15:03#双岩,発,15:18#八幡浜,発,15:44#千丈,発,15:48#伊予平野,発,15:57#西大洲,発,16:00#伊予大洲,発,16:21#五郎,発,16:27#春賀,発,16:31#八多喜,発,16:34#伊予白滝,発,16:39#伊予出石,発,16:44#伊予長浜,発,16:51#喜多灘,発,16:58#串,発,17:04#下灘,発,17:08#伊予上灘,発,17:15#高野川,発,17:20#向井原,発,17:28#伊予市,発,17:39#鳥ノ木,発,17:42#伊予横田,発,17:45#南伊予,発,17:49#北伊予,発,17:54#市坪,発,17:58#松山,着,18:02#",
"4926D":"宇和島,発,16:11#北宇和島,発,16:15#高光,発,16:19#伊予吉田,発,16:25#立間,発,16:29#下宇和,発,16:45#卯之町,発,17:18#上宇和,発,17:21#伊予石城,発,17:26#双岩,発,17:34#八幡浜,発,17:44#千丈,発,17:48#伊予平野,発,17:57#西大洲,発,18:00#伊予大洲,発,18:17#五郎,発,18:23#春賀,発,18:27#八多喜,発,18:30#伊予白滝,発,18:35#伊予出石,発,18:41#伊予長浜,発,19:20#喜多灘,発,19:27#串,発,19:33#下灘,発,19:38#伊予上灘,発,19:45#高野川,発,19:50#向井原,発,19:58#伊予市,発,20:13#鳥ノ木,発,20:15#伊予横田,発,20:18#南伊予,発,20:21#北伊予,発,20:26#市坪,発,20:32#松山,着,20:36#",
"4928D":"八幡浜,発,20:30#千丈,発,20:34#伊予平野,発,20:43#西大洲,発,20:46#伊予大洲,発,20:58#五郎,発,21:03#春賀,発,21:07#八多喜,発,21:10#伊予白滝,発,21:14#伊予出石,発,21:19#伊予長浜,発,21:24#喜多灘,発,21:31#串,発,21:36#下灘,発,21:40#伊予上灘,発,21:47#高野川,発,21:52#向井原,発,21:59#伊予市,着,22:03#",
"5102M":"多度津,発,5:09#讃岐塩屋,発,5:13#丸亀,発,5:15#宇多津,発,5:19#坂出,発,5:24#八十場,発,5:28#鴨川,発,5:31#讃岐府中,発,5:35#国分,発,5:38#端岡,発,5:41#鬼無,発,5:45#香西,発,5:48#高松,着,5:53#",
"5106M":"多度津,発,6:42#讃岐塩屋,発,6:45#丸亀,発,6:48#宇多津,発,6:52#坂出,発,6:57#八十場,発,7:00#鴨川,発,7:03#讃岐府中,発,7:07#国分,発,7:10#端岡,発,7:13#鬼無,発,7:17#香西,発,7:20#高松,着,7:24#",
"5118M":"新居浜,発,7:01#多喜浜,発,7:05#関川,発,7:15#伊予土居,発,7:22#赤星,発,7:25#伊予寒川,発,7:30#伊予三島,発,7:42#川之江,発,7:47#箕浦,発,7:53#豊浜,発,7:59#観音寺,発,8:07#本山,発,8:12#比地大,発,8:15#高瀬,発,8:21#みの,発,8:25#詫間,発,8:28#海岸寺,発,8:35#多度津,発,8:54#讃岐塩屋,発,8:57#丸亀,発,9:00#宇多津,発,9:04#坂出,発,9:09#端岡,発,9:18#高松,着,9:26#",
"5120M":"観音寺,発,9:18#本山,発,9:23#比地大,発,9:26#高瀬,発,9:32#みの,発,9:36#詫間,発,9:39#海岸寺,発,9:45#多度津,発,9:50#讃岐塩屋,発,9:54#丸亀,発,9:57#宇多津,発,10:01#坂出,発,10:06#端岡,発,10:15#高松,着,10:23#",
"5122M":"多度津,発,10:02#讃岐塩屋,発,10:05#丸亀,発,10:08#宇多津,発,10:12#坂出,発,10:17#八十場,発,10:20#鴨川,発,10:30#讃岐府中,発,10:33#国分,発,10:36#端岡,発,10:45#鬼無,発,10:49#香西,発,10:53#高松,着,10:57#",
"5124M":"伊予西条,発,8:48#中萩,発,8:54#新居浜,発,9:01#多喜浜,発,9:05#関川,発,9:12#伊予土居,発,9:17#赤星,発,9:20#伊予寒川,発,9:25#伊予三島,発,9:41#川之江,発,9:49#箕浦,発,9:55#豊浜,発,9:59#観音寺,発,10:21#本山,発,10:27#比地大,発,10:31#高瀬,発,10:34#みの,発,10:38#詫間,発,10:41#海岸寺,発,10:47#多度津,発,11:02#讃岐塩屋,発,11:06#丸亀,発,11:09#宇多津,発,11:12#坂出,発,11:17#端岡,発,11:27#高松,着,11:35#",
"5126M":"観音寺,発,11:16#本山,発,11:21#比地大,発,11:24#高瀬,発,11:31#みの,発,11:35#詫間,発,11:38#海岸寺,発,11:44#多度津,発,12:02#讃岐塩屋,発,12:05#丸亀,発,12:08#宇多津,発,12:12#坂出,発,12:17#端岡,発,12:26#高松,着,12:34#",
"5138M":"観音寺,発,14:38#本山,発,14:43#比地大,発,14:46#高瀬,発,14:50#みの,発,14:54#詫間,発,14:57#海岸寺,発,15:03#多度津,発,15:08#讃岐塩屋,発,15:12#丸亀,発,15:15#宇多津,発,15:19#坂出,発,15:24#八十場,発,15:28#鴨川,発,15:31#讃岐府中,発,15:34#国分,発,15:37#端岡,発,15:40#鬼無,発,15:44#香西,発,15:47#高松,着,15:51#",
"5148M":"多度津,発,18:38#讃岐塩屋,発,18:42#丸亀,発,18:45#宇多津,発,18:49#坂出,発,18:55#八十場,発,18:58#鴨川,発,19:01#讃岐府中,発,19:04#国分,発,19:08#端岡,発,19:11#鬼無,発,19:15#香西,発,19:18#高松,着,19:22#",
"5512M":"伊予西条,発,7:20#中萩,発,7:28#新居浜,発,7:33#多喜浜,発,7:38#関川,発,7:46#伊予土居,発,7:51#赤星,発,7:54#伊予寒川,発,7:59#伊予三島,発,8:04#川之江,発,8:10#箕浦,発,8:15#豊浜,発,8:20#観音寺,着,8:24#",
"5516M":"松山,発,6:32#三津浜,発,6:37#伊予和気,発,6:41#堀江,発,6:44#光洋台,発,6:48#粟井,発,7:00#柳原,発,7:03#伊予北条,発,7:14#大浦,発,7:18#浅海,発,7:25#菊間,発,7:32#伊予亀岡,発,7:38#大西,発,7:50#波方,発,7:55#波止浜,発,8:01#今治,発,8:06#伊予富田,発,8:10#伊予桜井,発,8:14#伊予三芳,発,8:22#壬生川,発,8:26#玉之江,発,8:30#伊予小松,発,8:34#伊予氷見,発,8:36#石鎚山,発,8:40#伊予西条,着,8:44#",
"5518M":"松山,発,7:23#三津浜,発,7:27#伊予和気,発,7:31#堀江,発,7:35#光洋台,発,7:39#粟井,発,7:52#柳原,発,7:55#伊予北条,発,7:58#大浦,発,8:03#浅海,発,8:07#菊間,発,8:14#伊予亀岡,発,8:19#大西,発,8:25#波方,発,8:30#波止浜,発,8:33#今治,着,8:38#",
"5530M":"松山,発,10:58#三津浜,発,11:03#伊予和気,発,11:13#堀江,発,11:16#光洋台,発,11:20#粟井,発,11:23#柳原,発,11:26#伊予北条,発,11:42#大浦,発,11:47#浅海,発,11:55#菊間,発,12:00#伊予亀岡,発,12:05#大西,発,12:11#波方,発,12:16#波止浜,発,12:19#今治,発,12:25#伊予富田,発,12:30#伊予桜井,発,12:37#伊予三芳,発,12:45#壬生川,発,12:49#玉之江,発,12:52#伊予小松,発,12:56#伊予氷見,発,12:59#石鎚山,発,13:03#伊予西条,着,13:07#",
"5544M":"伊予西条,発,16:34#中萩,発,16:41#新居浜,発,16:48#多喜浜,発,16:52#関川,発,17:04#伊予土居,発,17:09#赤星,発,17:12#伊予寒川,発,17:19#伊予三島,発,17:24#川之江,発,17:30#箕浦,発,17:36#豊浜,発,17:50#観音寺,着,17:55#",
"5546M":"松山,発,14:58#三津浜,発,15:03#伊予和気,発,15:15#堀江,発,15:18#光洋台,発,15:22#粟井,発,15:25#柳原,発,15:28#伊予北条,発,15:31#大浦,発,15:36#浅海,発,15:40#菊間,発,15:56#伊予亀岡,発,16:01#大西,発,16:07#波方,発,16:15#波止浜,発,16:18#今治,発,16:25#伊予富田,発,16:29#伊予桜井,発,16:40#伊予三芳,発,16:48#壬生川,発,16:52#玉之江,発,16:55#伊予小松,発,16:59#伊予氷見,発,17:02#石鎚山,発,17:05#伊予西条,着,17:09#",
"5548M":"伊予西条,発,17:23#中萩,発,17:36#新居浜,発,17:44#多喜浜,発,17:48#関川,発,17:56#伊予土居,発,18:02#赤星,発,18:06#伊予寒川,発,18:10#伊予三島,発,18:15#川之江,発,18:21#箕浦,発,18:27#豊浜,発,18:32#観音寺,着,18:37#",
"5550M":"松山,発,15:58#三津浜,発,16:03#伊予和気,発,16:14#堀江,発,16:17#光洋台,発,16:21#粟井,発,16:24#柳原,発,16:27#伊予北条,発,16:30#大浦,発,16:35#浅海,発,16:39#菊間,発,16:52#伊予亀岡,発,17:01#大西,発,17:07#波方,発,17:14#波止浜,発,17:17#今治,発,17:25#伊予富田,発,17:29#伊予桜井,発,17:41#伊予三芳,発,17:48#壬生川,発,17:53#玉之江,発,17:56#伊予小松,発,18:00#伊予氷見,発,18:03#石鎚山,発,18:07#伊予西条,着,18:11#",
"5552M":"松山,発,16:58#三津浜,発,17:03#伊予和気,発,17:10#堀江,発,17:17#光洋台,発,17:21#粟井,発,17:24#柳原,発,17:27#伊予北条,発,17:30#大浦,発,17:35#浅海,発,17:39#菊間,発,17:44#伊予亀岡,発,18:04#大西,発,18:10#波方,発,18:15#波止浜,発,18:19#今治,発,18:25#伊予富田,発,18:29#伊予桜井,発,18:42#伊予三芳,発,18:50#壬生川,発,18:54#玉之江,発,18:58#伊予小松,発,19:02#伊予氷見,発,19:05#石鎚山,発,19:08#伊予西条,発,19:23#中萩,発,19:30#新居浜,発,19:37#多喜浜,発,19:41#関川,発,19:48#伊予土居,発,19:53#赤星,発,19:56#伊予寒川,発,20:11#伊予三島,発,20:18#川之江,発,20:23#箕浦,発,20:28#豊浜,発,20:33#観音寺,着,20:38#",
"5554M":"松山,発,17:40#三津浜,発,17:44#伊予和気,発,17:49#堀江,発,17:52#光洋台,発,17:56#粟井,発,18:02#柳原,発,18:05#伊予北条,着,18:08#",
"5556M":"松山,発,18:10#三津浜,発,18:24#伊予和気,発,18:28#堀江,発,18:32#光洋台,発,18:36#粟井,発,18:39#柳原,発,18:42#伊予北条,発,18:55#大浦,発,18:59#浅海,発,19:08#菊間,発,19:14#伊予亀岡,発,19:19#大西,発,19:25#波方,発,19:30#波止浜,発,19:34#今治,発,19:39#伊予富田,発,19:45#伊予桜井,発,19:49#伊予三芳,発,19:57#壬生川,発,20:01#玉之江,発,20:05#伊予小松,発,20:09#伊予氷見,発,20:12#石鎚山,発,20:15#伊予西条,着,20:19#",
"8092D":"伊予大洲,発,10:57#伊予長浜,発,11:30#喜多灘,発,11:42#下灘,発,12:10#伊予上灘,発,12:34#北伊予,発,12:56#松山,着,13:03#",
"8094D":"八幡浜,発,16:27#伊予大洲,発,16:49#伊予長浜,発,17:15#下灘,発,17:40#伊予市,発,18:13#市坪,発,18:25#松山,着,18:30#",
"101M":"多度津,発,5:47#海岸寺,発,5:56#詫間,発,6:02#みの,発,6:05#高瀬,発,6:11#比地大,発,6:14#本山,発,6:18#観音寺,発,6:25#豊浜,発,6:30#箕浦,発,6:43#川之江,発,6:49#伊予三島,発,7:10#伊予寒川,発,7:14#赤星,発,7:18#伊予土居,発,7:22#関川,発,7:30#多喜浜,発,7:38#新居浜,発,7:42#中萩,発,7:48#伊予西条,着,7:53#",
"105M":"高松,発,6:53#香西,発,6:57#鬼無,発,7:00#端岡,発,7:04#国分,発,7:08#讃岐府中,発,7:11#鴨川,発,7:14#八十場,発,7:17#坂出,発,7:26#宇多津,発,7:31#丸亀,発,7:35#讃岐塩屋,発,7:37#多度津,発,7:43#海岸寺,発,7:49#詫間,発,7:55#みの,発,7:58#高瀬,発,8:03#比地大,発,8:06#本山,発,8:12#観音寺,着,8:16#",
"111M":"高松,発,10:13#端岡,発,10:21#坂出,発,10:30#宇多津,発,10:34#丸亀,発,10:38#讃岐塩屋,発,10:40#多度津,発,10:51#海岸寺,発,10:56#詫間,発,11:01#みの,発,11:05#高瀬,発,11:11#比地大,発,11:15#本山,発,11:21#観音寺,着,11:25#",
"115M":"高松,発,11:13#端岡,発,11:21#坂出,発,11:30#宇多津,発,11:34#丸亀,発,11:38#讃岐塩屋,発,11:40#多度津,発,11:54#海岸寺,発,11:59#詫間,発,12:04#みの,発,12:08#高瀬,発,12:13#比地大,発,12:17#本山,発,12:20#観音寺,着,12:24#",
"117M":"高松,発,12:13#端岡,発,12:21#坂出,発,12:30#宇多津,発,12:34#丸亀,発,12:38#讃岐塩屋,発,12:40#多度津,発,12:44#海岸寺,発,12:48#詫間,発,12:54#みの,発,12:58#高瀬,発,13:01#比地大,発,13:05#本山,発,13:11#観音寺,着,13:16#",
"119M":"高松,発,12:52#香西,発,12:56#鬼無,発,13:00#端岡,発,13:04#国分,発,13:07#讃岐府中,発,13:10#鴨川,発,13:13#八十場,発,13:16#坂出,発,13:20#宇多津,発,13:25#丸亀,発,13:28#讃岐塩屋,発,13:30#多度津,着,13:33#",
"121M":"高松,発,13:13#端岡,発,13:21#坂出,発,13:30#宇多津,発,13:34#丸亀,発,13:38#讃岐塩屋,発,13:40#多度津,発,13:53#海岸寺,発,13:57#詫間,発,14:03#みの,発,14:06#高瀬,発,14:14#比地大,発,14:18#本山,発,14:21#観音寺,着,14:25#",
"123M":"高松,発,14:13#端岡,発,14:21#坂出,発,14:30#宇多津,発,14:34#丸亀,発,14:38#讃岐塩屋,発,14:40#多度津,着,14:43#",
"125M":"高松,発,14:52#香西,発,14:56#鬼無,発,15:00#端岡,発,15:04#国分,発,15:07#讃岐府中,発,15:10#鴨川,発,15:13#八十場,発,15:16#坂出,発,15:20#宇多津,発,15:25#丸亀,発,15:28#讃岐塩屋,発,15:30#多度津,発,15:34#海岸寺,発,15:39#詫間,発,15:44#みの,発,15:48#高瀬,発,15:51#比地大,発,15:55#本山,発,15:58#観音寺,着,16:03#",
"127M":"高松,発,15:13#端岡,発,15:21#坂出,発,15:30#宇多津,発,15:34#丸亀,発,15:38#讃岐塩屋,発,15:40#多度津,発,15:54#海岸寺,発,15:59#詫間,発,16:05#みの,発,16:09#高瀬,発,16:23#比地大,発,16:27#本山,発,16:31#観音寺,着,16:35#",
"131M":"高松,発,16:13#端岡,発,16:21#坂出,発,16:30#宇多津,発,16:34#丸亀,発,16:38#讃岐塩屋,発,16:40#多度津,発,16:44#海岸寺,発,16:48#詫間,発,16:54#みの,発,16:57#高瀬,発,17:00#比地大,発,17:04#本山,発,17:14#観音寺,着,17:18#",
"133M":"高松,発,16:52#香西,発,16:56#鬼無,発,17:00#端岡,発,17:04#国分,発,17:07#讃岐府中,発,17:10#鴨川,発,17:13#八十場,発,17:16#坂出,発,17:20#宇多津,発,17:25#丸亀,発,17:28#讃岐塩屋,発,17:30#多度津,発,17:34#海岸寺,発,17:46#詫間,発,17:52#みの,発,17:55#高瀬,発,17:58#比地大,発,18:02#本山,発,18:05#観音寺,着,18:09#",
"137M":"高松,発,17:56#端岡,発,18:05#鴨川,発,18:11#坂出,発,18:15#宇多津,発,18:20#丸亀,発,18:24#讃岐塩屋,発,18:27#多度津,発,18:32#海岸寺,発,18:36#詫間,発,18:42#みの,発,18:46#高瀬,発,18:53#比地大,発,18:57#本山,発,19:00#観音寺,着,19:04#",
"139M":"高松,発,18:13#端岡,発,18:21#鴨川,発,18:27#坂出,発,18:32#宇多津,発,18:37#丸亀,発,18:41#讃岐塩屋,発,18:43#多度津,発,18:52#海岸寺,発,18:56#詫間,発,19:01#みの,発,19:05#高瀬,発,19:08#比地大,発,19:12#本山,発,19:21#観音寺,着,19:25#",
"141M":"高松,発,18:52#香西,発,18:56#鬼無,発,18:59#端岡,発,19:07#国分,発,19:10#讃岐府中,発,19:13#鴨川,発,19:16#八十場,発,19:18#坂出,発,19:27#宇多津,発,19:32#丸亀,発,19:35#讃岐塩屋,発,19:38#多度津,発,19:41#海岸寺,発,19:46#詫間,発,19:51#みの,発,19:54#高瀬,発,20:04#比地大,発,20:08#本山,発,20:12#観音寺,着,20:16#",
"143M":"観音寺,発,20:25#豊浜,発,20:33#箕浦,発,20:38#川之江,発,20:43#伊予三島,発,20:58#伊予寒川,発,21:02#赤星,発,21:06#伊予土居,発,21:20#関川,発,21:25#多喜浜,発,21:33#新居浜,発,21:44#中萩,発,21:49#伊予西条,着,21:55#",
"147M":"高松,発,20:13#端岡,発,20:21#鴨川,発,20:27#坂出,発,20:32#宇多津,発,20:37#丸亀,発,20:40#讃岐塩屋,発,20:42#多度津,発,20:55#海岸寺,発,20:59#詫間,発,21:05#みの,発,21:09#高瀬,発,21:20#比地大,発,21:23#本山,発,21:26#観音寺,着,21:30#",
"149M":"高松,発,20:52#香西,発,20:56#鬼無,発,21:00#端岡,発,21:07#国分,発,21:10#讃岐府中,発,21:14#鴨川,発,21:17#八十場,発,21:20#坂出,発,21:30#宇多津,発,21:35#丸亀,発,21:39#讃岐塩屋,発,21:41#多度津,発,21:48#海岸寺,発,21:57#詫間,発,22:11#みの,発,22:15#高瀬,発,22:23#比地大,発,22:26#本山,発,22:29#観音寺,発,22:34#豊浜,発,22:39#箕浦,発,22:46#川之江,発,22:52#伊予三島,発,23:03#伊予寒川,発,23:12#赤星,発,23:16#伊予土居,発,23:19#関川,発,23:23#多喜浜,発,23:30#新居浜,発,23:35#中萩,発,23:40#伊予西条,着,23:45#",
"151M":"高松,発,21:45#端岡,発,21:53#鴨川,発,21:59#坂出,発,22:04#宇多津,発,22:08#丸亀,発,22:12#讃岐塩屋,発,22:14#多度津,発,22:32#海岸寺,発,22:37#詫間,発,22:43#みの,発,22:46#高瀬,発,22:49#比地大,発,22:53#本山,発,22:56#観音寺,着,23:00#",
"153M":"高松,発,22:34#香西,発,22:38#鬼無,発,22:41#端岡,発,22:45#国分,発,22:48#讃岐府中,発,22:51#鴨川,発,22:54#八十場,発,22:57#坂出,発,23:00#宇多津,発,23:05#丸亀,発,23:08#讃岐塩屋,発,23:11#多度津,発,23:15#海岸寺,発,23:19#詫間,発,23:25#みの,発,23:29#高瀬,発,23:33#比地大,発,23:36#本山,発,23:42#観音寺,着,23:46#",
"155M":"高松,発,23:33#香西,発,23:37#鬼無,発,23:40#端岡,発,23:44#国分,発,23:47#讃岐府中,発,23:50#鴨川,発,23:53#八十場,発,23:56#坂出,発,23:59#宇多津,発,0:05#丸亀,発,0:09#讃岐塩屋,発,0:11#多度津,着,0:14#",
"515M":"伊予西条,発,5:37#石鎚山,発,5:41#伊予氷見,発,5:44#伊予小松,発,5:46#玉之江,発,5:50#壬生川,発,6:01#伊予三芳,発,6:06#伊予桜井,発,6:14#伊予富田,発,6:18#今治,発,6:33#波止浜,発,6:38#波方,発,6:43#大西,発,6:48#伊予亀岡,発,6:54#菊間,発,6:59#浅海,発,7:04#大浦,発,7:08#伊予北条,発,7:12#柳原,発,7:16#粟井,発,7:18#光洋台,発,7:21#堀江,発,7:27#伊予和気,発,7:31#三津浜,発,7:36#松山,着,7:40#",
"517M":"伊予西条,発,6:19#石鎚山,発,6:24#伊予氷見,発,6:27#伊予小松,発,6:29#玉之江,発,6:33#壬生川,発,6:36#伊予三芳,発,6:40#伊予桜井,発,6:47#伊予富田,発,6:53#今治,発,6:58#波止浜,発,7:02#波方,発,7:05#大西,発,7:10#伊予亀岡,発,7:15#菊間,発,7:20#浅海,発,7:25#大浦,発,7:35#伊予北条,発,7:46#柳原,発,7:49#粟井,発,7:51#光洋台,発,7:54#堀江,発,7:58#伊予和気,発,8:01#三津浜,発,8:05#松山,着,8:09#",
"523M":"新居浜,発,6:52#中萩,発,6:57#伊予西条,発,7:15#石鎚山,発,7:19#伊予氷見,発,7:22#伊予小松,発,7:24#玉之江,発,7:28#壬生川,発,7:31#伊予三芳,発,7:35#伊予桜井,発,7:44#伊予富田,発,7:48#今治,発,8:11#波止浜,発,8:16#波方,発,8:19#大西,発,8:25#伊予亀岡,発,8:35#菊間,発,8:40#浅海,発,8:45#大浦,発,8:49#伊予北条,発,8:53#柳原,発,8:57#粟井,発,9:01#光洋台,発,9:04#堀江,発,9:08#伊予和気,発,9:11#三津浜,発,9:19#松山,着,9:23#",
"559M":"伊予西条,発,18:00#石鎚山,発,18:06#伊予氷見,発,18:09#伊予小松,発,18:12#玉之江,発,18:16#壬生川,発,18:26#伊予三芳,発,18:30#伊予桜井,発,18:37#伊予富田,発,18:47#今治,発,19:04#波止浜,発,19:15#波方,発,19:19#大西,発,19:25#伊予亀岡,発,19:31#菊間,発,19:35#浅海,発,19:41#大浦,発,19:47#伊予北条,発,19:52#柳原,発,19:55#粟井,発,19:58#光洋台,発,20:01#堀江,発,20:05#伊予和気,発,20:08#三津浜,発,20:13#松山,着,20:16#",
"561M":"観音寺,発,17:44#豊浜,発,17:50#箕浦,発,17:54#川之江,発,18:00#伊予三島,発,18:06#伊予寒川,発,18:11#赤星,発,18:15#伊予土居,発,18:18#関川,発,18:26#多喜浜,発,18:33#新居浜,発,18:42#中萩,発,18:47#伊予西条,発,19:00#石鎚山,発,19:08#伊予氷見,発,19:11#伊予小松,発,19:14#玉之江,発,19:18#壬生川,発,19:22#伊予三芳,発,19:30#伊予桜井,発,19:49#伊予富田,発,19:54#今治,発,20:08#波止浜,発,20:14#波方,発,20:18#大西,発,20:22#伊予亀岡,発,20:28#菊間,発,20:33#浅海,発,20:38#大浦,発,20:42#伊予北条,発,20:59#柳原,発,21:02#粟井,発,21:04#光洋台,発,21:07#堀江,発,21:13#伊予和気,発,21:16#三津浜,発,21:20#松山,着,21:24#",
"911D":"松山,発,5:51#市坪,発,5:56#北伊予,発,5:59#南伊予,発,6:02#伊予横田,発,6:05#鳥ノ木,発,6:08#伊予市,発,6:18#向井原,発,6:23#高野川,発,6:31#伊予上灘,発,6:52#下灘,発,6:59#串,発,7:03#喜多灘,発,7:08#伊予長浜,発,7:17#伊予出石,発,7:22#伊予白滝,発,7:27#八多喜,発,7:31#春賀,発,7:34#五郎,発,7:38#伊予大洲,発,7:51#西大洲,発,7:55#伊予平野,発,7:58#千丈,発,8:08#八幡浜,発,8:20#双岩,発,8:29#伊予石城,発,8:39#上宇和,発,8:43#卯之町,発,8:46#下宇和,発,8:51#立間,発,9:01#伊予吉田,発,9:05#高光,発,9:12#北宇和島,発,9:16#宇和島,着,9:19#",
"923D":"松山,発,17:45#市坪,発,17:50#北伊予,発,17:54#南伊予,発,17:58#伊予横田,発,18:01#鳥ノ木,発,18:04#伊予市,発,18:11#向井原,発,18:15#高野川,発,18:23#伊予上灘,発,18:28#下灘,発,18:34#串,発,18:39#喜多灘,発,18:44#伊予長浜,発,18:52#伊予出石,発,18:57#伊予白滝,発,19:02#八多喜,発,19:06#春賀,発,19:09#五郎,発,19:13#伊予大洲,発,19:20#西大洲,発,19:23#伊予平野,発,19:29#千丈,発,19:39#八幡浜,着,19:43#",
"925D":"松山,発,19:45#市坪,発,19:50#北伊予,発,19:54#南伊予,発,19:58#伊予横田,発,20:01#鳥ノ木,発,20:04#伊予市,発,20:11#向井原,発,20:15#高野川,発,20:23#伊予上灘,発,20:28#下灘,発,20:34#串,発,20:39#喜多灘,発,20:44#伊予長浜,発,20:52#伊予出石,発,20:57#伊予白滝,発,21:14#八多喜,発,21:18#春賀,発,21:21#五郎,発,21:24#伊予大洲,発,21:30#西大洲,発,21:34#伊予平野,発,21:39#千丈,発,21:48#八幡浜,着,21:52#",
"1001M":"高松,発,7:37#坂出,発,7:51#宇多津,着,7:55#",
"1003M":"高松,発,8:45#坂出,発,9:02#宇多津,着,9:10#",
"1005M":"高松,発,9:42#坂出,発,9:56#宇多津,着,10:03#",
"1007M":"高松,発,10:47#坂出,発,11:04#宇多津,着,11:10#",
"1009M":"高松,発,11:50#坂出,発,12:04#宇多津,着,12:11#",
"1011M":"高松,発,12:50#坂出,発,13:04#宇多津,着,13:11#",
"1013M":"高松,発,13:50#坂出,発,14:04#宇多津,着,14:11#",
"1015M":"高松,発,14:50#坂出,発,15:04#宇多津,着,15:12#",
"1017M":"高松,発,15:50#坂出,発,16:04#宇多津,着,16:12#",
"1019M":"高松,発,16:50#坂出,発,17:04#宇多津,着,17:11#",
"1021M":"高松,発,17:53#坂出,発,18:08#宇多津,発,18:13#丸亀,発,18:17#多度津,着,18:22#",
"1023M":"高松,発,18:59#坂出,発,19:13#宇多津,発,19:17#丸亀,発,19:20#多度津,着,19:26#",
"1025M":"高松,発,19:51#坂出,発,20:07#宇多津,発,20:12#丸亀,発,20:16#多度津,着,20:22#",
"1027M":"高松,発,20:59#坂出,発,21:13#宇多津,発,21:18#丸亀,発,21:22#多度津,着,21:27#",
"1029M":"高松,発,22:20#坂出,発,22:34#宇多津,発,22:39#丸亀,発,22:43#多度津,着,22:48#",
"1041M":"高松,発,5:17#坂出,発,5:30#丸亀,発,5:36#多度津,発,5:41#詫間,発,5:49#高瀬,発,5:53#観音寺,発,6:00#川之江,発,6:10#伊予三島,発,6:15#新居浜,発,6:34#伊予西条,発,6:44#壬生川,発,6:54#今治,発,7:14#伊予北条,発,7:43#松山,着,7:57#",
"1043M":"高松,発,6:00#坂出,発,6:14#宇多津,発,6:18#丸亀,発,6:21#多度津,発,6:26#詫間,発,6:33#高瀬,発,6:38#観音寺,発,6:45#川之江,発,6:56#伊予三島,発,7:01#新居浜,発,7:24#伊予西条,発,7:33#壬生川,発,7:42#今治,発,7:57#伊予北条,発,8:23#松山,着,8:36#",
"1051D":"松山,発,5:48#伊予市,発,5:56#内子,発,6:12#伊予大洲,発,6:22#八幡浜,発,6:36#卯之町,発,6:49#伊予吉田,発,7:04#宇和島,着,7:12#",
"1053D":"松山,発,6:49#伊予市,発,6:58#内子,発,7:14#伊予大洲,発,7:24#八幡浜,発,7:38#卯之町,発,7:50#伊予吉田,発,8:05#宇和島,着,8:14#",
"1055D":"松山,発,8:11#伊予市,発,8:20#内子,発,8:36#伊予大洲,発,8:45#八幡浜,発,8:59#卯之町,発,9:12#伊予吉田,発,9:23#宇和島,着,9:31#",
"1057D":"松山,発,9:07#伊予市,発,9:16#内子,発,9:33#伊予大洲,発,9:43#八幡浜,発,9:57#卯之町,発,10:09#伊予吉田,発,10:21#宇和島,着,10:30#",
"1059D":"松山,発,10:30#伊予市,発,10:39#内子,発,10:58#伊予大洲,発,11:10#八幡浜,発,11:29#卯之町,発,11:41#伊予吉田,発,11:55#宇和島,着,12:03#",
"1061D":"松山,発,11:30#伊予市,発,11:39#内子,発,11:58#伊予大洲,発,12:10#八幡浜,発,12:29#卯之町,発,12:41#伊予吉田,発,12:55#宇和島,着,13:03#",
"1063D":"松山,発,12:30#伊予市,発,12:39#内子,発,12:58#伊予大洲,発,13:10#八幡浜,発,13:29#卯之町,発,13:41#伊予吉田,発,13:55#宇和島,着,14:03#",
"1065D":"松山,発,13:30#伊予市,発,13:39#内子,発,13:58#伊予大洲,発,14:10#八幡浜,発,14:29#卯之町,発,14:41#伊予吉田,発,14:55#宇和島,着,15:03#",
"1067D":"松山,発,14:30#伊予市,発,14:39#内子,発,14:58#伊予大洲,発,15:10#八幡浜,発,15:29#卯之町,発,15:41#伊予吉田,発,15:55#宇和島,着,16:03#",
"1069D":"松山,発,15:30#伊予市,発,15:39#内子,発,15:58#伊予大洲,発,16:10#八幡浜,発,16:29#卯之町,発,16:41#伊予吉田,発,16:55#宇和島,着,17:03#",
"1071D":"松山,発,16:30#伊予市,発,16:39#内子,発,16:58#伊予大洲,発,17:10#八幡浜,発,17:29#卯之町,発,17:41#伊予吉田,発,17:55#宇和島,着,18:03#",
"1073D":"松山,発,17:30#伊予市,発,17:39#伊予中山,発,17:48#内子,発,17:58#伊予大洲,発,18:10#八幡浜,発,18:29#卯之町,発,18:41#伊予吉田,発,18:55#宇和島,着,19:03#",
"1075D":"松山,発,18:30#伊予市,発,18:39#伊予中山,発,18:48#内子,発,18:58#伊予大洲,発,19:10#八幡浜,発,19:29#卯之町,発,19:41#伊予吉田,発,19:55#宇和島,着,20:03#",
"1077D":"松山,発,19:30#伊予市,発,19:39#伊予中山,発,19:48#内子,発,19:58#伊予大洲,発,20:10#八幡浜,発,20:29#卯之町,発,20:41#伊予吉田,発,20:58#宇和島,着,21:06#",
"1079D":"松山,発,20:30#伊予市,発,20:39#内子,発,20:58#伊予大洲,発,21:08#八幡浜,発,21:22#卯之町,発,21:36#伊予吉田,発,21:52#宇和島,着,22:00#",
"1081D":"松山,発,22:00#伊予市,発,22:09#伊予中山,発,22:19#内子,発,22:31#伊予大洲,発,22:40#八幡浜,発,22:54#卯之町,発,23:07#伊予吉田,発,23:18#宇和島,着,23:27#",
"1091M":"新居浜,発,5:54#伊予西条,発,6:03#壬生川,発,6:12#今治,発,6:29#伊予北条,発,6:57#松山,着,7:09#",
"3621D":"八幡浜,発,6:17#双岩,発,6:26#伊予石城,発,6:36#上宇和,発,6:40#卯之町,発,6:58#下宇和,発,7:02#立間,発,7:10#伊予吉田,発,7:15#高光,発,7:23#北宇和島,発,7:30#宇和島,着,7:33#",
"4109M":"多度津,発,9:49#海岸寺,発,9:54#詫間,発,10:03#みの,発,10:06#高瀬,発,10:09#比地大,発,10:13#本山,発,10:16#観音寺,着,10:20#",
"4123M":"多度津,発,14:54#海岸寺,発,15:03#詫間,発,15:18#みの,発,15:21#高瀬,発,15:25#比地大,発,15:28#本山,発,15:31#観音寺,着,15:35#",
"4511M":"伊予北条,発,5:47#柳原,発,5:50#粟井,発,5:53#光洋台,発,5:56#堀江,発,5:59#伊予和気,発,6:03#三津浜,発,6:07#松山,着,6:11#",
"4521M":"伊予北条,発,8:28#柳原,発,8:31#粟井,発,8:33#光洋台,発,8:36#堀江,発,8:40#伊予和気,発,8:43#三津浜,発,8:49#松山,着,8:56#",
"4527M":"今治,発,10:04#波止浜,発,10:09#波方,発,10:13#大西,発,10:18#伊予亀岡,発,10:25#菊間,発,10:30#浅海,発,10:38#大浦,発,10:42#伊予北条,発,10:52#柳原,発,10:55#粟井,発,10:58#光洋台,発,11:01#堀江,発,11:10#伊予和気,発,11:14#三津浜,発,11:18#松山,着,11:23#",
"4529M":"伊予西条,発,10:00#石鎚山,発,10:05#伊予氷見,発,10:08#伊予小松,発,10:14#玉之江,発,10:18#壬生川,発,10:32#伊予三芳,発,10:36#伊予桜井,発,10:44#伊予富田,発,10:49#今治,発,11:04#波止浜,発,11:08#波方,発,11:11#大西,発,11:16#伊予亀岡,発,11:22#菊間,発,11:26#浅海,発,11:31#大浦,発,11:37#伊予北条,発,11:46#柳原,発,11:49#粟井,発,11:52#光洋台,発,11:55#堀江,発,11:59#伊予和気,発,12:08#三津浜,発,12:12#松山,着,12:16#",
"4533M":"伊予北条,発,12:38#柳原,発,12:41#粟井,発,12:44#光洋台,発,12:47#堀江,発,12:51#伊予和気,発,12:54#三津浜,発,13:03#松山,着,13:07#",
"4535M":"伊予西条,発,10:54#石鎚山,発,10:58#伊予氷見,発,11:02#伊予小松,発,11:04#玉之江,発,11:08#壬生川,発,11:12#伊予三芳,発,11:19#伊予桜井,発,11:33#伊予富田,発,11:38#今治,発,12:04#波止浜,発,12:09#波方,発,12:16#大西,発,12:20#伊予亀岡,発,12:26#菊間,発,12:30#浅海,発,12:46#大浦,発,12:50#伊予北条,発,12:54#柳原,発,12:57#粟井,発,12:59#光洋台,発,13:02#堀江,発,13:11#伊予和気,発,13:14#三津浜,発,13:18#松山,着,13:25#",
"4537M":"観音寺,発,10:35#豊浜,発,10:40#箕浦,発,10:47#川之江,発,10:53#伊予三島,発,11:00#伊予寒川,発,11:04#赤星,発,11:08#伊予土居,発,11:12#関川,発,11:16#多喜浜,発,11:24#新居浜,発,11:32#中萩,発,11:37#伊予西条,発,12:00#石鎚山,発,12:05#伊予氷見,発,12:08#伊予小松,発,12:19#玉之江,発,12:23#壬生川,発,12:33#伊予三芳,発,12:45#伊予桜井,発,12:52#伊予富田,発,12:56#今治,発,13:04#波止浜,発,13:10#波方,発,13:14#大西,発,13:18#伊予亀岡,発,13:23#菊間,発,13:28#浅海,発,13:42#大浦,発,13:46#伊予北条,発,13:53#柳原,発,13:56#粟井,発,13:58#光洋台,発,14:01#堀江,発,14:08#伊予和気,発,14:11#三津浜,発,14:16#松山,着,14:21#",
"4539M":"観音寺,発,11:40#豊浜,発,11:45#箕浦,発,11:49#川之江,発,11:56#伊予三島,発,12:04#伊予寒川,発,12:08#赤星,発,12:12#伊予土居,発,12:17#関川,発,12:22#多喜浜,発,12:37#新居浜,発,12:41#中萩,発,12:46#伊予西条,着,12:52#",
"4541M":"伊予西条,発,13:00#石鎚山,発,13:04#伊予氷見,発,13:08#伊予小松,発,13:17#玉之江,発,13:21#壬生川,発,13:32#伊予三芳,発,13:43#伊予桜井,発,13:51#伊予富田,発,13:55#今治,発,14:05#波止浜,発,14:10#波方,発,14:14#大西,発,14:19#伊予亀岡,発,14:25#菊間,発,14:30#浅海,発,14:43#大浦,発,14:47#伊予北条,発,14:54#柳原,発,14:57#粟井,発,15:00#光洋台,発,15:03#堀江,発,15:12#伊予和気,発,15:16#三津浜,発,15:21#松山,着,15:25#",
"4543M":"観音寺,発,12:40#豊浜,発,12:46#箕浦,発,12:50#川之江,発,12:57#伊予三島,発,13:03#伊予寒川,発,13:08#赤星,発,13:12#伊予土居,発,13:18#関川,発,13:23#多喜浜,発,13:37#新居浜,発,13:42#中萩,発,13:47#伊予西条,着,13:53#",
"4547M":"観音寺,発,13:41#豊浜,発,13:46#箕浦,発,13:50#川之江,発,13:58#伊予三島,発,14:03#伊予寒川,発,14:08#赤星,発,14:12#伊予土居,発,14:16#関川,発,14:20#多喜浜,発,14:27#新居浜,発,14:41#中萩,発,14:46#伊予西条,発,15:00#石鎚山,発,15:05#伊予氷見,発,15:09#伊予小松,発,15:18#玉之江,発,15:22#壬生川,発,15:33#伊予三芳,発,15:44#伊予桜井,発,15:52#伊予富田,発,15:56#今治,発,16:06#波止浜,発,16:11#波方,発,16:15#大西,発,16:19#伊予亀岡,発,16:25#菊間,発,16:31#浅海,発,16:45#大浦,発,16:49#伊予北条,発,16:54#柳原,発,16:57#粟井,発,17:00#光洋台,発,17:03#堀江,発,17:07#伊予和気,発,17:10#三津浜,発,17:16#松山,着,17:20#",
"4549M":"観音寺,発,14:41#豊浜,発,14:46#箕浦,発,14:50#川之江,発,14:58#伊予三島,発,15:03#伊予寒川,発,15:08#赤星,発,15:12#伊予土居,発,15:16#関川,発,15:20#多喜浜,発,15:27#新居浜,発,15:41#中萩,発,15:46#伊予西条,発,16:00#石鎚山,発,16:04#伊予氷見,発,16:08#伊予小松,発,16:10#玉之江,発,16:14#壬生川,発,16:19#伊予三芳,発,16:23#伊予桜井,発,16:33#伊予富田,発,16:37#今治,発,17:04#波止浜,発,17:10#波方,発,17:14#大西,発,17:19#伊予亀岡,発,17:25#菊間,発,17:30#浅海,発,17:39#大浦,発,17:43#伊予北条,発,17:55#柳原,発,17:59#粟井,発,18:02#光洋台,発,18:05#堀江,発,18:09#伊予和気,発,18:12#三津浜,発,18:17#松山,着,18:21#",
"4555M":"伊予西条,発,17:00#石鎚山,発,17:05#伊予氷見,発,17:08#伊予小松,発,17:11#玉之江,発,17:15#壬生川,発,17:19#伊予三芳,発,17:23#伊予桜井,発,17:33#伊予富田,発,17:37#今治,発,18:02#波止浜,発,18:10#波方,発,18:15#大西,発,18:21#伊予亀岡,発,18:28#菊間,発,18:33#浅海,発,18:39#大浦,発,18:44#伊予北条,発,18:51#柳原,発,18:55#粟井,発,18:57#光洋台,発,19:00#堀江,発,19:04#伊予和気,発,19:08#三津浜,発,19:15#松山,着,19:19#",
"4563M":"観音寺,発,18:45#豊浜,発,18:51#箕浦,発,18:56#川之江,発,19:03#伊予三島,発,19:08#伊予寒川,発,19:13#赤星,発,19:17#伊予土居,発,19:21#関川,発,19:26#多喜浜,発,19:33#新居浜,発,19:39#中萩,発,19:48#伊予西条,着,19:54#",
"4565M":"観音寺,発,19:53#豊浜,発,19:58#箕浦,発,20:03#川之江,発,20:13#伊予三島,発,20:18#伊予寒川,発,20:22#赤星,発,20:26#伊予土居,発,20:30#関川,発,20:34#多喜浜,発,20:44#新居浜,発,20:49#中萩,発,20:54#伊予西条,発,21:00#石鎚山,発,21:04#伊予氷見,発,21:07#伊予小松,発,21:10#玉之江,発,21:14#壬生川,発,21:17#伊予三芳,発,21:25#伊予桜井,発,21:32#伊予富田,発,21:37#今治,発,21:45#波止浜,発,21:52#波方,発,21:55#大西,発,22:00#伊予亀岡,発,22:17#菊間,発,22:22#浅海,発,22:27#大浦,発,22:31#伊予北条,発,22:35#柳原,発,22:38#粟井,発,22:40#光洋台,発,22:43#堀江,発,22:47#伊予和気,発,22:50#三津浜,発,22:54#松山,着,22:58#",
"4567M":"伊予西条,発,22:00#石鎚山,発,22:04#伊予氷見,発,22:07#伊予小松,発,22:10#玉之江,発,22:14#壬生川,発,22:20#伊予三芳,発,22:24#伊予桜井,発,22:35#伊予富田,発,22:40#今治,着,22:44#",
"4569M":"観音寺,発,21:33#豊浜,発,21:38#箕浦,発,21:43#川之江,発,21:48#伊予三島,発,22:14#伊予寒川,発,22:18#赤星,発,22:22#伊予土居,発,22:25#関川,発,22:30#多喜浜,発,22:37#新居浜,発,22:50#中萩,発,22:59#伊予西条,着,23:05#",
"4571M":"伊予北条,発,23:27#柳原,発,23:31#粟井,発,23:33#光洋台,発,23:36#堀江,発,23:40#伊予和気,発,23:43#三津浜,発,23:47#松山,着,23:54#",
"4623D":"松山,発,5:23#市坪,発,5:28#北伊予,発,5:32#南伊予,発,5:35#伊予横田,発,5:37#鳥ノ木,発,5:40#伊予市,発,5:43#向井原,発,5:47#伊予大平,発,5:51#伊予中山,発,6:08#伊予立川,発,6:15#内子,発,6:23#五十崎,発,6:25#喜多山,発,6:29#新谷,発,6:31#伊予大洲,発,6:51#西大洲,発,6:55#伊予平野,発,6:58#千丈,発,7:07#八幡浜,発,7:12#双岩,発,7:19#伊予石城,発,7:26#上宇和,発,7:30#卯之町,発,7:35#下宇和,発,7:39#立間,発,7:49#伊予吉田,発,7:53#高光,発,7:59#北宇和島,発,8:02#宇和島,着,8:04#",
"4625D":"松山,発,6:13#市坪,発,6:17#北伊予,発,6:23#南伊予,発,6:27#伊予横田,発,6:29#鳥ノ木,発,6:32#伊予市,発,6:41#向井原,発,6:45#伊予大平,発,6:49#伊予中山,発,7:00#伊予立川,発,7:21#内子,発,7:33#五十崎,発,7:36#喜多山,発,7:40#新谷,発,7:42#伊予大洲,着,7:48#",
"4627D":"松山,発,7:31#市坪,発,7:38#北伊予,発,7:45#南伊予,発,7:48#伊予横田,発,7:50#鳥ノ木,発,7:53#伊予市,着,7:55#",
"4629M":"松山,発,8:18#市坪,発,8:23#北伊予,発,8:31#南伊予,発,8:33#伊予横田,発,8:35#鳥ノ木,発,8:38#伊予市,着,8:40#",
"4631D":"松山,発,8:45#市坪,発,8:49#北伊予,発,9:02#南伊予,発,9:04#伊予横田,発,9:07#鳥ノ木,発,9:10#伊予市,発,9:19#向井原,発,9:23#伊予大平,発,9:27#伊予中山,発,9:38#伊予立川,発,9:45#内子,発,9:53#五十崎,発,9:55#喜多山,発,9:59#新谷,発,10:01#伊予大洲,着,10:07#",
"4633M":"松山,発,10:19#市坪,発,10:23#北伊予,発,10:26#南伊予,発,10:28#伊予横田,発,10:30#鳥ノ木,発,10:33#伊予市,着,10:35#",
"4635D":"松山,発,10:45#市坪,発,10:50#北伊予,発,10:54#南伊予,発,10:58#伊予横田,発,11:01#鳥ノ木,発,11:04#伊予市,発,11:11#向井原,発,11:15#伊予大平,発,11:20#伊予中山,発,11:31#伊予立川,発,11:37#内子,発,11:46#五十崎,発,11:49#喜多山,発,11:52#新谷,発,11:55#伊予大洲,着,12:01#",
"4637D":"八幡浜,発,12:34#双岩,発,12:41#伊予石城,発,12:48#上宇和,発,12:52#卯之町,発,12:55#下宇和,発,13:04#立間,発,13:12#伊予吉田,発,13:16#高光,発,13:23#北宇和島,発,13:30#宇和島,着,13:33#",
"4639D":"松山,発,12:45#市坪,発,12:50#北伊予,発,12:56#南伊予,発,12:59#伊予横田,発,13:01#鳥ノ木,発,13:04#伊予市,発,13:11#向井原,発,13:15#伊予大平,発,13:20#伊予中山,発,13:31#伊予立川,発,13:37#内子,発,13:46#五十崎,発,13:49#喜多山,発,13:52#新谷,発,13:55#伊予大洲,着,14:01#",
"4641D":"八幡浜,発,14:34#双岩,発,14:41#伊予石城,発,14:48#上宇和,発,14:52#卯之町,発,14:55#下宇和,発,15:04#立間,発,15:12#伊予吉田,発,15:16#高光,発,15:23#北宇和島,発,15:30#宇和島,着,15:33#",
"4643D":"松山,発,14:45#市坪,発,14:50#北伊予,発,14:54#南伊予,発,14:58#伊予横田,発,15:01#鳥ノ木,発,15:04#伊予市,発,15:11#向井原,発,15:15#伊予大平,発,15:20#伊予中山,発,15:31#伊予立川,発,15:37#内子,発,15:46#五十崎,発,15:49#喜多山,発,15:52#新谷,発,15:55#伊予大洲,着,16:01#",
"4645M":"伊予北条,発,14:35#柳原,発,14:38#粟井,発,14:40#光洋台,発,14:43#堀江,発,14:47#伊予和気,発,14:50#三津浜,発,14:54#松山,発,15:19#市坪,発,15:23#北伊予,発,15:26#南伊予,発,15:29#伊予横田,発,15:31#鳥ノ木,発,15:34#伊予市,着,15:35#",
"4647D":"松山,発,16:45#市坪,発,16:50#北伊予,発,16:54#南伊予,発,16:57#伊予横田,発,16:59#鳥ノ木,発,17:02#伊予市,発,17:11#向井原,発,17:15#伊予大平,発,17:20#伊予中山,発,17:31#伊予立川,発,17:37#内子,発,17:46#五十崎,発,17:49#喜多山,発,17:52#新谷,発,17:55#伊予大洲,着,18:01#",
"4649M":"伊予北条,発,17:30#柳原,発,17:33#粟井,発,17:35#光洋台,発,17:38#堀江,発,17:44#伊予和気,発,17:49#三津浜,発,17:54#松山,発,18:19#市坪,発,18:23#北伊予,発,18:26#南伊予,発,18:28#伊予横田,発,18:31#鳥ノ木,発,18:33#伊予市,着,18:35#",
"4651D":"八幡浜,発,16:55#双岩,発,17:02#伊予石城,発,17:11#上宇和,発,17:15#卯之町,発,17:18#下宇和,発,17:22#立間,発,17:29#伊予吉田,発,17:33#高光,発,17:39#北宇和島,発,17:42#宇和島,着,17:45#",
"4653D":"八幡浜,発,18:34#双岩,発,18:41#伊予石城,発,18:48#上宇和,発,18:52#卯之町,発,18:55#下宇和,発,19:04#立間,発,19:12#伊予吉田,発,19:16#高光,発,19:23#北宇和島,発,19:30#宇和島,着,19:33#",
"4655D":"松山,発,18:45#市坪,発,18:50#北伊予,発,18:54#南伊予,発,18:57#伊予横田,発,18:59#鳥ノ木,発,19:02#伊予市,発,19:11#向井原,発,19:15#伊予大平,発,19:20#伊予中山,発,19:31#伊予立川,発,19:37#内子,発,19:46#五十崎,発,19:49#喜多山,発,19:52#新谷,発,19:55#伊予大洲,着,20:01#",
"4657M":"松山,発,20:19#市坪,発,20:23#北伊予,発,20:26#南伊予,発,20:28#伊予横田,発,20:30#鳥ノ木,発,20:33#伊予市,着,20:35#",
"4659D":"八幡浜,発,21:00#双岩,発,21:08#伊予石城,発,21:15#上宇和,発,21:19#卯之町,発,21:22#下宇和,発,21:26#立間,発,21:37#伊予吉田,発,21:41#高光,発,21:47#北宇和島,発,21:51#宇和島,着,21:54#",
"4661D":"松山,発,20:45#市坪,発,20:50#北伊予,発,20:57#南伊予,発,21:00#伊予横田,発,21:03#鳥ノ木,発,21:06#伊予市,発,21:11#向井原,発,21:15#伊予大平,発,21:19#伊予中山,発,21:32#伊予立川,発,21:38#内子,発,21:45#五十崎,発,21:48#喜多山,発,21:51#新谷,発,21:54#伊予大洲,発,22:11#西大洲,発,22:14#伊予平野,発,22:17#千丈,発,22:27#八幡浜,着,22:33#",
"4663M":"松山,発,21:45#市坪,発,21:48#北伊予,発,21:51#南伊予,発,21:54#伊予横田,発,21:56#鳥ノ木,発,21:59#伊予市,着,22:01#",
"4665D":"松山,発,22:59#市坪,発,23:04#北伊予,発,23:07#南伊予,発,23:10#伊予横田,発,23:13#鳥ノ木,発,23:16#伊予市,着,23:18#",
"4913D":"松山,発,6:56#市坪,発,7:01#北伊予,発,7:09#南伊予,発,7:12#伊予横田,発,7:14#鳥ノ木,発,7:17#伊予市,発,7:23#向井原,発,7:27#高野川,発,7:35#伊予上灘,発,7:43#下灘,発,7:50#串,発,7:55#喜多灘,発,8:00#伊予長浜,発,8:24#伊予出石,発,8:29#伊予白滝,発,8:34#八多喜,発,8:38#春賀,発,8:41#五郎,発,8:45#伊予大洲,発,8:51#西大洲,発,8:55#伊予平野,発,8:58#千丈,発,9:08#八幡浜,着,9:12#",
"4915D":"松山,発,9:45#市坪,発,9:50#北伊予,発,9:54#南伊予,発,9:57#伊予横田,発,10:00#鳥ノ木,発,10:04#伊予市,発,10:11#向井原,発,10:15#高野川,発,10:23#伊予上灘,発,10:28#下灘,発,10:34#串,発,10:39#喜多灘,発,10:44#伊予長浜,発,10:56#伊予出石,発,11:01#伊予白滝,発,11:11#八多喜,発,11:15#春賀,発,11:18#五郎,発,11:21#伊予大洲,発,11:34#西大洲,発,11:38#伊予平野,発,11:41#千丈,発,11:50#八幡浜,着,11:54#",
"4917D":"松山,発,11:45#市坪,発,11:50#北伊予,発,11:54#南伊予,発,11:58#伊予横田,発,12:01#鳥ノ木,発,12:04#伊予市,発,12:11#向井原,発,12:15#高野川,発,12:23#伊予上灘,発,12:28#下灘,発,12:34#串,発,12:39#喜多灘,発,12:44#伊予長浜,発,12:50#伊予出石,発,12:55#伊予白滝,発,13:01#八多喜,発,13:05#春賀,発,13:08#五郎,発,13:12#伊予大洲,発,13:20#西大洲,発,13:24#伊予平野,発,13:29#千丈,発,13:39#八幡浜,着,13:43#",
"4919D":"松山,発,13:45#市坪,発,13:50#北伊予,発,13:54#南伊予,発,13:58#伊予横田,発,14:01#鳥ノ木,発,14:04#伊予市,発,14:25#向井原,発,14:29#高野川,発,14:37#伊予上灘,発,14:52#下灘,発,14:59#串,発,15:03#喜多灘,発,15:08#伊予長浜,発,15:17#伊予出石,発,15:22#伊予白滝,発,15:27#八多喜,発,15:31#春賀,発,15:35#五郎,発,15:39#伊予大洲,発,15:46#西大洲,発,15:50#伊予平野,発,15:58#千丈,発,16:07#八幡浜,着,16:11#",
"4921D":"松山,発,15:45#市坪,発,15:50#北伊予,発,15:54#南伊予,発,15:58#伊予横田,発,16:01#鳥ノ木,発,16:04#伊予市,発,16:11#向井原,発,16:15#高野川,発,16:23#伊予上灘,発,16:28#下灘,発,16:34#串,発,16:39#喜多灘,発,16:44#伊予長浜,発,16:52#伊予出石,発,16:57#伊予白滝,発,17:04#八多喜,発,17:08#春賀,発,17:11#五郎,発,17:15#伊予大洲,発,17:20#西大洲,発,17:24#伊予平野,発,17:29#千丈,発,17:39#八幡浜,着,17:43#",
"4927D":"伊予市,発,22:05#向井原,発,22:09#高野川,発,22:17#伊予上灘,発,22:21#下灘,発,22:28#串,発,22:32#喜多灘,発,22:37#伊予長浜,発,22:43#伊予出石,発,22:48#伊予白滝,発,22:53#八多喜,発,22:57#春賀,発,23:00#五郎,発,23:04#伊予大洲,着,23:09#",
"5101M":"伊予西条,発,8:01#石鎚山,発,8:05#伊予氷見,発,8:08#伊予小松,発,8:13#玉之江,発,8:17#壬生川,発,8:26#伊予三芳,発,8:30#伊予桜井,発,8:38#伊予富田,発,8:43#今治,発,8:51#波止浜,発,8:58#波方,発,9:02#大西,発,9:07#伊予亀岡,発,9:14#菊間,発,9:20#浅海,発,9:26#大浦,発,9:32#伊予北条,発,9:36#柳原,発,9:39#粟井,発,9:42#光洋台,発,9:45#堀江,発,9:49#伊予和気,発,9:52#三津浜,発,9:57#松山,着,10:01#",
"5103M":"多度津,発,7:04#海岸寺,発,7:08#詫間,発,7:16#みの,発,7:19#高瀬,発,7:37#比地大,発,7:41#本山,発,7:44#観音寺,発,7:54#豊浜,発,7:59#箕浦,発,8:04#川之江,発,8:10#伊予三島,発,8:16#伊予寒川,発,8:20#赤星,発,8:24#伊予土居,発,8:28#関川,発,8:35#多喜浜,発,8:42#新居浜,発,8:47#中萩,発,8:54#伊予西条,着,9:00#",
"5107M":"高松,発,7:40#香西,発,7:44#鬼無,発,7:48#端岡,発,7:56#国分,発,7:59#讃岐府中,発,8:02#鴨川,発,8:06#八十場,発,8:09#坂出,発,8:12#宇多津,発,8:18#丸亀,発,8:21#讃岐塩屋,発,8:24#多度津,発,8:31#海岸寺,発,8:36#詫間,発,8:42#みの,発,8:45#高瀬,発,8:49#比地大,発,8:53#本山,発,9:03#観音寺,着,9:06#",
"5109M":"高松,発,9:04#端岡,発,9:12#坂出,発,9:22#宇多津,発,9:27#丸亀,発,9:31#讃岐塩屋,発,9:34#多度津,着,9:37#",
"5113M":"高松,発,10:52#香西,発,10:56#鬼無,発,11:00#端岡,発,11:04#国分,発,11:07#讃岐府中,発,11:10#鴨川,発,11:13#八十場,発,11:16#坂出,発,11:20#宇多津,発,11:26#丸亀,発,11:30#讃岐塩屋,発,11:32#多度津,着,11:35#",
"5129M":"高松,発,15:52#香西,発,15:56#鬼無,発,16:00#端岡,発,16:04#国分,発,16:07#讃岐府中,発,16:10#鴨川,発,16:13#八十場,発,16:16#坂出,発,16:20#宇多津,発,16:25#丸亀,発,16:29#讃岐塩屋,発,16:31#多度津,着,16:34#",
"5135M":"高松,発,17:13#端岡,発,17:21#鴨川,発,17:28#坂出,発,17:32#宇多津,発,17:38#丸亀,発,17:41#讃岐塩屋,発,17:44#多度津,発,17:51#海岸寺,発,17:57#詫間,発,18:03#みの,発,18:07#高瀬,発,18:17#比地大,発,18:21#本山,発,18:24#観音寺,着,18:28#",
"5145M":"高松,発,19:25#香西,発,19:31#鬼無,発,19:34#端岡,発,19:39#国分,発,19:42#讃岐府中,発,19:45#鴨川,発,19:53#八十場,発,19:56#坂出,発,20:00#宇多津,発,20:05#丸亀,発,20:08#讃岐塩屋,発,20:11#多度津,着,20:14#",
"5513M":"今治,発,5:58#波止浜,発,6:04#波方,発,6:08#大西,発,6:12#伊予亀岡,発,6:18#菊間,発,6:23#浅海,発,6:34#大浦,発,6:38#伊予北条,発,6:45#柳原,発,6:48#粟井,発,6:51#光洋台,発,6:54#堀江,発,6:58#伊予和気,発,7:06#三津浜,発,7:11#松山,着,7:15#",
"5519M":"観音寺,発,6:03#豊浜,発,6:08#箕浦,発,6:13#川之江,発,6:19#伊予三島,発,6:30#伊予寒川,発,6:34#赤星,発,6:39#伊予土居,発,6:43#関川,発,6:47#多喜浜,発,6:56#新居浜,発,7:01#中萩,発,7:06#伊予西条,着,7:12#",
"5525M":"観音寺,発,7:07#豊浜,発,7:21#箕浦,発,7:26#川之江,発,7:32#伊予三島,発,7:39#伊予寒川,発,7:43#赤星,発,7:47#伊予土居,発,7:51#関川,発,7:55#多喜浜,発,8:02#新居浜,発,8:15#中萩,発,8:24#伊予西条,着,8:29#",
"5531M":"観音寺,発,9:11#豊浜,発,9:16#箕浦,発,9:21#川之江,発,9:27#伊予三島,発,9:34#伊予寒川,発,9:38#赤星,発,9:42#伊予土居,発,9:46#関川,発,9:50#多喜浜,発,9:57#新居浜,発,10:02#中萩,発,10:07#伊予西条,着,10:12#",
"5545M":"伊予西条,発,14:00#石鎚山,発,14:04#伊予氷見,発,14:08#伊予小松,発,14:10#玉之江,発,14:14#壬生川,発,14:18#伊予三芳,発,14:22#伊予桜井,発,14:33#伊予富田,発,14:43#今治,発,15:04#波止浜,発,15:09#波方,発,15:13#大西,発,15:18#伊予亀岡,発,15:24#菊間,発,15:29#浅海,発,15:44#大浦,発,15:48#伊予北条,発,15:54#柳原,発,15:57#粟井,発,16:00#光洋台,発,16:03#堀江,発,16:11#伊予和気,発,16:15#三津浜,発,16:19#松山,着,16:24#",
"5551M":"伊予北条,発,18:18#柳原,発,18:22#粟井,発,18:25#光洋台,発,18:28#堀江,発,18:32#伊予和気,発,18:36#三津浜,発,18:43#松山,着,18:48#",
"5553M":"観音寺,発,15:49#豊浜,発,15:55#箕浦,発,16:03#川之江,発,16:08#伊予三島,発,16:14#伊予寒川,発,16:18#赤星,発,16:22#伊予土居,発,16:26#関川,発,16:30#多喜浜,発,16:40#新居浜,発,16:46#中萩,発,16:51#伊予西条,着,16:57#",
"5557M":"観音寺,発,16:51#豊浜,発,16:57#箕浦,発,17:03#川之江,発,17:09#伊予三島,発,17:15#伊予寒川,発,17:19#赤星,発,17:23#伊予土居,発,17:27#関川,発,17:31#多喜浜,発,17:40#新居浜,発,17:46#中萩,発,17:51#伊予西条,着,17:56#",
"6107M":"高松,発,7:40#香西,発,7:44#鬼無,発,7:48#端岡,発,7:56#国分,発,7:59#讃岐府中,発,8:02#鴨川,発,8:06#八十場,発,8:09#坂出,発,8:12#宇多津,発,8:21#丸亀,発,8:25#讃岐塩屋,発,8:28#多度津,発,8:31#海岸寺,発,8:36#詫間,発,8:42#みの,発,8:45#高瀬,発,8:49#比地大,発,8:53#本山,発,9:03#観音寺,着,9:06#",
"8091D":"松山,発,8:28#市坪,発,8:34#伊予市,発,8:45#下灘,発,9:25#喜多灘,発,9:42#伊予大洲,着,10:28#",
"8093D":"松山,発,13:38#下灘,発,14:23#喜多灘,発,14:40#伊予大洲,発,15:14#伊予平野,発,15:36#千丈,発,15:51#八幡浜,着,15:56#",
"3102M":"高松,発,4:35#鬼無,発,4:40#端岡,発,4:44#国分,発,4:47#鴨川,発,4:51#坂出,発,4:56#児島,発,5:15#上の町,発,5:18#木見,発,5:22#植松,発,5:25#茶屋町,発,5:28#早島,発,5:32#妹尾,発,5:35#備前西市,発,5:39#大元,発,5:42#岡山,着,5:45#",
"3104M":"高松,発,5:35#坂出,発,5:49#児島,発,6:05#茶屋町,発,6:14#妹尾,発,6:20#大元,発,6:25#岡山,着,6:28#",
"3106M":"高松,発,6:08#坂出,発,6:22#児島,発,6:38#茶屋町,発,6:47#早島,発,6:50#妹尾,発,6:54#大元,発,7:01#岡山,着,7:04#",
"3108M":"高松,発,6:46#坂出,発,7:01#児島,発,7:17#茶屋町,発,7:27#早島,発,7:30#妹尾,発,7:34#備前西市,発,7:39#大元,発,7:43#岡山,着,7:46#",
"3110M":"高松,発,7:08#坂出,発,7:23#児島,発,7:39#上の町,発,7:43#木見,発,7:47#植松,発,7:50#茶屋町,発,7:54#早島,発,7:58#妹尾,発,8:02#備前西市,発,8:08#大元,発,8:12#岡山,着,8:15#",
"3112M":"高松,発,7:48#坂出,発,8:03#児島,発,8:21#茶屋町,発,8:30#早島,発,8:34#妹尾,発,8:38#岡山,着,8:45#",
"3114M":"高松,発,8:22#坂出,発,8:36#児島,発,8:53#茶屋町,発,9:02#早島,発,9:06#妹尾,発,9:10#備前西市,発,9:14#岡山,着,9:19#",
"3116M":"高松,発,8:55#坂出,発,9:09#児島,発,9:25#茶屋町,発,9:33#早島,発,9:36#妹尾,発,9:40#岡山,着,9:47#",
"3118M":"高松,発,9:23#坂出,発,9:38#児島,発,9:54#茶屋町,発,10:03#妹尾,発,10:10#岡山,着,10:17#",
"3120M":"高松,発,9:52#坂出,発,10:07#児島,発,10:23#茶屋町,発,10:33#早島,発,10:37#岡山,着,10:48#",
"3122M":"高松,発,10:10#坂出,発,10:24#児島,発,10:40#茶屋町,発,10:49#妹尾,発,10:56#岡山,着,11:03#",
"3124M":"高松,発,10:40#坂出,発,10:54#児島,発,11:11#茶屋町,発,11:19#早島,発,11:23#岡山,着,11:32#",
"3126M":"高松,発,11:10#坂出,発,11:24#児島,発,11:40#茶屋町,発,11:49#妹尾,発,11:55#岡山,着,12:02#",
"3128M":"高松,発,11:40#坂出,発,11:54#児島,発,12:10#茶屋町,発,12:19#早島,発,12:23#岡山,着,12:32#",
"3130M":"高松,発,12:10#坂出,発,12:24#児島,発,12:40#茶屋町,発,12:49#妹尾,発,12:55#岡山,着,13:02#",
"3132M":"高松,発,12:40#坂出,発,12:54#児島,発,13:10#茶屋町,発,13:19#早島,発,13:23#岡山,着,13:32#",
"3134M":"高松,発,13:10#坂出,発,13:24#児島,発,13:40#茶屋町,発,13:49#妹尾,発,13:55#岡山,着,14:02#",
"3136M":"高松,発,13:40#坂出,発,13:54#児島,発,14:11#茶屋町,発,14:19#早島,発,14:23#岡山,着,14:34#",
"3138M":"高松,発,14:10#坂出,発,14:24#児島,発,14:40#茶屋町,発,14:49#妹尾,発,14:55#岡山,着,15:02#",
"3140M":"高松,発,14:40#坂出,発,14:54#児島,発,15:10#茶屋町,発,15:19#早島,発,15:23#岡山,着,15:32#",
"3142M":"高松,発,15:10#坂出,発,15:24#児島,発,15:40#茶屋町,発,15:49#妹尾,発,15:55#岡山,着,16:03#",
"3144M":"高松,発,15:40#坂出,発,15:54#児島,発,16:10#茶屋町,発,16:19#早島,発,16:23#岡山,着,16:32#",
"3146M":"高松,発,16:10#坂出,発,16:24#児島,発,16:40#茶屋町,発,16:49#妹尾,発,16:55#岡山,着,17:03#",
"3148M":"高松,発,16:40#坂出,発,16:54#児島,発,17:10#茶屋町,発,17:19#早島,発,17:23#岡山,着,17:32#",
"3150M":"高松,発,17:10#坂出,発,17:25#児島,発,17:41#茶屋町,発,17:49#妹尾,発,17:55#岡山,着,18:03#",
"3152M":"高松,発,17:40#坂出,発,17:55#児島,発,18:11#茶屋町,発,18:19#早島,発,18:23#岡山,着,18:32#",
"3154M":"高松,発,18:10#坂出,発,18:24#児島,発,18:40#茶屋町,発,18:49#妹尾,発,18:55#岡山,着,19:02#",
"3156M":"高松,発,18:40#坂出,発,18:55#児島,発,19:11#茶屋町,発,19:19#早島,発,19:23#岡山,着,19:33#",
"3158M":"高松,発,19:10#坂出,発,19:25#児島,発,19:41#茶屋町,発,19:49#妹尾,発,19:55#岡山,着,20:03#",
"3160M":"高松,発,19:40#坂出,発,19:54#児島,発,20:10#茶屋町,発,20:19#早島,発,20:23#岡山,着,20:35#",
"3162M":"高松,発,20:10#坂出,発,20:24#児島,発,20:40#茶屋町,発,20:51#妹尾,発,20:58#岡山,着,21:05#",
"3164M":"高松,発,20:43#坂出,発,20:57#児島,発,21:13#茶屋町,発,21:22#早島,発,21:25#岡山,着,21:36#",
"3166M":"高松,発,21:13#坂出,発,21:27#児島,発,21:44#茶屋町,発,21:52#妹尾,発,21:58#岡山,着,22:05#",
"3168M":"高松,発,21:43#坂出,発,21:57#児島,発,22:14#茶屋町,発,22:22#早島,発,22:26#妹尾,発,22:31#岡山,着,22:38#",
"3170M":"高松,発,22:27#端岡,発,22:35#鴨川,発,22:41#坂出,発,22:45#児島,発,23:01#上の町,発,23:04#木見,発,23:08#植松,発,23:11#茶屋町,発,23:15#早島,発,23:18#妹尾,発,23:21#大元,発,23:26#岡山,着,23:30#",
"5032M":"高松,発,21:26#坂出,発,21:44#児島,発,22:01#岡山,着,22:23#",
"8176D":"高松,発,9:13#端岡,発,9:24#鴨川,発,9:36#坂出,発,9:43#児島,発,10:15#岡山,着,10:44#",
"3101M":"岡山,発,5:27#大元,発,5:30#妹尾,発,5:35#早島,発,5:39#茶屋町,発,5:42#植松,発,5:45#木見,発,5:48#上の町,発,5:52#児島,発,5:57#坂出,発,6:13#高松,着,6:31#",
"3103M":"岡山,発,6:01#妹尾,発,6:08#茶屋町,発,6:14#児島,発,6:24#坂出,発,6:39#高松,着,6:56#",
"3105M":"岡山,発,6:37#妹尾,発,6:46#早島,発,6:49#茶屋町,発,6:53#児島,発,7:02#坂出,発,7:18#高松,着,7:33#",
"3107M":"岡山,発,7:10#大元,発,7:13#妹尾,発,7:19#早島,発,7:23#茶屋町,発,7:26#児島,発,7:35#坂出,発,7:52#高松,着,8:07#",
"3109M":"岡山,発,7:55#妹尾,発,8:03#早島,発,8:07#茶屋町,発,8:10#児島,発,8:19#坂出,発,8:35#高松,着,8:50#",
"3111M":"岡山,発,8:24#妹尾,発,8:31#早島,発,8:35#茶屋町,発,8:39#児島,発,8:48#坂出,発,9:04#高松,着,9:18#",
"3113M":"岡山,発,8:40#妹尾,発,8:53#茶屋町,発,8:59#児島,発,9:09#坂出,発,9:24#高松,着,9:39#",
"3115M":"岡山,発,9:05#早島,発,9:15#茶屋町,発,9:19#児島,発,9:28#坂出,発,9:43#高松,着,9:58#",
"3117M":"岡山,発,9:33#妹尾,発,9:40#茶屋町,発,9:46#児島,発,9:56#坂出,発,10:11#高松,着,10:26#",
"3119M":"岡山,発,9:54#早島,発,10:05#茶屋町,発,10:09#児島,発,10:20#坂出,発,10:36#高松,着,10:51#",
"3121M":"岡山,発,10:23#妹尾,発,10:33#茶屋町,発,10:39#児島,発,10:48#坂出,発,11:03#高松,着,11:18#",
"3123M":"岡山,発,10:53#早島,発,11:06#茶屋町,発,11:09#児島,発,11:19#坂出,発,11:35#高松,着,11:49#",
"3125M":"岡山,発,11:12#妹尾,発,11:20#茶屋町,発,11:26#児島,発,11:36#坂出,発,11:52#高松,着,12:07#",
"3127M":"岡山,発,11:42#早島,発,11:52#茶屋町,発,11:55#児島,発,12:05#坂出,発,12:20#高松,着,12:37#",
"3129M":"岡山,発,12:13#妹尾,発,12:20#茶屋町,発,12:26#児島,発,12:35#坂出,発,12:51#高松,着,13:05#",
"3131M":"岡山,発,12:42#早島,発,12:52#茶屋町,発,12:55#児島,発,13:05#坂出,発,13:20#高松,着,13:36#",
"3133M":"岡山,発,13:13#妹尾,発,13:20#茶屋町,発,13:26#児島,発,13:35#坂出,発,13:51#高松,着,14:05#",
"3135M":"岡山,発,13:42#早島,発,13:52#茶屋町,発,13:55#児島,発,14:05#坂出,発,14:20#高松,着,14:36#",
"3137M":"岡山,発,14:13#妹尾,発,14:20#茶屋町,発,14:26#児島,発,14:35#坂出,発,14:51#高松,着,15:05#",
"3139M":"岡山,発,14:42#早島,発,14:52#茶屋町,発,14:56#児島,発,15:05#坂出,発,15:20#高松,着,15:36#",
"3141M":"岡山,発,15:13#妹尾,発,15:20#茶屋町,発,15:26#児島,発,15:35#坂出,発,15:51#高松,着,16:05#",
"3143M":"岡山,発,15:42#妹尾,発,15:49#早島,発,15:53#茶屋町,発,15:57#児島,発,16:06#坂出,発,16:21#高松,着,16:36#",
"3145M":"岡山,発,16:13#妹尾,発,16:20#茶屋町,発,16:26#児島,発,16:35#坂出,発,16:51#高松,着,17:05#",
"3147M":"岡山,発,16:42#妹尾,発,16:49#早島,発,16:53#茶屋町,発,16:57#児島,発,17:06#坂出,発,17:21#高松,着,17:36#",
"3149M":"岡山,発,17:13#妹尾,発,17:20#茶屋町,発,17:26#児島,発,17:35#坂出,発,17:51#高松,着,18:06#",
"3151M":"岡山,発,17:42#妹尾,発,17:49#早島,発,17:53#茶屋町,発,17:57#児島,発,18:06#坂出,発,18:24#高松,着,18:40#",
"3153M":"岡山,発,18:13#妹尾,発,18:20#茶屋町,発,18:26#児島,発,18:36#坂出,発,18:51#高松,着,19:06#",
"3155M":"岡山,発,18:42#妹尾,発,18:49#早島,発,18:53#茶屋町,発,18:57#児島,発,19:06#坂出,発,19:22#高松,着,19:38#",
"3157M":"岡山,発,19:13#妹尾,発,19:20#早島,発,19:24#茶屋町,発,19:27#児島,発,19:37#坂出,発,19:53#高松,着,20:07#",
"3159M":"岡山,発,19:42#妹尾,発,19:49#早島,発,19:53#茶屋町,発,19:57#児島,発,20:06#坂出,発,20:21#高松,着,20:37#",
"3161M":"岡山,発,20:13#妹尾,発,20:21#茶屋町,発,20:27#児島,発,20:36#坂出,発,20:52#高松,着,21:07#",
"3163M":"岡山,発,20:42#妹尾,発,20:52#早島,発,20:56#茶屋町,発,20:59#児島,発,21:08#坂出,発,21:24#高松,着,21:39#",
"3165M":"岡山,発,21:13#妹尾,発,21:23#茶屋町,発,21:29#児島,発,21:38#坂出,発,21:53#高松,着,22:08#",
"3167M":"岡山,発,21:42#妹尾,発,21:52#早島,発,21:56#茶屋町,発,21:59#児島,発,22:09#坂出,発,22:24#高松,着,22:39#",
"3169M":"岡山,発,22:12#妹尾,発,22:23#早島,発,22:27#茶屋町,発,22:30#児島,発,22:40#坂出,発,22:55#高松,着,23:10#",
"3171M":"岡山,発,22:46#妹尾,発,22:53#早島,発,22:57#茶屋町,発,23:00#上の町,発,23:07#児島,発,23:11#坂出,発,23:27#鴨川,発,23:31#国分,発,23:36#端岡,発,23:39#鬼無,発,23:42#高松,着,23:48#",
"3173M":"岡山,発,23:12#大元,発,23:16#妹尾,発,23:22#早島,発,23:25#茶屋町,発,23:29#植松,発,23:32#木見,発,23:35#上の町,発,23:39#児島,発,23:43#坂出,発,23:59#鴨川,発,0:04#国分,発,0:08#端岡,発,0:11#鬼無,発,0:15#高松,着,0:20#",
"3175M":"岡山,発,23:47#大元,発,23:50#妹尾,発,23:55#早島,発,23:59#茶屋町,発,0:02#植松,発,0:05#木見,発,0:08#上の町,発,0:12#児島,発,0:16#坂出,発,0:35#鴨川,発,0:39#端岡,発,0:45#高松,着,0:53#",
"5031M":"岡山,発,6:31#児島,発,6:53#坂出,発,7:10#高松,着,7:27#",
"8041M":"岡山,発,6:31#児島,発,6:53#坂出,発,7:10#高松,着,7:27#",
"8179D":"岡山,発,15:21#児島,発,16:11#坂出,発,16:35#鴨川,発,16:44#端岡,発,16:53#高松,着,17:02#",
"2M":"伊予西条,発,4:59#新居浜,発,5:06#伊予三島,発,5:23#川之江,発,5:27#観音寺,発,5:38#高瀬,発,5:45#詫間,発,5:49#多度津,発,5:57#丸亀,発,6:00#宇多津,発,6:07#児島,発,6:22#岡山,着,6:43#",
"4M":"松山,発,5:05#伊予北条,発,5:17#今治,発,5:41#壬生川,発,5:54#伊予西条,発,6:03#新居浜,発,6:11#伊予三島,発,6:30#川之江,発,6:34#観音寺,発,6:45#高瀬,発,6:52#詫間,発,6:56#多度津,発,7:04#丸亀,発,7:08#宇多津,発,7:15#児島,発,7:29#岡山,着,7:51#",
"6M":"松山,発,6:13#伊予北条,発,6:25#今治,発,6:50#壬生川,発,7:03#伊予西条,発,7:12#新居浜,発,7:22#伊予三島,発,7:39#川之江,発,7:43#観音寺,発,7:54#高瀬,発,8:02#詫間,発,8:06#多度津,発,8:17#丸亀,発,8:21#宇多津,発,8:27#児島,発,8:40#岡山,着,9:00#",
"8M":"松山,発,7:20#伊予北条,発,7:32#今治,発,7:57#壬生川,発,8:09#伊予西条,発,8:19#新居浜,発,8:27#伊予三島,発,8:44#川之江,発,8:48#観音寺,発,8:59#詫間,発,9:08#多度津,発,9:16#丸亀,発,9:20#宇多津,発,9:26#児島,発,9:40#岡山,着,10:00#",
"10M":"松山,発,8:10#伊予北条,発,8:23#今治,発,8:47#壬生川,発,9:00#伊予西条,発,9:09#新居浜,発,9:17#伊予三島,発,9:34#川之江,発,9:39#観音寺,発,9:53#多度津,発,10:09#丸亀,発,10:14#宇多津,発,10:20#児島,発,10:34#岡山,着,10:58#",
"12M":"松山,発,9:15#伊予北条,発,9:28#今治,発,9:56#壬生川,発,10:10#伊予西条,発,10:19#新居浜,発,10:27#伊予三島,発,10:46#川之江,発,10:53#観音寺,発,11:04#多度津,発,11:21#丸亀,発,11:26#宇多津,発,11:34#児島,発,11:50#岡山,着,12:11#",
"14M":"松山,発,10:21#今治,発,10:59#壬生川,発,11:12#伊予西条,発,11:24#新居浜,発,11:32#伊予三島,発,11:52#川之江,発,11:56#観音寺,発,12:07#多度津,発,12:22#丸亀,発,12:27#宇多津,発,12:34#児島,発,12:49#岡山,着,13:11#",
"16M":"松山,発,11:23#今治,発,12:02#壬生川,発,12:15#伊予西条,発,12:26#新居浜,発,12:33#伊予三島,発,12:52#川之江,発,12:57#観音寺,発,13:07#多度津,発,13:23#丸亀,発,13:28#宇多津,発,13:35#児島,発,13:50#岡山,着,14:11#",
"18M":"松山,発,12:21#今治,発,13:00#壬生川,発,13:12#伊予西条,発,13:26#新居浜,発,13:34#伊予三島,発,13:53#川之江,発,13:57#観音寺,発,14:08#多度津,発,14:24#丸亀,発,14:28#宇多津,発,14:35#児島,発,14:50#岡山,着,15:11#",
"20M":"松山,発,13:26#今治,発,14:05#壬生川,発,14:18#伊予西条,発,14:26#新居浜,発,14:34#伊予三島,発,14:53#川之江,発,14:58#観音寺,発,15:08#多度津,発,15:24#丸亀,発,15:29#宇多津,発,15:35#児島,発,15:50#岡山,着,16:11#",
"22M":"松山,発,14:23#今治,発,15:01#壬生川,発,15:14#伊予西条,発,15:27#新居浜,発,15:35#伊予三島,発,15:54#川之江,発,15:58#観音寺,発,16:09#多度津,発,16:25#丸亀,発,16:29#宇多津,発,16:35#児島,発,16:50#岡山,着,17:11#",
"24M":"松山,発,15:28#今治,発,16:06#壬生川,発,16:19#伊予西条,発,16:28#新居浜,発,16:36#伊予三島,発,16:55#川之江,発,16:59#観音寺,発,17:10#多度津,発,17:26#丸亀,発,17:30#宇多津,発,17:36#児島,発,17:50#岡山,着,18:11#",
"26M":"松山,発,16:27#伊予北条,発,16:39#今治,発,17:04#壬生川,発,17:18#伊予西条,発,17:29#新居浜,発,17:37#伊予三島,発,17:55#川之江,発,18:00#観音寺,発,18:11#多度津,発,18:26#丸亀,発,18:31#宇多津,発,18:37#児島,発,18:51#岡山,着,19:11#",
"28M":"松山,発,17:37#伊予北条,発,17:49#今治,発,18:13#壬生川,発,18:25#伊予西条,発,18:34#新居浜,発,18:42#伊予三島,発,18:59#川之江,発,19:03#観音寺,発,19:14#多度津,発,19:29#丸亀,発,19:33#宇多津,発,19:39#児島,発,19:53#岡山,着,20:12#",
"30M":"松山,発,18:39#伊予北条,発,18:51#今治,発,19:19#壬生川,発,19:33#伊予西条,発,19:43#新居浜,発,19:51#伊予三島,発,20:08#川之江,発,20:13#観音寺,発,20:24#高瀬,発,20:31#詫間,発,20:36#多度津,発,20:43#丸亀,発,20:47#宇多津,発,20:53#児島,発,21:07#岡山,着,21:30#",
"32D":"高知,発,6:00#後免,発,6:07#土佐山田,発,6:12#大杉,発,6:31#大歩危,発,6:48#阿波池田,発,7:08#琴平,発,7:32#善通寺,発,7:37#多度津,発,7:49#丸亀,発,7:54#宇多津,発,7:58#児島,発,8:14#岡山,着,8:38#",
"34D":"高知,発,7:00#後免,発,7:07#土佐山田,発,7:12#大杉,発,7:32#大歩危,発,7:52#阿波池田,発,8:13#琴平,発,8:40#善通寺,発,8:45#多度津,発,8:51#丸亀,発,8:55#宇多津,発,9:00#児島,発,9:15#岡山,着,9:38#",
"36D":"高知,発,8:01#後免,発,8:09#土佐山田,発,8:14#大歩危,発,8:49#阿波池田,発,9:07#琴平,発,9:35#善通寺,発,9:39#多度津,発,9:46#丸亀,発,9:51#宇多津,発,9:58#児島,発,10:12#岡山,着,10:33#",
"38D":"高知,発,9:13#後免,発,9:20#土佐山田,発,9:27#大歩危,発,10:02#阿波池田,発,10:23#琴平,発,10:47#善通寺,発,10:54#多度津,発,10:59#丸亀,発,11:03#宇多津,発,11:07#児島,発,11:21#岡山,着,11:40#",
"40D":"高知,発,10:13#後免,発,10:20#土佐山田,発,10:25#大杉,発,10:44#大歩危,発,11:05#阿波池田,発,11:23#琴平,発,11:47#善通寺,発,11:53#多度津,発,11:59#丸亀,発,12:03#宇多津,発,12:06#児島,発,12:20#岡山,着,12:40#",
"42D":"高知,発,11:13#後免,発,11:22#土佐山田,発,11:27#大歩危,発,12:05#阿波池田,発,12:23#琴平,発,12:47#善通寺,発,12:53#多度津,発,12:59#丸亀,発,13:03#宇多津,発,13:06#児島,発,13:20#岡山,着,13:40#",
"44D":"高知,発,12:13#後免,発,12:21#土佐山田,発,12:26#大歩危,発,13:05#阿波池田,発,13:23#琴平,発,13:47#善通寺,発,13:53#多度津,発,13:59#丸亀,発,14:03#宇多津,発,14:06#児島,発,14:20#岡山,着,14:41#",
"46D":"高知,発,13:13#後免,発,13:20#土佐山田,発,13:25#大杉,発,13:46#大歩危,発,14:05#阿波池田,発,14:23#琴平,発,14:47#善通寺,発,14:53#多度津,発,14:59#丸亀,発,15:03#宇多津,発,15:06#児島,発,15:20#岡山,着,15:41#",
"48D":"高知,発,14:13#後免,発,14:20#土佐山田,発,14:25#大歩危,発,15:02#阿波池田,発,15:23#琴平,発,15:47#善通寺,発,15:53#多度津,発,15:59#丸亀,発,16:03#宇多津,発,16:06#児島,発,16:20#岡山,着,16:41#",
"50D":"高知,発,15:13#後免,発,15:20#土佐山田,発,15:25#大杉,発,15:45#大歩危,発,16:02#阿波池田,発,16:23#琴平,発,16:47#善通寺,発,16:53#多度津,発,16:59#丸亀,発,17:03#宇多津,発,17:06#児島,発,17:20#岡山,着,17:41#",
"52D":"高知,発,16:13#後免,発,16:20#土佐山田,発,16:25#大杉,発,16:45#大歩危,発,17:02#阿波池田,発,17:23#琴平,発,17:46#善通寺,発,17:50#多度津,発,17:57#丸亀,発,18:02#宇多津,発,18:06#児島,発,18:20#岡山,着,18:41#",
"54D":"高知,発,17:13#後免,発,17:20#土佐山田,発,17:25#大杉,発,17:46#大歩危,発,18:05#阿波池田,発,18:23#琴平,発,18:46#善通寺,発,18:52#多度津,発,18:59#丸亀,発,19:03#宇多津,発,19:07#児島,発,19:21#岡山,着,19:41#",
"56D":"高知,発,18:38#後免,発,18:46#土佐山田,発,18:51#大杉,発,19:11#大歩危,発,19:30#阿波池田,発,19:48#琴平,発,20:14#善通寺,発,20:19#多度津,発,20:25#丸亀,発,20:29#宇多津,発,20:33#児島,発,20:48#岡山,着,21:12#",
"58D":"高知,発,19:31#後免,発,19:42#土佐山田,発,19:46#大杉,発,20:06#大歩危,発,20:23#阿波池田,発,20:42#琴平,発,21:05#善通寺,発,21:09#多度津,発,21:15#丸亀,発,21:19#宇多津,発,21:23#児島,発,21:38#岡山,着,21:57#",
"8278D":"琴平,発,13:16#多度津,発,13:34#宇多津,発,13:45#児島,発,14:23#岡山,着,14:54#",
"1M":"岡山,発,7:22#児島,発,7:42#宇多津,発,8:01#丸亀,発,8:04#多度津,発,8:09#詫間,発,8:17#観音寺,発,8:27#川之江,発,8:37#伊予三島,発,8:44#新居浜,発,9:01#伊予西条,発,9:09#壬生川,発,9:18#今治,発,9:31#伊予北条,発,9:54#松山,着,10:06#",
"3M":"岡山,発,8:32#児島,発,8:54#宇多津,発,9:13#丸亀,発,9:16#多度津,発,9:21#詫間,発,9:28#観音寺,発,9:38#川之江,発,9:49#伊予三島,発,9:54#新居浜,発,10:11#伊予西条,発,10:19#壬生川,発,10:28#今治,発,10:41#松山,着,11:15#",
"5M":"岡山,発,9:25#児島,発,9:47#宇多津,発,10:06#丸亀,発,10:10#多度津,発,10:15#観音寺,発,10:31#川之江,発,10:41#伊予三島,発,10:46#新居浜,発,11:03#伊予西条,発,11:12#壬生川,発,11:22#今治,発,11:36#松山,着,12:10#",
"7M":"岡山,発,10:35#児島,発,10:55#宇多津,発,11:13#丸亀,発,11:17#多度津,発,11:21#観音寺,発,11:37#川之江,発,11:47#伊予三島,発,11:52#新居浜,発,12:09#伊予西条,発,12:17#壬生川,発,12:29#今治,発,12:42#松山,着,13:16#",
"9M":"岡山,発,11:35#児島,発,11:55#宇多津,発,12:14#丸亀,発,12:17#多度津,発,12:22#観音寺,発,12:37#川之江,発,12:48#伊予三島,発,12:52#新居浜,発,13:10#伊予西条,発,13:18#壬生川,発,13:27#今治,発,13:39#松山,着,14:13#",
"11M":"岡山,発,12:35#児島,発,12:55#宇多津,発,13:14#丸亀,発,13:18#多度津,発,13:23#観音寺,発,13:38#川之江,発,13:48#伊予三島,発,13:53#新居浜,発,14:10#伊予西条,発,14:18#壬生川,発,14:31#今治,発,14:43#松山,着,15:17#",
"13M":"岡山,発,13:35#児島,発,13:55#宇多津,発,14:14#丸亀,発,14:18#多度津,発,14:23#観音寺,発,14:38#川之江,発,14:49#伊予三島,発,14:53#新居浜,発,15:10#伊予西条,発,15:19#壬生川,発,15:28#今治,発,15:41#伊予北条,発,16:04#松山,着,16:16#",
"15M":"岡山,発,14:35#児島,発,14:56#宇多津,発,15:15#丸亀,発,15:19#多度津,発,15:24#観音寺,発,15:39#川之江,発,15:49#伊予三島,発,15:54#新居浜,発,16:11#伊予西条,発,16:19#壬生川,発,16:32#今治,発,16:45#伊予北条,発,17:12#松山,着,17:24#",
"17M":"岡山,発,15:35#児島,発,15:55#宇多津,発,16:15#丸亀,発,16:19#多度津,発,16:24#観音寺,発,16:39#川之江,発,16:50#伊予三島,発,16:55#新居浜,発,17:12#伊予西条,発,17:20#壬生川,発,17:32#今治,発,17:45#伊予北条,発,18:13#松山,着,18:26#",
"19M":"岡山,発,16:35#児島,発,16:55#宇多津,発,17:15#丸亀,発,17:18#多度津,発,17:25#観音寺,発,17:40#川之江,発,17:51#伊予三島,発,17:55#新居浜,発,18:13#伊予西条,発,18:21#壬生川,発,18:34#今治,発,18:47#伊予北条,発,19:11#松山,着,19:23#",
"21M":"岡山,発,17:35#児島,発,17:55#宇多津,発,18:09#丸亀,発,18:13#多度津,発,18:26#観音寺,発,18:42#川之江,発,18:52#伊予三島,発,18:58#新居浜,発,19:15#伊予西条,発,19:24#壬生川,発,19:33#今治,発,19:48#伊予北条,発,20:16#松山,着,20:28#",
"23M":"岡山,発,18:35#児島,発,18:55#宇多津,発,19:10#丸亀,発,19:14#多度津,発,19:29#詫間,発,19:37#高瀬,発,19:41#観音寺,発,19:49#川之江,発,20:01#伊予三島,発,20:08#新居浜,発,20:25#伊予西条,発,20:33#壬生川,発,20:42#今治,発,20:55#伊予北条,発,21:22#松山,着,21:34#",
"25M":"岡山,発,19:35#児島,発,19:55#宇多津,発,20:09#丸亀,発,20:12#多度津,発,20:26#詫間,発,20:36#高瀬,発,20:40#観音寺,発,20:48#川之江,発,21:02#伊予三島,発,21:07#新居浜,発,21:25#伊予西条,発,21:36#壬生川,発,21:45#今治,発,21:58#伊予北条,発,22:22#松山,着,22:35#",
"27M":"岡山,発,20:39#児島,発,21:01#宇多津,発,21:15#丸亀,発,21:18#多度津,発,21:31#詫間,発,21:40#高瀬,発,21:46#観音寺,発,21:55#川之江,発,22:06#伊予三島,発,22:11#新居浜,発,22:28#伊予西条,発,22:36#壬生川,発,22:45#今治,発,22:58#伊予北条,発,23:22#松山,着,23:34#",
"29M":"岡山,発,22:00#児島,発,22:22#宇多津,発,22:36#丸亀,発,22:39#多度津,発,22:52#詫間,発,23:00#高瀬,発,23:05#観音寺,発,23:13#川之江,発,23:30#伊予三島,発,23:35#新居浜,発,23:52#伊予西条,着,23:59#",
"31D":"岡山,発,7:08#児島,発,7:29#宇多津,発,7:46#丸亀,発,7:50#多度津,発,7:56#善通寺,発,8:01#琴平,発,8:06#阿波池田,発,8:29#大歩危,発,8:49#大杉,発,9:07#土佐山田,発,9:27#後免,発,9:32#高知,着,9:39#",
"33D":"岡山,発,8:52#児島,発,9:17#宇多津,発,9:33#丸亀,発,9:36#多度津,発,9:44#善通寺,発,9:51#琴平,発,9:59#阿波池田,発,10:24#大歩危,発,10:41#大杉,発,10:58#土佐山田,発,11:18#後免,発,11:23#高知,着,11:30#",
"35D":"岡山,発,10:05#児島,発,10:26#宇多津,発,10:39#丸亀,発,10:43#多度津,発,10:48#善通寺,発,10:54#琴平,発,10:59#阿波池田,発,11:24#大歩危,発,11:41#土佐山田,発,12:16#後免,発,12:21#高知,着,12:29#",
"37D":"岡山,発,11:05#児島,発,11:25#宇多津,発,11:39#丸亀,発,11:42#多度津,発,11:47#善通寺,発,11:53#琴平,発,11:59#阿波池田,発,12:24#大歩危,発,12:46#土佐山田,発,13:26#後免,発,13:31#高知,着,13:39#",
"39D":"岡山,発,12:05#児島,発,12:25#宇多津,発,12:39#丸亀,発,12:42#多度津,発,12:47#善通寺,発,12:53#琴平,発,12:59#阿波池田,発,13:24#大歩危,発,13:44#土佐山田,発,14:26#後免,発,14:31#高知,着,14:38#",
"41D":"岡山,発,13:05#児島,発,13:25#宇多津,発,13:39#丸亀,発,13:42#多度津,発,13:47#善通寺,発,13:53#琴平,発,13:59#阿波池田,発,14:24#大歩危,発,14:42#土佐山田,発,15:26#後免,発,15:31#高知,着,15:38#",
"43D":"岡山,発,14:05#児島,発,14:25#宇多津,発,14:39#丸亀,発,14:42#多度津,発,14:47#善通寺,発,14:53#琴平,発,14:59#阿波池田,発,15:24#大歩危,発,15:42#土佐山田,発,16:26#後免,発,16:31#高知,着,16:39#",
"45D":"岡山,発,15:05#児島,発,15:25#宇多津,発,15:39#丸亀,発,15:42#多度津,発,15:47#善通寺,発,15:53#琴平,発,15:59#阿波池田,発,16:24#大歩危,発,16:42#土佐山田,発,17:26#後免,発,17:31#高知,着,17:41#",
"47D":"岡山,発,16:05#児島,発,16:25#宇多津,発,16:39#丸亀,発,16:42#多度津,発,16:47#善通寺,発,16:53#琴平,発,16:59#阿波池田,発,17:24#大歩危,発,17:42#大杉,発,18:05#土佐山田,発,18:26#後免,発,18:31#高知,着,18:44#",
"49D":"岡山,発,17:05#児島,発,17:26#宇多津,発,17:41#丸亀,発,17:45#多度津,発,17:55#善通寺,発,18:01#琴平,発,18:06#阿波池田,発,18:34#大歩危,発,18:52#大杉,発,19:11#土佐山田,発,19:30#後免,発,19:34#高知,着,19:44#",
"51D":"岡山,発,18:05#児島,発,18:26#宇多津,発,18:41#丸亀,発,18:45#多度津,発,18:51#善通寺,発,18:58#琴平,発,19:03#阿波池田,発,19:26#大歩危,発,19:48#大杉,発,20:06#土佐山田,発,20:26#後免,発,20:34#高知,着,20:42#",
"53D":"岡山,発,19:05#児島,発,19:27#宇多津,発,19:42#丸亀,発,19:46#多度津,発,19:51#善通寺,発,19:56#琴平,発,20:01#阿波池田,発,20:31#大歩危,発,20:52#大杉,発,21:10#土佐山田,発,21:31#後免,発,21:36#高知,着,21:44#",
"55D":"岡山,発,20:05#児島,発,20:29#宇多津,発,20:45#丸亀,発,20:49#多度津,発,20:59#善通寺,発,21:10#琴平,発,21:15#阿波池田,発,21:39#大歩危,発,21:58#大杉,発,22:15#土佐山田,発,22:34#後免,発,22:39#高知,着,22:47#",
"57D":"岡山,発,21:38#児島,発,21:59#宇多津,発,22:14#丸亀,発,22:18#多度津,発,22:23#善通寺,発,22:29#琴平,発,22:34#阿波池田,発,22:58#大歩危,発,23:16#大杉,発,23:34#土佐山田,発,23:54#後免,発,23:59#高知,着,0:06#",
"8277D":"岡山,発,11:17#児島,発,12:10#宇多津,発,12:30#多度津,発,12:41#琴平,着,13:04#",
"3810D":"宇和島,発,5:46#北宇和島,発,5:49#務田,発,6:01#伊予宮野下,発,6:04#二名,発,6:07#大内,発,6:11#深田,発,6:16#近永,発,6:20#出目,発,6:23#松丸,発,6:29#吉野生,発,6:34#真土,発,6:37#西ケ方,発,6:46#江川崎,着,6:50#",
"4812D":"江川崎,発,7:10#半家,発,7:19#十川,発,7:27#土佐昭和,発,7:32#土佐大正,発,7:42#打井川,発,7:50#家地川,発,7:56#若井,発,8:04#窪川,着,8:09#",
"4814D":"宇和島,発,7:27#北宇和島,発,7:30#務田,発,7:43#伊予宮野下,発,7:48#二名,発,7:52#大内,発,7:55#深田,発,8:01#近永,発,8:06#出目,発,8:09#松丸,発,8:15#吉野生,発,8:20#真土,発,8:23#西ケ方,発,8:32#江川崎,着,8:36#",
"4818D":"宇和島,発,11:27#北宇和島,発,11:30#務田,発,11:43#伊予宮野下,発,11:48#二名,発,11:52#大内,発,11:55#深田,発,12:01#近永,発,12:05#出目,発,12:08#松丸,発,12:14#吉野生,発,12:19#真土,発,12:22#西ケ方,発,12:31#江川崎,着,12:35#",
"4820D":"宇和島,発,13:27#北宇和島,発,13:30#務田,発,13:43#伊予宮野下,発,13:48#二名,発,13:52#大内,発,13:55#深田,発,14:01#近永,発,14:05#出目,発,14:08#松丸,発,14:14#吉野生,発,14:19#真土,発,14:22#西ケ方,発,14:31#江川崎,発,14:35#半家,発,14:44#十川,発,14:52#土佐昭和,発,14:57#土佐大正,発,15:07#打井川,発,15:15#家地川,発,15:21#若井,発,15:29#窪川,着,15:34#",
"4822D":"宇和島,発,15:27#北宇和島,発,15:30#務田,発,15:43#伊予宮野下,発,15:49#二名,発,15:53#大内,発,15:56#深田,発,16:02#近永,発,16:06#出目,発,16:09#松丸,発,16:15#吉野生,発,16:20#真土,発,16:23#西ケ方,発,16:32#江川崎,着,16:36#",
"4824D":"宇和島,発,17:27#北宇和島,発,17:30#務田,発,17:43#伊予宮野下,発,17:48#二名,発,17:52#大内,発,17:55#深田,発,18:01#近永,発,18:05#出目,発,18:08#松丸,発,18:14#吉野生,発,18:19#真土,発,18:22#西ケ方,発,18:31#江川崎,発,18:41#半家,発,18:49#十川,発,18:57#土佐昭和,発,19:02#土佐大正,発,19:15#打井川,発,19:23#家地川,発,19:29#若井,発,19:38#窪川,着,19:44#",
"4826D":"宇和島,発,19:27#北宇和島,発,19:30#務田,発,19:43#伊予宮野下,発,19:48#二名,発,19:52#大内,発,19:55#深田,発,20:01#近永,発,20:05#出目,発,20:08#松丸,発,20:14#吉野生,発,20:19#真土,発,20:22#西ケ方,発,20:31#江川崎,着,20:35#",
"4828D":"宇和島,発,21:11#北宇和島,発,21:14#務田,発,21:27#伊予宮野下,発,21:31#二名,発,21:35#大内,発,21:38#深田,発,21:44#近永,着,21:47#",
"8816D":"宇和島,発,9:34#北宇和島,発,9:37#務田,発,9:50#伊予宮野下,発,9:52#二名,発,9:57#大内,発,10:00#深田,発,10:06#近永,発,10:10#出目,発,10:13#松丸,発,10:19#吉野生,発,10:24#真土,発,10:27#西ケ方,発,10:37#江川崎,発,10:45#半家,発,10:54#十川,発,11:02#土佐昭和,発,11:08#土佐大正,発,11:42#打井川,発,11:50#家地川,発,11:57#若井,発,12:05#窪川,着,12:11#",
"3813D":"江川崎,発,7:00#西ケ方,発,7:04#真土,発,7:13#吉野生,発,7:16#松丸,発,7:21#出目,発,7:27#近永,発,7:31#深田,発,7:35#大内,発,7:41#二名,発,7:44#伊予宮野下,発,7:49#務田,発,7:51#北宇和島,発,8:05#宇和島,着,8:07#",
"4811D":"窪川,発,5:50#若井,発,5:55#家地川,発,6:02#打井川,発,6:08#土佐大正,発,6:15#土佐昭和,発,6:24#十川,発,6:29#半家,発,6:37#江川崎,着,6:45#",
"4815D":"江川崎,発,9:00#西ケ方,発,9:04#真土,発,9:13#吉野生,発,9:16#松丸,発,9:21#出目,発,9:27#近永,発,9:31#深田,発,9:35#大内,発,9:41#二名,発,9:44#伊予宮野下,発,9:53#務田,発,9:55#北宇和島,発,10:08#宇和島,着,10:11#",
"4817D":"窪川,発,9:39#若井,発,9:45#家地川,発,9:53#打井川,発,9:59#土佐大正,発,10:10#土佐昭和,発,10:18#十川,発,10:23#半家,発,10:31#江川崎,発,11:00#西ケ方,発,11:04#真土,発,11:13#吉野生,発,11:16#松丸,発,11:21#出目,発,11:27#近永,発,11:31#深田,発,11:35#大内,発,11:41#二名,発,11:44#伊予宮野下,発,11:49#務田,発,11:51#北宇和島,発,12:04#宇和島,着,12:07#",
"4819D":"江川崎,発,13:00#西ケ方,発,13:04#真土,発,13:13#吉野生,発,13:16#松丸,発,13:21#出目,発,13:27#近永,発,13:31#深田,発,13:35#大内,発,13:41#二名,発,13:44#伊予宮野下,発,13:49#務田,発,13:51#北宇和島,発,14:04#宇和島,着,14:07#",
"4823D":"江川崎,発,17:00#西ケ方,発,17:04#真土,発,17:13#吉野生,発,17:16#松丸,発,17:21#出目,発,17:27#近永,発,17:31#深田,発,17:35#大内,発,17:41#二名,発,17:44#伊予宮野下,発,17:49#務田,発,17:51#北宇和島,発,18:04#宇和島,着,18:07#",
"4825D":"窪川,発,17:41#若井,発,17:47#家地川,発,17:55#打井川,発,18:01#土佐大正,発,18:10#土佐昭和,発,18:19#十川,発,18:25#半家,発,18:33#江川崎,発,19:00#西ケ方,発,19:04#真土,発,19:13#吉野生,発,19:16#松丸,発,19:21#出目,発,19:27#近永,発,19:31#深田,発,19:35#大内,発,19:41#二名,発,19:44#伊予宮野下,発,19:49#務田,発,19:51#北宇和島,発,20:04#宇和島,着,20:07#",
"4827D":"江川崎,発,20:44#西ケ方,発,20:48#真土,発,20:57#吉野生,発,21:00#松丸,発,21:05#出目,発,21:11#近永,発,21:14#深田,発,21:18#大内,発,21:24#二名,発,21:27#伊予宮野下,発,21:31#務田,発,21:34#北宇和島,発,21:47#宇和島,着,21:49#",
"8821D":"窪川,発,13:15#若井,発,13:21#家地川,発,13:29#打井川,発,13:35#土佐大正,発,13:46#土佐昭和,発,13:56#十川,発,14:02#半家,発,14:10#江川崎,発,15:00#西ケ方,発,15:04#真土,発,15:14#吉野生,発,15:17#松丸,発,15:22#出目,発,15:28#近永,発,15:32#深田,発,15:36#大内,発,15:41#二名,発,15:45#伊予宮野下,発,15:49#務田,発,15:52#北宇和島,発,16:05#宇和島,着,16:08#",
"216D":"高知,発,6:27#薊野,発,6:30#土佐一宮,発,6:33#布師田,発,6:36#土佐大津,発,6:39#後免,発,6:44#土佐長岡,発,6:48#山田西町,発,6:51#土佐山田,着,6:52#",
"238D":"高知,発,12:45#薊野,発,12:48#土佐一宮,発,12:53#布師田,発,12:56#土佐大津,発,12:59#後免,発,13:05#土佐長岡,発,13:08#山田西町,発,13:12#土佐山田,着,13:14#",
"248D":"高知,発,16:15#薊野,発,16:19#土佐一宮,発,16:22#布師田,発,16:24#土佐大津,発,16:27#後免,発,16:38#土佐長岡,発,16:41#山田西町,発,16:45#土佐山田,着,16:47#",
"250D":"高知,発,17:29#薊野,発,17:32#土佐一宮,発,17:38#布師田,発,17:41#土佐大津,発,17:45#後免,発,17:54#土佐長岡,発,17:58#山田西町,発,18:02#土佐山田,着,18:04#",
"710D":"高知,発,6:03#薊野,発,6:06#土佐一宮,発,6:09#布師田,発,6:12#土佐大津,発,6:15#後免,発,6:19#土佐長岡,発,6:22#山田西町,発,6:26#土佐山田,着,6:27#",
"714D":"須崎,発,6:07#大間,発,6:10#多ノ郷,発,6:13#吾桑,発,6:17#斗賀野,発,6:24#襟野々,発,6:27#佐川,発,6:31#西佐川,発,6:34#土佐加茂,発,6:39#岡花,発,6:43#日下,発,6:46#小村神社前,発,6:50#波川,発,6:53#伊野,発,6:58#枝川,発,7:01#朝倉,発,7:07#高知商業前,発,7:11#旭,発,7:16#円行寺口,発,7:20#入明,発,7:25#高知,発,7:32#薊野,発,7:36#土佐一宮,発,7:40#布師田,発,7:42#土佐大津,発,7:47#後免,発,7:52#土佐長岡,発,7:55#山田西町,発,7:59#土佐山田,着,8:00#",
"716D":"窪川,発,5:54#仁井田,発,5:59#六反地,発,6:02#影野,発,6:05#土佐久礼,発,6:16#安和,発,6:23#土佐新荘,発,6:27#須崎,発,6:31#大間,発,6:34#多ノ郷,発,6:36#吾桑,発,6:39#斗賀野,発,6:47#襟野々,発,6:50#佐川,発,6:53#西佐川,発,6:56#土佐加茂,発,7:00#岡花,発,7:04#日下,発,7:07#小村神社前,発,7:11#波川,発,7:14#伊野,発,7:17#枝川,発,7:20#朝倉,発,7:25#高知商業前,発,7:28#旭,発,7:33#円行寺口,発,7:36#入明,発,7:40#高知,着,7:42#",
"718D":"須崎,発,6:58#大間,発,7:01#多ノ郷,発,7:03#吾桑,発,7:07#斗賀野,発,7:15#襟野々,発,7:18#佐川,発,7:21#西佐川,発,7:32#土佐加茂,発,7:37#岡花,発,7:41#日下,発,7:44#小村神社前,発,7:47#波川,発,7:50#伊野,発,7:53#枝川,発,7:56#朝倉,発,8:03#高知商業前,発,8:07#旭,発,8:10#円行寺口,発,8:12#入明,発,8:15#高知,着,8:17#",
"720D":"伊野,発,8:18#枝川,発,8:21#朝倉,発,8:29#高知商業前,発,8:32#旭,発,8:35#円行寺口,発,8:38#入明,発,8:40#高知,着,8:42#",
"732D":"須崎,発,11:21#大間,発,11:24#多ノ郷,発,11:27#吾桑,発,11:31#斗賀野,発,11:38#襟野々,発,11:42#佐川,発,11:45#西佐川,発,11:54#土佐加茂,発,11:58#岡花,発,12:02#日下,発,12:07#小村神社前,発,12:11#波川,発,12:14#伊野,発,12:17#枝川,発,12:20#朝倉,発,12:25#高知商業前,発,12:28#旭,発,12:34#円行寺口,発,12:37#入明,発,12:39#高知,着,12:41#",
"744D":"須崎,発,15:12#大間,発,15:15#多ノ郷,発,15:18#吾桑,発,15:24#斗賀野,発,15:31#襟野々,発,15:34#佐川,発,15:37#西佐川,発,15:41#土佐加茂,発,15:49#岡花,発,15:53#日下,発,16:07#小村神社前,発,16:11#波川,発,16:14#伊野,発,16:19#枝川,発,16:22#朝倉,発,16:27#高知商業前,発,16:30#旭,発,16:34#円行寺口,発,16:37#入明,発,16:39#高知,発,16:45#薊野,発,16:48#土佐一宮,発,16:53#布師田,発,16:56#土佐大津,発,16:59#後免,発,17:06#土佐長岡,発,17:09#山田西町,発,17:13#土佐山田,着,17:15#",
"746D":"須崎,発,15:50#大間,発,15:53#多ノ郷,発,15:55#吾桑,発,15:59#斗賀野,発,16:06#襟野々,発,16:09#佐川,発,16:16#西佐川,発,16:19#土佐加茂,発,16:24#岡花,発,16:28#日下,発,16:32#小村神社前,発,16:35#波川,発,16:39#伊野,発,16:57#枝川,発,17:00#朝倉,発,17:06#高知商業前,発,17:09#旭,発,17:16#円行寺口,発,17:18#入明,発,17:20#高知,着,17:22#",
"750D":"須崎,発,16:51#大間,発,16:55#多ノ郷,発,16:57#吾桑,発,17:03#斗賀野,発,17:10#襟野々,発,17:13#佐川,発,17:16#西佐川,発,17:19#土佐加茂,発,17:34#岡花,発,17:37#日下,発,17:40#小村神社前,発,17:44#波川,発,17:47#伊野,発,17:52#枝川,発,17:54#朝倉,発,17:59#高知商業前,発,18:02#旭,発,18:04#円行寺口,発,18:07#入明,発,18:09#高知,発,18:18#薊野,発,18:22#土佐一宮,発,18:26#布師田,発,18:29#土佐大津,発,18:34#後免,発,18:38#土佐長岡,発,18:41#山田西町,発,18:45#土佐山田,着,18:46#",
"754D":"須崎,発,17:22#大間,発,17:25#多ノ郷,発,17:28#吾桑,発,17:34#斗賀野,発,17:44#襟野々,発,17:47#佐川,発,17:50#西佐川,発,18:07#土佐加茂,発,18:11#岡花,発,18:15#日下,発,18:18#小村神社前,発,18:22#波川,発,18:25#伊野,発,18:28#枝川,発,18:31#朝倉,発,18:36#高知商業前,発,18:38#旭,発,18:43#円行寺口,発,18:46#入明,発,18:48#高知,発,18:52#薊野,発,18:56#土佐一宮,発,18:59#布師田,発,19:01#土佐大津,発,19:04#後免,発,19:08#土佐長岡,発,19:12#山田西町,発,19:15#土佐山田,着,19:16#",
"756D":"須崎,発,18:09#大間,発,18:12#多ノ郷,発,18:14#吾桑,発,18:18#斗賀野,発,18:25#襟野々,発,18:28#佐川,発,18:34#西佐川,発,18:37#土佐加茂,発,18:43#岡花,発,18:46#日下,発,18:53#小村神社前,発,18:56#波川,発,18:59#伊野,発,19:02#枝川,発,19:05#朝倉,発,19:12#高知商業前,発,19:15#旭,発,19:17#円行寺口,発,19:20#入明,発,19:22#高知,発,19:36#薊野,発,19:42#土佐一宮,発,19:45#布師田,発,19:48#土佐大津,発,19:51#後免,発,19:55#土佐長岡,発,19:58#山田西町,発,20:01#土佐山田,着,20:03#",
"764D":"須崎,発,21:22#大間,発,21:25#多ノ郷,発,21:27#吾桑,発,21:31#斗賀野,発,21:38#襟野々,発,21:41#佐川,発,21:46#西佐川,発,21:49#土佐加茂,発,21:54#岡花,発,21:58#日下,発,22:01#小村神社前,発,22:04#波川,発,22:07#伊野,発,22:10#枝川,発,22:13#朝倉,発,22:20#高知商業前,発,22:23#旭,発,22:25#円行寺口,発,22:28#入明,発,22:30#高知,着,22:32#",
"1214M":"琴平,発,7:00#善通寺,発,7:06#金蔵寺,発,7:09#多度津,発,7:14#讃岐塩屋,発,7:17#丸亀,発,7:20#宇多津,発,7:23#坂出,発,7:28#八十場,発,7:31#鴨川,発,7:34#讃岐府中,発,7:37#国分,発,7:40#端岡,発,7:43#鬼無,発,7:47#香西,発,7:50#高松,着,7:54#",
"1222M":"琴平,発,8:43#善通寺,発,8:56#金蔵寺,発,9:00#多度津,着,9:04#",
"1224M":"琴平,発,9:05#善通寺,発,9:10#金蔵寺,発,9:14#多度津,発,9:20#讃岐塩屋,発,9:24#丸亀,発,9:27#宇多津,発,9:30#坂出,発,9:36#八十場,発,9:39#鴨川,発,9:48#讃岐府中,発,9:51#国分,発,9:54#端岡,発,9:58#鬼無,発,10:01#香西,発,10:04#高松,着,10:08#",
"1230M":"琴平,発,11:05#善通寺,発,11:11#金蔵寺,発,11:14#多度津,発,11:30#讃岐塩屋,発,11:33#丸亀,発,11:36#宇多津,発,11:40#坂出,発,11:55#八十場,発,11:58#鴨川,発,12:01#讃岐府中,発,12:04#国分,発,12:07#端岡,発,12:10#鬼無,発,12:13#香西,発,12:17#高松,着,12:22#",
"1246M":"琴平,発,17:25#善通寺,発,17:31#金蔵寺,発,17:34#多度津,発,17:39#讃岐塩屋,発,17:42#丸亀,発,17:45#宇多津,発,17:49#坂出,発,17:55#八十場,発,17:58#鴨川,発,18:01#讃岐府中,発,18:04#国分,発,18:07#端岡,発,18:10#鬼無,発,18:13#香西,発,18:17#高松,着,18:21#",
"1248M":"琴平,発,18:23#善通寺,発,18:29#金蔵寺,発,18:32#多度津,着,18:36#",
"1250M":"琴平,発,19:34#善通寺,発,19:40#金蔵寺,発,19:44#多度津,発,19:53#讃岐塩屋,発,19:56#丸亀,発,19:59#宇多津,発,20:03#坂出,発,20:07#八十場,発,20:11#鴨川,発,20:14#讃岐府中,発,20:17#国分,発,20:20#端岡,発,20:23#鬼無,発,20:27#香西,発,20:30#高松,着,20:34#",
"2002D":"高知,発,4:51#後免,発,4:58#土佐山田,発,5:03#大杉,発,5:22#大歩危,発,5:40#阿波池田,発,6:00#琴平,発,6:23#善通寺,発,6:28#多度津,発,6:38#丸亀,発,6:42#坂出,発,6:48#高松,着,7:02#",
"2004D":"中村,発,18:47#土佐入野,発,18:54#土佐佐賀,発,19:05#窪川,発,19:24#土佐久礼,発,19:39#須崎,発,19:49#佐川,発,20:02#伊野,発,20:15#朝倉,発,20:21#旭,発,20:25#高知,発,20:32#後免,発,20:45#土佐山田,発,20:50#大杉,発,21:10#大歩危,発,21:28#阿波池田,発,21:49#琴平,発,22:12#善通寺,発,22:17#多度津,発,22:22#丸亀,発,22:27#坂出,発,22:33#高松,着,22:46#",
"2072D":"中村,発,6:08#土佐入野,発,6:15#土佐佐賀,発,6:26#窪川,発,6:46#土佐久礼,発,7:01#須崎,発,7:12#多ノ郷,発,7:16#佐川,発,7:27#伊野,発,7:40#朝倉,発,7:46#旭,発,7:54#高知,着,7:58#",
"2074D":"中村,発,7:00#土佐入野,発,7:07#土佐佐賀,発,7:20#窪川,発,7:41#土佐久礼,発,7:56#須崎,発,8:10#多ノ郷,発,8:14#佐川,発,8:26#伊野,発,8:51#朝倉,発,8:56#旭,発,9:00#高知,着,9:04#",
"2076D":"中村,発,9:24#土佐入野,発,9:31#土佐佐賀,発,9:45#窪川,発,10:04#土佐久礼,発,10:19#須崎,発,10:29#佐川,発,10:42#伊野,発,10:55#高知,着,11:05#",
"2078D":"中村,発,11:13#土佐入野,発,11:20#土佐上川口,発,11:28#土佐佐賀,発,11:36#窪川,発,11:56#土佐久礼,発,12:11#須崎,発,12:21#佐川,発,12:38#伊野,発,12:52#朝倉,発,12:57#旭,発,13:01#高知,着,13:05#",
"2080D":"中村,発,13:13#土佐入野,発,13:20#土佐佐賀,発,13:35#窪川,発,13:56#土佐久礼,発,14:12#須崎,発,14:22#佐川,発,14:39#伊野,発,14:52#朝倉,発,14:58#旭,発,15:01#高知,着,15:05#",
"2082D":"中村,発,15:13#土佐入野,発,15:20#土佐佐賀,発,15:36#窪川,発,15:56#土佐久礼,発,16:11#須崎,発,16:21#佐川,発,16:38#伊野,発,16:51#朝倉,発,16:57#旭,発,17:00#高知,着,17:04#",
"2084D":"中村,発,16:42#土佐入野,発,16:49#土佐佐賀,発,17:00#窪川,発,17:19#土佐久礼,発,17:35#須崎,発,17:45#佐川,発,18:02#伊野,発,18:15#朝倉,発,18:21#旭,発,18:25#高知,着,18:29#",
"3210D":"高知,発,5:41#薊野,発,5:45#土佐一宮,発,5:48#布師田,発,5:51#土佐大津,発,5:54#後免,発,5:59#土佐長岡,発,6:03#山田西町,発,6:06#土佐山田,着,6:08#",
"3258D":"高知,発,20:42#薊野,発,20:46#土佐一宮,発,20:49#布師田,発,20:51#土佐大津,発,20:54#後免,発,20:59#土佐長岡,発,21:02#山田西町,発,21:05#土佐山田,着,21:07#",
"3710D":"伊野,発,5:36#枝川,発,5:39#朝倉,発,5:44#高知商業前,発,5:47#旭,発,5:50#円行寺口,発,5:53#入明,発,5:55#高知,着,5:57#",
"3712D":"須崎,発,5:36#大間,発,5:39#多ノ郷,発,5:41#吾桑,発,5:45#斗賀野,発,5:52#襟野々,発,5:55#佐川,発,5:58#西佐川,発,6:02#土佐加茂,発,6:07#岡花,発,6:11#日下,発,6:14#小村神社前,発,6:17#波川,発,6:20#伊野,発,6:23#枝川,発,6:27#朝倉,発,6:31#高知商業前,発,6:35#旭,発,6:41#円行寺口,発,6:43#入明,発,6:46#高知,発,7:02#土佐一宮,発,7:07#土佐大津,発,7:12#後免,発,7:20#土佐山田,着,7:25#",
"3722D":"窪川,発,7:02#仁井田,発,7:07#六反地,発,7:10#影野,発,7:13#土佐久礼,発,7:26#安和,発,7:33#土佐新荘,発,7:37#須崎,発,7:41#大間,発,7:45#多ノ郷,発,7:48#吾桑,発,7:52#斗賀野,発,7:59#襟野々,発,8:02#佐川,発,8:05#西佐川,発,8:09#土佐加茂,発,8:14#岡花,発,8:18#日下,発,8:21#小村神社前,発,8:25#波川,発,8:28#伊野,発,8:35#枝川,発,8:38#朝倉,発,8:43#高知商業前,発,8:46#旭,発,8:49#円行寺口,発,8:52#入明,発,8:54#高知,着,8:57#",
"3726D":"須崎,発,9:12#大間,発,9:15#多ノ郷,発,9:18#吾桑,発,9:21#斗賀野,発,9:29#襟野々,発,9:32#佐川,発,9:35#西佐川,発,9:38#土佐加茂,発,9:42#岡花,発,9:46#日下,発,9:49#小村神社前,発,9:53#波川,発,9:56#伊野,発,10:02#枝川,発,10:06#朝倉,発,10:11#高知商業前,発,10:13#旭,発,10:18#円行寺口,発,10:21#入明,発,10:24#高知,着,10:26#",
"3730D":"須崎,発,10:13#大間,発,10:16#多ノ郷,発,10:18#吾桑,発,10:24#斗賀野,発,10:31#襟野々,発,10:34#佐川,発,10:37#西佐川,発,10:48#土佐加茂,発,11:00#岡花,発,11:04#日下,発,11:07#小村神社前,発,11:10#波川,発,11:13#伊野,発,11:17#枝川,発,11:20#朝倉,発,11:25#高知商業前,発,11:28#旭,発,11:34#円行寺口,発,11:37#入明,発,11:39#高知,着,11:41#",
"4212D":"阿波池田,発,6:12#佃,発,6:17#箸蔵,発,6:22#讃岐財田,発,6:34#黒川,発,6:38#塩入,発,6:45#琴平,着,6:51#",
"4214D":"大歩危,発,6:02#小歩危,発,6:10#阿波川口,発,6:15#祖谷口,発,6:19#三縄,発,6:24#阿波池田,着,6:28#",
"4218D":"阿波池田,発,6:38#佃,発,6:43#箸蔵,発,6:48#坪尻,発,6:56#讃岐財田,発,7:14#黒川,発,7:17#塩入,発,7:22#琴平,着,7:28#",
"4220D":"大歩危,発,7:09#小歩危,発,7:19#阿波川口,発,7:24#祖谷口,発,7:28#三縄,発,7:33#阿波池田,着,7:38#",
"4222D":"琴平,発,7:44#善通寺,発,7:53#金蔵寺,発,7:59#多度津,着,8:04#",
"4224D":"阿波池田,発,7:58#佃,発,8:05#箸蔵,発,8:10#坪尻,発,8:29#讃岐財田,発,8:42#黒川,発,8:46#塩入,発,8:52#琴平,着,8:58#",
"4226D":"土佐山田,発,7:04#新改,発,7:22#繁藤,発,7:35#角茂谷,発,7:39#土佐北川,発,7:50#大杉,発,7:56#土佐穴内,発,8:01#大田口,発,8:05#豊永,発,8:10#土佐岩原,発,8:23#大歩危,発,8:30#小歩危,発,8:42#阿波川口,発,8:47#祖谷口,発,8:51#三縄,発,8:56#阿波池田,着,9:01#",
"4228D":"高知,発,8:10#薊野,発,8:19#土佐一宮,発,8:22#布師田,発,8:25#土佐大津,発,8:28#後免,発,8:41#土佐長岡,発,8:44#山田西町,発,8:48#土佐山田,着,8:50#",
"4230D":"琴平,発,9:42#善通寺,発,9:51#金蔵寺,発,9:55#多度津,着,10:00#",
"4232D":"高知,発,10:45#薊野,発,10:48#土佐一宮,発,10:53#布師田,発,10:55#土佐大津,発,10:59#後免,発,11:05#土佐長岡,発,11:08#山田西町,発,11:12#土佐山田,着,11:14#",
"4234D":"大歩危,発,12:58#小歩危,発,13:13#阿波川口,発,13:18#祖谷口,発,13:22#三縄,発,13:29#阿波池田,着,13:34#",
"4236D":"阿波池田,発,13:36#佃,発,13:42#箸蔵,発,13:47#坪尻,発,13:53#讃岐財田,発,14:14#黒川,発,14:18#塩入,発,14:23#琴平,発,14:32#善通寺,発,14:38#金蔵寺,発,14:41#多度津,着,14:46#",
"4238D":"土佐山田,発,13:36#新改,発,13:46#繁藤,発,14:00#角茂谷,発,14:03#土佐北川,発,14:09#大杉,発,14:23#土佐穴内,発,14:28#大田口,発,14:32#豊永,発,14:37#土佐岩原,発,14:48#大歩危,発,15:17#小歩危,発,15:25#阿波川口,発,15:34#祖谷口,発,15:38#三縄,発,15:43#阿波池田,着,15:48#",
"4240D":"高知,発,13:45#薊野,発,13:48#土佐一宮,発,13:53#布師田,発,13:56#土佐大津,発,13:59#後免,発,14:05#土佐長岡,発,14:08#山田西町,発,14:12#土佐山田,着,14:14#",
"4242D":"阿波池田,発,16:35#佃,発,16:43#箸蔵,発,16:48#讃岐財田,発,17:08#黒川,発,17:12#塩入,発,17:17#琴平,着,17:23#",
"4244D":"高知,発,15:45#薊野,発,15:48#土佐一宮,発,15:53#布師田,発,15:56#土佐大津,発,16:03#後免,発,16:11#土佐長岡,発,16:15#山田西町,発,16:19#土佐山田,着,16:20#",
"4246D":"大歩危,発,17:42#小歩危,発,17:50#阿波川口,発,18:02#祖谷口,発,18:06#三縄,発,18:11#阿波池田,発,18:38#佃,発,18:44#箸蔵,発,18:51#讃岐財田,発,19:12#黒川,発,19:16#塩入,発,19:22#琴平,着,19:28#",
"4248D":"土佐山田,発,16:53#繁藤,発,17:12#角茂谷,発,17:16#土佐北川,発,17:19#大杉,発,17:25#土佐穴内,発,17:30#大田口,発,17:34#豊永,発,17:39#土佐岩原,発,17:48#大歩危,発,18:19#小歩危,発,18:26#阿波川口,発,18:43#祖谷口,発,18:47#三縄,発,18:52#阿波池田,着,18:57#",
"4252D":"高知,発,17:49#薊野,発,17:53#土佐一宮,発,17:57#布師田,発,17:59#土佐大津,発,18:03#後免,発,18:07#土佐長岡,発,18:11#山田西町,発,18:15#土佐山田,着,18:16#",
"4254D":"大歩危,発,19:50#小歩危,発,19:57#阿波川口,発,20:03#祖谷口,発,20:06#三縄,発,20:12#阿波池田,着,20:17#",
"4256D":"土佐山田,発,19:30#新改,発,19:40#繁藤,発,20:01#角茂谷,発,20:05#土佐北川,発,20:11#大杉,発,20:17#土佐穴内,発,20:22#大田口,発,20:26#豊永,発,20:32#土佐岩原,発,20:37#大歩危,発,20:52#小歩危,発,20:59#阿波川口,発,21:04#祖谷口,発,21:08#三縄,発,21:13#阿波池田,着,21:18#",
"4724D":"須崎,発,8:16#大間,発,8:19#多ノ郷,発,8:22#吾桑,発,8:26#斗賀野,発,8:34#襟野々,発,8:38#佐川,発,8:47#西佐川,発,8:50#土佐加茂,発,8:55#岡花,発,9:00#日下,発,9:03#小村神社前,発,9:06#波川,発,9:09#伊野,発,9:12#枝川,発,9:15#朝倉,発,9:20#高知商業前,発,9:23#旭,発,9:26#円行寺口,発,9:29#入明,発,9:31#高知,発,9:45#薊野,発,9:48#土佐一宮,発,9:53#布師田,発,9:55#土佐大津,発,9:59#後免,発,10:05#土佐長岡,発,10:08#山田西町,発,10:12#土佐山田,着,10:14#",
"4728D":"伊野,発,11:02#枝川,発,11:06#朝倉,発,11:11#高知商業前,発,11:13#旭,発,11:18#円行寺口,発,11:21#入明,発,11:24#高知,発,11:45#薊野,発,11:48#土佐一宮,発,11:53#布師田,発,11:56#土佐大津,発,11:59#後免,発,12:05#土佐長岡,発,12:08#山田西町,発,12:12#土佐山田,着,12:14#",
"4734D":"伊野,発,13:02#枝川,発,13:05#朝倉,発,13:10#高知商業前,発,13:13#旭,発,13:15#円行寺口,発,13:18#入明,発,13:20#高知,着,13:22#",
"4736D":"須崎,発,12:30#大間,発,12:33#多ノ郷,発,12:35#吾桑,発,12:39#斗賀野,発,12:46#襟野々,発,12:49#佐川,発,12:52#西佐川,発,12:55#土佐加茂,発,13:00#岡花,発,13:04#日下,発,13:07#小村神社前,発,13:10#波川,発,13:13#伊野,発,13:17#枝川,発,13:20#朝倉,発,13:25#高知商業前,発,13:28#旭,発,13:34#円行寺口,発,13:37#入明,発,13:39#高知,着,13:41#",
"4738D":"窪川,発,12:33#仁井田,発,12:38#六反地,発,12:42#影野,発,12:51#土佐久礼,発,13:02#安和,発,13:09#土佐新荘,発,13:13#須崎,発,13:17#大間,発,13:20#多ノ郷,発,13:25#吾桑,発,13:29#斗賀野,発,13:36#襟野々,発,13:39#佐川,発,13:43#西佐川,発,13:46#土佐加茂,発,13:51#岡花,発,13:55#日下,発,14:07#小村神社前,発,14:11#波川,発,14:14#伊野,発,14:17#枝川,発,14:20#朝倉,発,14:25#高知商業前,発,14:28#旭,発,14:34#円行寺口,発,14:37#入明,発,14:39#高知,発,14:45#薊野,発,14:48#土佐一宮,発,14:53#布師田,発,14:56#土佐大津,発,14:59#後免,発,15:05#土佐長岡,発,15:08#山田西町,発,15:12#土佐山田,着,15:14#",
"4740D":"須崎,発,14:00#大間,発,14:03#多ノ郷,発,14:05#吾桑,発,14:11#斗賀野,発,14:21#襟野々,発,14:24#佐川,発,14:28#西佐川,発,14:44#土佐加茂,発,14:49#岡花,発,14:53#日下,発,14:56#小村神社前,発,15:00#波川,発,15:04#伊野,発,15:17#枝川,発,15:20#朝倉,発,15:25#高知商業前,発,15:28#旭,発,15:34#円行寺口,発,15:37#入明,発,15:40#高知,着,15:42#",
"4742D":"伊野,発,16:02#枝川,発,16:05#朝倉,発,16:13#高知商業前,発,16:16#旭,発,16:18#円行寺口,発,16:21#入明,発,16:23#高知,着,16:25#",
"4748D":"伊野,発,17:26#枝川,発,17:29#朝倉,発,17:33#高知商業前,発,17:36#旭,発,17:39#円行寺口,発,17:41#入明,発,17:43#高知,着,17:45#",
"4752D":"窪川,発,16:37#仁井田,発,16:42#六反地,発,16:45#影野,発,16:51#土佐久礼,発,17:02#安和,発,17:09#土佐新荘,発,17:13#須崎,着,17:15#",
"4758D":"伊野,発,19:22#枝川,発,19:25#朝倉,発,19:30#高知商業前,発,19:33#旭,発,19:36#円行寺口,発,19:39#入明,発,19:42#高知,着,19:44#",
"4760D":"窪川,発,18:45#仁井田,発,18:51#六反地,発,18:54#影野,発,18:57#土佐久礼,発,19:10#安和,発,19:17#土佐新荘,発,19:20#須崎,発,19:30#大間,発,19:33#多ノ郷,発,19:35#吾桑,発,19:41#斗賀野,発,19:48#襟野々,発,19:51#佐川,発,19:54#西佐川,発,20:07#土佐加茂,発,20:12#岡花,発,20:15#日下,発,20:18#小村神社前,発,20:22#波川,発,20:25#伊野,発,20:30#枝川,発,20:33#朝倉,発,20:38#高知商業前,発,20:40#旭,発,20:44#円行寺口,発,20:47#入明,発,20:49#高知,着,20:51#",
"4762D":"伊野,発,21:33#枝川,発,21:36#朝倉,発,21:40#高知商業前,発,21:43#旭,発,21:46#円行寺口,発,21:48#入明,発,21:50#高知,発,22:01#薊野,発,22:04#土佐一宮,発,22:07#布師田,発,22:10#土佐大津,発,22:16#後免,発,22:20#土佐長岡,発,22:24#山田西町,発,22:27#土佐山田,着,22:28#",
"5210M":"琴平,発,6:05#善通寺,発,6:11#金蔵寺,発,6:14#多度津,発,6:20#讃岐塩屋,発,6:24#丸亀,発,6:27#宇多津,発,6:31#坂出,発,6:42#八十場,発,6:46#鴨川,発,6:53#讃岐府中,発,6:57#国分,発,7:00#端岡,発,7:03#鬼無,発,7:07#香西,発,7:10#高松,着,7:15#",
"5212M":"琴平,発,6:42#善通寺,発,6:48#金蔵寺,発,6:52#多度津,着,6:56#",
"5216M":"琴平,発,7:17#善通寺,発,7:24#金蔵寺,発,7:27#多度津,発,7:33#讃岐塩屋,発,7:37#丸亀,発,7:40#宇多津,発,7:44#坂出,発,8:00#八十場,発,8:04#鴨川,発,8:07#讃岐府中,発,8:10#国分,発,8:14#端岡,発,8:17#鬼無,発,8:21#香西,発,8:25#高松,着,8:29#",
"5218M":"琴平,発,7:38#善通寺,発,7:45#金蔵寺,発,7:49#多度津,発,8:05#讃岐塩屋,発,8:09#丸亀,発,8:13#宇多津,発,8:17#坂出,発,8:38#八十場,発,8:41#鴨川,発,8:44#讃岐府中,発,8:48#国分,発,8:51#端岡,発,8:54#鬼無,発,8:58#香西,発,9:01#高松,着,9:06#",
"5220M":"琴平,発,8:06#善通寺,発,8:12#金蔵寺,発,8:15#多度津,着,8:19#",
"5226M":"琴平,発,10:05#善通寺,発,10:11#金蔵寺,発,10:14#多度津,発,10:24#讃岐塩屋,発,10:27#丸亀,発,10:30#宇多津,発,10:34#坂出,発,10:39#八十場,発,10:43#鴨川,発,10:46#讃岐府中,発,10:49#国分,発,10:52#端岡,発,10:55#鬼無,発,10:59#香西,発,11:02#高松,着,11:07#",
"5228M":"琴平,発,10:18#善通寺,発,10:27#金蔵寺,発,10:32#多度津,着,10:37#",
"5232M":"琴平,発,12:13#善通寺,発,12:19#金蔵寺,発,12:22#多度津,発,12:30#讃岐塩屋,発,12:33#丸亀,発,12:36#宇多津,発,12:40#坂出,発,12:53#八十場,発,12:57#鴨川,発,13:00#讃岐府中,発,13:03#国分,発,13:06#端岡,発,13:09#鬼無,発,13:13#香西,発,13:17#高松,着,13:21#",
"5234M":"琴平,発,13:13#善通寺,発,13:19#金蔵寺,発,13:22#多度津,発,13:30#讃岐塩屋,発,13:33#丸亀,発,13:36#宇多津,発,13:40#坂出,発,13:53#八十場,発,13:57#鴨川,発,14:00#讃岐府中,発,14:03#国分,発,14:06#端岡,発,14:09#鬼無,発,14:13#香西,発,14:17#高松,着,14:21#",
"5236M":"琴平,発,14:13#善通寺,発,14:19#金蔵寺,発,14:22#多度津,発,14:30#讃岐塩屋,発,14:33#丸亀,発,14:36#宇多津,発,14:40#坂出,発,14:53#八十場,発,14:57#鴨川,発,15:00#讃岐府中,発,15:03#国分,発,15:06#端岡,発,15:09#鬼無,発,15:13#香西,発,15:17#高松,着,15:21#",
"5238M":"琴平,発,15:13#善通寺,発,15:19#金蔵寺,発,15:22#多度津,発,15:30#讃岐塩屋,発,15:33#丸亀,発,15:36#宇多津,発,15:40#坂出,発,15:53#八十場,発,15:57#鴨川,発,16:00#讃岐府中,発,16:03#国分,発,16:06#端岡,発,16:09#鬼無,発,16:13#香西,発,16:17#高松,着,16:21#",
"5240M":"琴平,発,15:32#善通寺,発,15:37#金蔵寺,発,15:41#多度津,発,15:47#讃岐塩屋,発,15:50#丸亀,発,15:53#宇多津,発,15:57#坂出,発,16:02#八十場,発,16:05#鴨川,発,16:09#讃岐府中,発,16:12#国分,発,16:15#端岡,発,16:18#鬼無,発,16:22#香西,発,16:26#高松,着,16:30#",
"5242M":"琴平,発,16:13#善通寺,発,16:19#金蔵寺,発,16:22#多度津,発,16:30#讃岐塩屋,発,16:33#丸亀,発,16:36#宇多津,発,16:40#坂出,発,16:53#八十場,発,16:57#鴨川,発,17:00#讃岐府中,発,17:03#国分,発,17:06#端岡,発,17:09#鬼無,発,17:13#香西,発,17:17#高松,着,17:21#",
"5244M":"琴平,発,16:41#善通寺,発,16:56#金蔵寺,発,16:59#多度津,発,17:09#讃岐塩屋,発,17:12#丸亀,発,17:15#宇多津,発,17:19#坂出,発,17:25#八十場,発,17:29#鴨川,発,17:32#讃岐府中,発,17:35#国分,発,17:38#端岡,発,17:41#鬼無,発,17:45#香西,発,17:48#高松,着,17:53#",
"5252M":"琴平,発,20:17#善通寺,発,20:23#金蔵寺,発,20:27#多度津,発,20:33#讃岐塩屋,発,20:36#丸亀,発,20:39#宇多津,発,20:42#坂出,発,20:47#端岡,発,20:57#高松,着,21:04#",
"5254M":"琴平,発,21:15#善通寺,発,21:21#金蔵寺,発,21:24#多度津,発,21:35#讃岐塩屋,発,21:38#丸亀,発,21:41#宇多津,発,21:45#坂出,発,21:57#八十場,発,22:01#鴨川,発,22:04#讃岐府中,発,22:08#国分,発,22:11#端岡,発,22:15#鬼無,発,22:19#香西,発,22:22#高松,着,22:27#",
"5260M":"琴平,発,22:34#善通寺,発,22:39#金蔵寺,発,22:42#多度津,着,22:46#",
"5812D":"高知,発,7:46#薊野,発,7:49#土佐一宮,発,7:54#布師田,発,7:57#土佐大津,発,8:00#後免,着,8:04#",
"5814D":"高知,発,8:30#薊野,発,8:33#土佐一宮,発,8:36#布師田,発,8:39#土佐大津,発,8:42#後免,着,8:46#",
"5816D":"高知,発,15:15#薊野,発,15:20#土佐一宮,発,15:24#布師田,発,15:27#土佐大津,発,15:34#後免,着,15:37#",
"5852D":"高知,発,9:15#薊野,発,9:19#土佐一宮,発,9:24#布師田,発,9:26#土佐大津,発,9:35#後免,着,9:39#",
"5854D":"高知,発,10:15#薊野,発,10:20#土佐一宮,発,10:24#布師田,発,10:27#土佐大津,発,10:34#後免,着,10:39#",
"5856D":"高知,発,11:15#薊野,発,11:20#土佐一宮,発,11:28#布師田,発,11:30#土佐大津,発,11:34#後免,着,11:39#",
"5858D":"高知,発,12:15#薊野,発,12:20#土佐一宮,発,12:27#布師田,発,12:30#土佐大津,発,12:34#後免,着,12:39#",
"5860D":"高知,発,13:15#薊野,発,13:20#土佐一宮,発,13:24#布師田,発,13:27#土佐大津,発,13:34#後免,着,13:38#",
"5862D":"高知,発,14:15#薊野,発,14:20#土佐一宮,発,14:24#布師田,発,14:27#土佐大津,発,14:34#後免,着,14:38#",
"5872D":"高知,発,19:05#薊野,発,19:09#土佐一宮,発,19:12#布師田,発,19:14#土佐大津,発,19:17#後免,着,19:21#",
"5874D":"高知,発,19:47#薊野,発,19:51#土佐一宮,発,19:56#布師田,発,19:59#土佐大津,発,20:02#後免,着,20:05#",
"5876D":"高知,発,20:15#薊野,発,20:18#土佐一宮,発,20:21#布師田,発,20:24#土佐大津,発,20:29#後免,着,20:33#",
"5880D":"高知,発,21:25#薊野,発,21:28#土佐一宮,発,21:31#布師田,発,21:34#土佐大津,発,21:43#後免,着,21:46#",
"5882D":"高知,発,22:36#薊野,発,22:40#土佐一宮,発,22:45#布師田,発,22:47#土佐大津,発,22:50#後免,着,22:54#",
"6222D":"琴平,発,8:43#善通寺,発,8:56#金蔵寺,発,9:00#多度津,着,9:04#",
"8022D":"大歩危,発,14:19#小歩危,発,14:38#阿波川口,発,15:01#阿波池田,発,15:25#坪尻,発,15:51#讃岐財田,発,16:15#琴平,発,16:59#善通寺,発,17:13#多度津,着,17:21#",
"8074D":"窪川,発,13:10#土佐久礼,発,13:50#安和,発,14:03#須崎,発,14:31#佐川,発,15:00#西佐川,発,15:09#伊野,発,15:32#朝倉,発,15:43#旭,発,16:02#高知,着,16:09#",
"8082D":"高知,発,12:00#土佐大津,発,12:09#後免,着,12:14#",
"213D":"土佐山田,発,7:27#山田西町,発,7:29#土佐長岡,発,7:32#後免,発,7:43#土佐大津,発,7:48#布師田,発,7:51#土佐一宮,発,7:54#薊野,発,7:58#高知,着,8:00#",
"217D":"土佐山田,発,8:15#山田西町,発,8:17#土佐長岡,発,8:20#後免,発,8:24#土佐大津,発,8:28#布師田,発,8:31#土佐一宮,発,8:36#薊野,発,8:39#高知,着,8:42#",
"219D":"土佐山田,発,8:57#山田西町,発,8:59#土佐長岡,発,9:02#後免,発,9:12#土佐大津,発,9:18#布師田,発,9:21#土佐一宮,発,9:24#薊野,発,9:27#高知,着,9:30#",
"231D":"土佐山田,発,13:33#山田西町,発,13:35#土佐長岡,発,13:38#後免,発,13:43#土佐大津,発,13:47#布師田,発,13:50#土佐一宮,発,13:53#薊野,発,13:56#高知,着,13:59#",
"715D":"土佐山田,発,6:35#山田西町,発,6:37#土佐長岡,発,6:40#後免,発,6:43#土佐大津,発,6:47#布師田,発,6:50#土佐一宮,発,6:53#薊野,発,6:56#高知,発,7:07#入明,発,7:10#円行寺口,発,7:12#旭,発,7:17#高知商業前,発,7:20#朝倉,発,7:29#枝川,発,7:34#伊野,発,7:53#波川,発,7:56#小村神社前,発,8:00#日下,発,8:03#岡花,発,8:06#土佐加茂,発,8:14#西佐川,発,8:20#佐川,発,8:26#襟野々,発,8:29#斗賀野,発,8:34#吾桑,発,8:40#多ノ郷,発,8:44#大間,発,8:46#須崎,着,8:49#",
"717D":"土佐山田,発,7:12#山田西町,発,7:14#土佐長岡,発,7:17#後免,発,7:21#土佐大津,発,7:26#布師田,発,7:29#土佐一宮,発,7:32#薊野,発,7:36#高知,発,7:45#入明,発,7:49#円行寺口,発,7:51#旭,発,7:57#高知商業前,発,8:00#朝倉,発,8:03#枝川,発,8:08#伊野,着,8:11#",
"719D":"高知,発,8:25#入明,発,8:28#円行寺口,発,8:30#旭,発,8:35#高知商業前,発,8:38#朝倉,発,8:42#枝川,発,8:47#伊野,発,8:51#波川,発,8:54#小村神社前,発,8:57#日下,発,9:03#岡花,発,9:06#土佐加茂,発,9:11#西佐川,発,9:17#佐川,発,9:21#襟野々,発,9:23#斗賀野,発,9:28#吾桑,発,9:35#多ノ郷,発,9:39#大間,発,9:41#須崎,着,9:44#",
"731D":"高知,発,13:06#入明,発,13:09#円行寺口,発,13:11#旭,発,13:15#高知商業前,発,13:18#朝倉,発,13:25#枝川,発,13:29#伊野,発,13:32#波川,発,13:35#小村神社前,発,13:38#日下,発,13:42#岡花,発,13:45#土佐加茂,発,13:51#西佐川,発,13:56#佐川,発,13:59#襟野々,発,14:02#斗賀野,発,14:05#吾桑,発,14:11#多ノ郷,発,14:15#大間,発,14:17#須崎,着,14:20#",
"733D":"高知,発,14:06#入明,発,14:09#円行寺口,発,14:11#旭,発,14:15#高知商業前,発,14:18#朝倉,発,14:25#枝川,発,14:29#伊野,発,14:32#波川,発,14:35#小村神社前,発,14:38#日下,発,14:56#岡花,発,14:59#土佐加茂,発,15:03#西佐川,発,15:09#佐川,発,15:12#襟野々,発,15:15#斗賀野,発,15:18#吾桑,発,15:24#多ノ郷,発,15:28#大間,発,15:30#須崎,着,15:32#",
"735D":"高知,発,15:06#入明,発,15:09#円行寺口,発,15:11#旭,発,15:15#高知商業前,発,15:18#朝倉,発,15:25#枝川,発,15:29#伊野,発,15:32#波川,発,15:35#小村神社前,発,15:38#日下,発,15:42#岡花,発,15:45#土佐加茂,発,15:49#西佐川,発,15:54#佐川,発,15:57#襟野々,発,16:00#斗賀野,発,16:06#吾桑,発,16:12#多ノ郷,発,16:16#大間,発,16:18#須崎,着,16:20#",
"739D":"高知,発,15:55#入明,発,15:58#円行寺口,発,16:00#旭,発,16:06#高知商業前,発,16:09#朝倉,発,16:12#枝川,発,16:16#伊野,発,16:19#波川,発,16:22#小村神社前,発,16:25#日下,発,16:32#岡花,発,16:35#土佐加茂,発,16:43#西佐川,発,16:48#佐川,発,16:51#襟野々,発,16:54#斗賀野,発,16:57#吾桑,発,17:03#多ノ郷,発,17:07#大間,発,17:09#須崎,着,17:12#",
"741D":"高知,発,16:27#入明,発,16:29#円行寺口,発,16:31#旭,発,16:34#高知商業前,発,16:36#朝倉,発,16:39#枝川,発,16:43#伊野,発,16:51#波川,発,16:54#小村神社前,発,16:57#日下,発,17:01#岡花,発,17:04#土佐加茂,発,17:07#西佐川,発,17:19#佐川,発,17:22#襟野々,発,17:25#斗賀野,発,17:28#吾桑,発,17:34#多ノ郷,発,17:38#大間,発,17:40#須崎,着,17:42#",
"745D":"高知,発,17:27#入明,発,17:31#円行寺口,発,17:33#旭,発,17:39#高知商業前,発,17:41#朝倉,発,17:44#枝川,発,17:48#伊野,発,17:54#波川,発,17:57#小村神社前,発,18:01#日下,発,18:18#岡花,発,18:22#土佐加茂,発,18:25#西佐川,発,18:31#佐川,発,18:34#襟野々,発,18:37#斗賀野,発,18:40#吾桑,発,18:46#多ノ郷,発,18:50#大間,発,18:52#須崎,発,18:55#土佐新荘,発,18:58#安和,発,19:02#土佐久礼,発,19:10#影野,発,19:31#六反地,発,19:33#仁井田,発,19:36#窪川,着,19:41#",
"747D":"土佐山田,発,17:33#山田西町,発,17:35#土佐長岡,発,17:38#後免,発,17:41#土佐大津,発,17:48#布師田,発,17:51#土佐一宮,発,17:56#薊野,発,18:00#高知,発,18:15#入明,発,18:18#円行寺口,発,18:20#旭,発,18:25#高知商業前,発,18:27#朝倉,発,18:36#枝川,発,18:40#伊野,発,18:44#波川,発,18:47#小村神社前,発,18:50#日下,発,18:53#岡花,発,18:56#土佐加茂,発,19:00#西佐川,発,19:05#佐川,発,19:09#襟野々,発,19:11#斗賀野,発,19:14#吾桑,発,19:20#多ノ郷,発,19:24#大間,発,19:26#須崎,着,19:29#",
"751D":"土佐山田,発,18:30#山田西町,発,18:32#土佐長岡,発,18:35#後免,発,18:38#土佐大津,発,18:44#布師田,発,18:47#土佐一宮,発,18:50#薊野,発,18:56#高知,発,19:06#入明,発,19:09#円行寺口,発,19:12#旭,発,19:17#高知商業前,発,19:20#朝倉,発,19:30#枝川,発,19:35#伊野,発,19:39#波川,発,19:42#小村神社前,発,19:45#日下,発,19:48#岡花,発,19:51#土佐加茂,発,19:55#西佐川,発,20:05#佐川,発,20:08#襟野々,発,20:11#斗賀野,発,20:14#吾桑,発,20:20#多ノ郷,発,20:24#大間,発,20:26#須崎,着,20:29#",
"753D":"土佐山田,発,19:23#山田西町,発,19:25#土佐長岡,発,19:28#後免,発,19:43#土佐大津,発,19:51#布師田,発,19:54#土佐一宮,発,19:56#薊野,発,19:59#高知,発,20:06#入明,発,20:08#円行寺口,発,20:11#旭,発,20:14#高知商業前,発,20:16#朝倉,発,20:21#枝川,発,20:26#伊野,発,20:30#波川,発,20:33#小村神社前,発,20:36#日下,発,20:39#岡花,発,20:42#土佐加茂,発,20:46#西佐川,発,20:51#佐川,発,20:54#襟野々,発,20:57#斗賀野,発,21:00#吾桑,発,21:06#多ノ郷,発,21:10#大間,発,21:12#須崎,着,21:15#",
"1213M":"高松,発,5:42#香西,発,5:46#鬼無,発,5:50#端岡,発,5:54#国分,発,5:57#讃岐府中,発,6:00#鴨川,発,6:04#八十場,発,6:07#坂出,発,6:25#宇多津,発,6:30#丸亀,発,6:33#讃岐塩屋,発,6:36#多度津,発,6:40#金蔵寺,発,6:45#善通寺,発,6:48#琴平,着,6:54#",
"1219M":"高松,発,7:10#香西,発,7:15#鬼無,発,7:19#端岡,発,7:23#国分,発,7:26#讃岐府中,発,7:30#鴨川,発,7:33#八十場,発,7:36#坂出,発,7:39#宇多津,発,7:51#丸亀,発,7:55#讃岐塩屋,発,7:58#多度津,発,8:10#金蔵寺,発,8:15#善通寺,発,8:18#琴平,着,8:24#",
"1221M":"高松,発,7:55#香西,発,8:00#鬼無,発,8:03#端岡,発,8:10#国分,発,8:14#讃岐府中,発,8:17#鴨川,発,8:20#八十場,発,8:23#坂出,発,8:26#宇多津,発,8:31#丸亀,発,8:34#讃岐塩屋,発,8:37#多度津,発,8:41#金蔵寺,発,8:48#善通寺,発,8:51#琴平,着,8:56#",
"1227M":"高松,発,9:25#香西,発,9:30#鬼無,発,9:34#端岡,発,9:50#国分,発,9:53#讃岐府中,発,9:56#鴨川,発,10:05#八十場,発,10:08#坂出,発,10:12#宇多津,発,10:17#丸亀,発,10:20#讃岐塩屋,発,10:23#多度津,発,10:28#金蔵寺,発,10:32#善通寺,発,10:35#琴平,着,10:41#",
"1243M":"高松,発,16:25#香西,発,16:29#鬼無,発,16:32#端岡,発,16:36#国分,発,16:39#讃岐府中,発,16:42#鴨川,発,16:45#八十場,発,16:47#坂出,発,16:51#宇多津,発,16:56#丸亀,発,16:59#讃岐塩屋,発,17:01#多度津,発,17:05#金蔵寺,発,17:10#善通寺,発,17:14#琴平,着,17:19#",
"1245M":"高松,発,17:25#香西,発,17:29#鬼無,発,17:32#端岡,発,17:36#国分,発,17:39#讃岐府中,発,17:42#鴨川,発,17:45#八十場,発,17:47#坂出,発,17:51#宇多津,発,17:56#丸亀,発,17:59#讃岐塩屋,発,18:02#多度津,発,18:05#金蔵寺,発,18:10#善通寺,発,18:13#琴平,着,18:18#",
"1247M":"高松,発,17:58#香西,発,18:03#鬼無,発,18:06#端岡,発,18:10#国分,発,18:13#讃岐府中,発,18:16#鴨川,発,18:23#八十場,発,18:25#坂出,発,18:29#宇多津,発,18:34#丸亀,発,18:37#讃岐塩屋,発,18:39#多度津,発,18:43#金蔵寺,発,18:48#善通寺,発,18:52#琴平,着,18:57#",
"1263M":"高松,発,22:08#香西,発,22:13#鬼無,発,22:16#端岡,発,22:20#国分,発,22:23#讃岐府中,発,22:26#鴨川,発,22:33#八十場,発,22:36#坂出,発,22:39#宇多津,発,22:45#丸亀,発,22:48#讃岐塩屋,発,22:51#多度津,着,22:55#",
"2001D":"高松,発,6:04#坂出,発,6:18#丸亀,発,6:25#多度津,発,6:30#善通寺,発,6:35#琴平,発,6:40#阿波池田,発,7:06#大歩危,発,7:24#大杉,発,7:44#土佐山田,発,8:04#後免,発,8:10#高知,発,8:20#旭,発,8:24#朝倉,発,8:28#伊野,発,8:33#佐川,発,8:47#須崎,発,9:01#土佐久礼,発,9:11#窪川,発,9:27#土佐佐賀,発,9:45#土佐上川口,発,9:53#土佐入野,発,9:57#中村,着,10:04#",
"2003D":"高松,発,8:25#坂出,発,8:40#丸亀,発,8:46#多度津,発,8:50#善通寺,発,8:55#琴平,発,9:01#阿波池田,発,9:24#大歩危,発,9:42#大杉,発,10:04#土佐山田,発,10:25#後免,発,10:30#高知,着,10:37#",
"2071D":"高知,発,9:51#伊野,発,10:02#佐川,発,10:15#須崎,発,10:29#土佐久礼,発,10:40#窪川,発,10:58#土佐佐賀,発,11:16#土佐入野,発,11:27#中村,着,11:33#",
"2073D":"高知,発,11:49#旭,発,11:53#朝倉,発,11:57#伊野,発,12:02#佐川,発,12:16#須崎,発,12:30#土佐久礼,発,12:41#窪川,発,12:58#土佐佐賀,発,13:16#土佐入野,発,13:27#中村,着,13:34#",
"2075D":"高知,発,13:49#旭,発,13:53#朝倉,発,13:57#伊野,発,14:02#佐川,発,14:17#須崎,発,14:31#土佐久礼,発,14:41#窪川,発,14:58#土佐佐賀,発,15:16#土佐上川口,発,15:24#土佐入野,発,15:29#中村,着,15:35#",
"2077D":"高知,発,15:49#旭,発,15:53#朝倉,発,15:57#伊野,発,16:02#佐川,発,16:16#須崎,発,16:30#土佐久礼,発,16:41#窪川,発,17:01#土佐佐賀,発,17:24#土佐入野,発,17:35#中村,着,17:41#",
"2079D":"高知,発,17:11#旭,発,17:16#朝倉,発,17:20#伊野,発,17:25#佐川,発,17:39#多ノ郷,発,17:51#須崎,発,17:55#土佐久礼,発,18:06#窪川,発,18:27#土佐佐賀,発,18:45#土佐入野,発,19:00#中村,着,19:06#",
"2081D":"高知,発,19:01#旭,発,19:07#朝倉,発,19:12#伊野,発,19:18#佐川,発,19:32#多ノ郷,発,19:44#須崎,発,19:49#土佐久礼,発,20:00#窪川,発,20:19#土佐佐賀,発,20:42#土佐入野,発,20:53#中村,着,20:59#",
"2083D":"高知,発,21:18#旭,発,21:23#朝倉,発,21:27#伊野,発,21:33#佐川,発,21:46#多ノ郷,発,21:58#須崎,発,22:02#土佐久礼,発,22:12#窪川,発,22:28#土佐佐賀,発,22:46#土佐入野,発,22:57#中村,着,23:04#",
"3215D":"土佐山田,発,7:42#山田西町,発,7:44#土佐長岡,発,7:47#後免,発,7:54#土佐大津,発,8:07#布師田,発,8:10#土佐一宮,発,8:16#薊野,発,8:20#高知,着,8:23#",
"3247D":"土佐山田,発,19:00#山田西町,発,19:02#土佐長岡,発,19:05#後免,発,19:08#土佐大津,発,19:17#布師田,発,19:20#土佐一宮,発,19:23#薊野,発,19:27#高知,着,19:29#",
"3259D":"土佐山田,発,20:50#山田西町,発,20:52#土佐長岡,発,20:55#後免,発,20:59#土佐大津,発,21:03#布師田,発,21:06#土佐一宮,発,21:08#薊野,発,21:12#高知,着,21:14#",
"3721D":"高知,発,9:34#入明,発,9:37#円行寺口,発,9:39#旭,発,9:42#高知商業前,発,9:44#朝倉,発,9:47#枝川,発,9:52#伊野,発,10:08#波川,発,10:11#小村神社前,発,10:15#日下,発,10:18#岡花,発,10:21#土佐加茂,発,10:25#西佐川,発,10:31#佐川,発,10:43#襟野々,発,10:45#斗賀野,発,10:49#吾桑,発,10:55#多ノ郷,発,10:59#大間,発,11:02#須崎,着,11:05#",
"3751D":"須崎,発,20:37#土佐新荘,発,20:40#安和,発,20:44#土佐久礼,発,20:52#影野,発,21:06#六反地,発,21:08#仁井田,発,21:11#窪川,着,21:16#",
"3757D":"土佐山田,発,21:23#山田西町,発,21:25#土佐長岡,発,21:28#後免,発,21:39#土佐大津,発,21:43#布師田,発,21:46#土佐一宮,発,21:49#薊野,発,21:51#高知,発,22:06#入明,発,22:09#円行寺口,発,22:12#旭,発,22:14#高知商業前,発,22:17#朝倉,発,22:20#枝川,発,22:24#伊野,発,22:28#波川,発,22:31#小村神社前,発,22:34#日下,発,22:37#岡花,発,22:40#土佐加茂,発,22:44#西佐川,発,22:50#佐川,発,22:53#襟野々,発,22:56#斗賀野,発,22:59#吾桑,発,23:05#多ノ郷,発,23:09#大間,発,23:11#須崎,着,23:13#",
"3759D":"高知,発,22:52#入明,発,22:55#円行寺口,発,22:57#旭,発,23:00#高知商業前,発,23:02#朝倉,発,23:05#枝川,発,23:10#伊野,着,23:12#",
"4211D":"阿波池田,発,5:33#三縄,発,5:38#祖谷口,発,5:43#阿波川口,発,5:49#小歩危,発,5:55#大歩危,発,6:02#土佐岩原,発,6:10#豊永,発,6:15#大田口,発,6:20#土佐穴内,発,6:24#大杉,発,6:31#土佐北川,発,6:38#角茂谷,発,6:41#繁藤,発,6:45#土佐山田,着,6:57#",
"4221D":"阿波池田,発,7:45#三縄,発,7:50#祖谷口,発,7:55#阿波川口,発,8:02#小歩危,発,8:08#大歩危,発,8:15#土佐岩原,発,8:23#豊永,発,8:28#大田口,発,8:38#土佐穴内,発,8:42#大杉,発,8:47#土佐北川,発,8:54#角茂谷,発,8:58#繁藤,発,9:01#新改,発,9:13#土佐山田,発,9:33#山田西町,発,9:35#土佐長岡,発,9:38#後免,発,9:43#土佐大津,発,9:47#布師田,発,9:50#土佐一宮,発,9:53#薊野,発,9:56#高知,着,9:59#",
"4223D":"琴平,発,6:58#塩入,発,7:05#黒川,発,7:10#讃岐財田,発,7:26#箸蔵,発,7:38#佃,発,7:43#阿波池田,着,7:48#",
"4225D":"阿波池田,発,12:11#三縄,発,12:19#祖谷口,発,12:24#阿波川口,発,12:28#小歩危,発,12:44#大歩危,着,12:50#",
"4227D":"多度津,発,11:39#金蔵寺,発,11:44#善通寺,発,11:57#琴平,発,12:03#塩入,発,12:10#黒川,発,12:14#讃岐財田,発,12:18#坪尻,発,12:34#箸蔵,発,12:38#佃,発,12:43#阿波池田,着,12:48#",
"4229D":"土佐山田,発,12:33#山田西町,発,12:35#土佐長岡,発,12:38#後免,発,12:43#土佐大津,発,12:47#布師田,発,12:50#土佐一宮,発,12:53#薊野,発,12:56#高知,着,12:59#",
"4233D":"土佐山田,発,14:33#山田西町,発,14:35#土佐長岡,発,14:38#後免,発,14:43#土佐大津,発,14:47#布師田,発,14:50#土佐一宮,発,14:53#薊野,発,14:56#高知,着,14:59#",
"4235D":"土佐山田,発,15:33#山田西町,発,15:35#土佐長岡,発,15:38#後免,発,15:43#土佐大津,発,15:47#布師田,発,15:50#土佐一宮,発,15:53#薊野,発,15:56#高知,着,15:59#",
"4237D":"阿波池田,発,13:49#三縄,発,13:54#祖谷口,発,13:59#阿波川口,発,14:03#小歩危,発,14:11#大歩危,発,14:22#土佐岩原,発,14:29#豊永,発,14:37#大田口,発,14:51#土佐穴内,発,14:54#大杉,発,15:19#土佐北川,発,15:26#角茂谷,発,15:30#繁藤,発,15:37#新改,発,15:48#土佐山田,発,16:03#山田西町,発,16:05#土佐長岡,発,16:08#後免,発,16:21#土佐大津,発,16:27#布師田,発,16:30#土佐一宮,発,16:38#薊野,発,16:41#高知,着,16:44#",
"4239D":"多度津,発,13:58#金蔵寺,発,14:03#善通寺,発,14:07#琴平,発,14:13#塩入,発,14:23#黒川,発,14:28#讃岐財田,発,14:39#坪尻,発,14:53#箸蔵,発,14:57#佃,発,15:02#阿波池田,着,15:07#",
"4241D":"土佐山田,発,16:30#山田西町,発,16:32#土佐長岡,発,16:35#後免,発,16:43#土佐大津,発,16:47#布師田,発,16:50#土佐一宮,発,16:53#薊野,発,16:56#高知,着,16:59#",
"4243D":"阿波池田,発,16:54#三縄,発,16:59#祖谷口,発,17:05#阿波川口,発,17:11#小歩危,発,17:17#大歩危,着,17:23#",
"4245D":"多度津,発,15:58#金蔵寺,発,16:03#善通寺,発,16:07#琴平,発,16:14#塩入,発,16:24#黒川,発,16:29#讃岐財田,発,16:37#坪尻,発,16:53#箸蔵,発,16:57#佃,発,17:02#阿波池田,着,17:07#",
"4249D":"阿波池田,発,17:48#三縄,発,17:53#祖谷口,発,17:58#阿波川口,発,18:02#小歩危,発,18:11#大歩危,発,18:19#土佐岩原,発,18:26#豊永,発,18:31#大田口,発,18:36#土佐穴内,発,18:40#大杉,発,18:45#土佐北川,発,18:52#角茂谷,発,18:56#繁藤,発,19:02#新改,発,19:14#土佐山田,着,19:21#",
"4251D":"琴平,発,18:20#塩入,発,18:27#黒川,発,18:32#讃岐財田,発,18:38#箸蔵,発,18:51#佃,発,18:56#阿波池田,着,19:01#",
"4253D":"阿波池田,発,19:10#三縄,発,19:15#祖谷口,発,19:20#阿波川口,発,19:24#小歩危,発,19:35#大歩危,着,19:42#",
"4255D":"琴平,発,19:46#塩入,発,19:54#黒川,発,19:58#讃岐財田,発,20:04#箸蔵,発,20:16#佃,発,20:21#阿波池田,着,20:26#",
"4257D":"土佐山田,発,19:47#山田西町,発,19:49#土佐長岡,発,19:52#後免,発,19:55#土佐大津,発,20:02#布師田,発,20:05#土佐一宮,発,20:08#薊野,発,20:11#高知,着,20:13#",
"4261D":"土佐山田,発,22:43#山田西町,発,22:45#土佐長岡,発,22:48#後免,発,22:54#土佐大津,発,22:58#布師田,発,23:01#土佐一宮,発,23:04#薊野,発,23:07#高知,着,23:10#",
"4263M":"多度津,発,23:03#金蔵寺,発,23:07#善通寺,発,23:11#琴平,着,23:16#",
"4711D":"高知,発,5:39#入明,発,5:42#円行寺口,発,5:45#旭,発,5:50#高知商業前,発,5:52#朝倉,発,5:55#枝川,発,5:59#伊野,発,6:02#波川,発,6:05#小村神社前,発,6:08#日下,発,6:18#岡花,発,6:21#土佐加茂,発,6:25#西佐川,発,6:34#佐川,発,6:38#襟野々,発,6:41#斗賀野,発,6:50#吾桑,発,6:56#多ノ郷,発,7:03#大間,発,7:05#須崎,発,7:12#土佐新荘,発,7:15#安和,発,7:19#土佐久礼,発,7:30#影野,発,7:48#六反地,発,7:51#仁井田,発,7:54#窪川,着,7:59#",
"4713D":"土佐山田,発,5:50#山田西町,発,5:52#土佐長岡,発,5:55#後免,発,6:08#土佐大津,発,6:15#布師田,発,6:18#土佐一宮,発,6:20#薊野,発,6:23#高知,発,6:31#入明,発,6:35#円行寺口,発,6:37#旭,発,6:40#高知商業前,発,6:43#朝倉,発,6:45#枝川,発,6:50#伊野,発,6:56#波川,発,6:59#小村神社前,発,7:02#日下,発,7:13#岡花,発,7:17#土佐加茂,発,7:21#西佐川,発,7:32#佐川,発,7:35#襟野々,発,7:39#斗賀野,発,7:42#吾桑,発,7:52#多ノ郷,発,7:57#大間,発,8:00#須崎,着,8:03#",
"4723D":"高知,発,10:27#入明,発,10:30#円行寺口,発,10:33#旭,発,10:36#高知商業前,発,10:38#朝倉,発,10:41#枝川,発,10:45#伊野,着,10:48#",
"4725D":"土佐山田,発,10:33#山田西町,発,10:35#土佐長岡,発,10:38#後免,発,10:43#土佐大津,発,10:47#布師田,発,10:50#土佐一宮,発,10:53#薊野,発,10:56#高知,発,11:06#入明,発,11:09#円行寺口,発,11:11#旭,発,11:16#高知商業前,発,11:18#朝倉,発,11:25#枝川,発,11:29#伊野,発,11:32#波川,発,11:35#小村神社前,発,11:39#日下,発,11:42#岡花,発,11:45#土佐加茂,発,11:49#西佐川,発,11:54#佐川,発,11:57#襟野々,発,12:00#斗賀野,発,12:03#吾桑,発,12:09#多ノ郷,発,12:13#大間,発,12:15#須崎,着,12:18#",
"4727D":"土佐山田,発,11:33#山田西町,発,11:35#土佐長岡,発,11:38#後免,発,11:43#土佐大津,発,11:47#布師田,発,11:50#土佐一宮,発,11:53#薊野,発,11:56#高知,発,12:06#入明,発,12:09#円行寺口,発,12:11#旭,発,12:15#高知商業前,発,12:18#朝倉,発,12:25#枝川,発,12:29#伊野,発,12:32#波川,発,12:35#小村神社前,発,12:38#日下,発,12:47#岡花,発,12:50#土佐加茂,発,13:00#西佐川,発,13:05#佐川,発,13:08#襟野々,発,13:11#斗賀野,発,13:14#吾桑,発,13:20#多ノ郷,発,13:24#大間,発,13:26#須崎,発,13:32#土佐新荘,発,13:35#安和,発,13:39#土佐久礼,発,13:47#影野,発,14:02#六反地,発,14:05#仁井田,発,14:08#窪川,着,14:12#",
"4729D":"高知,発,12:27#入明,発,12:29#円行寺口,発,12:31#旭,発,12:36#高知商業前,発,12:38#朝倉,発,12:41#枝川,発,12:45#伊野,着,12:48#",
"4735D":"須崎,発,16:43#土佐新荘,発,16:46#安和,発,16:50#土佐久礼,発,17:02#影野,発,17:26#六反地,発,17:29#仁井田,発,17:31#窪川,着,17:36#",
"4737D":"高知,発,15:27#入明,発,15:29#円行寺口,発,15:31#旭,発,15:36#高知商業前,発,15:38#朝倉,発,15:41#枝川,発,15:45#伊野,着,15:48#",
"4743D":"高知,発,16:50#入明,発,16:53#円行寺口,発,16:55#旭,発,17:01#高知商業前,発,17:03#朝倉,発,17:06#枝川,発,17:11#伊野,着,17:13#",
"4749D":"高知,発,18:36#入明,発,18:39#円行寺口,発,18:41#旭,発,18:44#高知商業前,発,18:46#朝倉,発,18:49#枝川,発,18:54#伊野,着,18:56#",
"4755D":"高知,発,21:06#入明,発,21:09#円行寺口,発,21:11#旭,発,21:14#高知商業前,発,21:16#朝倉,発,21:19#枝川,発,21:23#伊野,着,21:26#",
"5211M":"多度津,発,5:42#金蔵寺,発,5:47#善通寺,発,5:51#琴平,着,5:57#",
"5215M":"高松,発,6:12#香西,発,6:16#鬼無,発,6:20#端岡,発,6:24#国分,発,6:28#讃岐府中,発,6:31#鴨川,発,6:34#八十場,発,6:37#坂出,発,6:41#宇多津,発,6:46#丸亀,発,6:50#讃岐塩屋,発,6:53#多度津,発,6:58#金蔵寺,発,7:03#善通寺,発,7:06#琴平,着,7:12#",
"5217M":"多度津,発,7:42#金蔵寺,発,7:48#善通寺,発,7:52#琴平,着,7:57#",
"5223M":"高松,発,8:15#香西,発,8:20#鬼無,発,8:23#端岡,発,8:33#国分,発,8:37#讃岐府中,発,8:40#鴨川,発,8:43#八十場,発,8:46#坂出,発,8:50#宇多津,発,8:56#丸亀,発,8:59#讃岐塩屋,発,9:02#多度津,発,9:09#金蔵寺,発,9:14#善通寺,発,9:18#琴平,着,9:23#",
"5225M":"高松,発,8:57#香西,発,9:02#鬼無,発,9:05#端岡,発,9:14#国分,発,9:18#讃岐府中,発,9:21#鴨川,発,9:24#八十場,発,9:28#坂出,発,9:32#宇多津,発,9:37#丸亀,発,9:41#讃岐塩屋,発,9:44#多度津,発,9:50#金蔵寺,発,9:55#善通寺,発,9:59#琴平,着,10:04#",
"5229M":"高松,発,10:25#香西,発,10:31#鬼無,発,10:34#端岡,発,10:39#国分,発,10:42#讃岐府中,発,10:45#鴨川,発,10:53#八十場,発,10:56#坂出,発,11:00#宇多津,発,11:05#丸亀,発,11:08#讃岐塩屋,発,11:11#多度津,発,11:23#金蔵寺,発,11:28#善通寺,発,11:32#琴平,着,11:37#",
"5231M":"高松,発,11:25#香西,発,11:31#鬼無,発,11:34#端岡,発,11:39#国分,発,11:42#讃岐府中,発,11:45#鴨川,発,11:53#八十場,発,11:56#坂出,発,12:00#宇多津,発,12:05#丸亀,発,12:08#讃岐塩屋,発,12:11#多度津,発,12:17#金蔵寺,発,12:22#善通寺,発,12:26#琴平,着,12:32#",
"5233M":"高松,発,12:25#香西,発,12:31#鬼無,発,12:34#端岡,発,12:39#国分,発,12:42#讃岐府中,発,12:45#鴨川,発,12:53#八十場,発,12:56#坂出,発,13:00#宇多津,発,13:05#丸亀,発,13:08#讃岐塩屋,発,13:11#多度津,発,13:17#金蔵寺,発,13:22#善通寺,発,13:26#琴平,着,13:31#",
"5235M":"高松,発,13:25#香西,発,13:31#鬼無,発,13:34#端岡,発,13:39#国分,発,13:42#讃岐府中,発,13:45#鴨川,発,13:53#八十場,発,13:56#坂出,発,14:00#宇多津,発,14:05#丸亀,発,14:08#讃岐塩屋,発,14:11#多度津,発,14:17#金蔵寺,発,14:22#善通寺,発,14:26#琴平,着,14:32#",
"5237M":"多度津,発,14:58#金蔵寺,発,15:03#善通寺,発,15:07#琴平,着,15:12#",
"5239M":"高松,発,14:25#香西,発,14:31#鬼無,発,14:34#端岡,発,14:39#国分,発,14:42#讃岐府中,発,14:45#鴨川,発,14:53#八十場,発,14:56#坂出,発,15:00#宇多津,発,15:05#丸亀,発,15:08#讃岐塩屋,発,15:11#多度津,発,15:17#金蔵寺,発,15:22#善通寺,発,15:26#琴平,着,15:31#",
"5241M":"高松,発,15:25#香西,発,15:31#鬼無,発,15:34#端岡,発,15:39#国分,発,15:42#讃岐府中,発,15:45#鴨川,発,15:53#八十場,発,15:56#坂出,発,16:00#宇多津,発,16:05#丸亀,発,16:08#讃岐塩屋,発,16:11#多度津,発,16:17#金蔵寺,発,16:22#善通寺,発,16:26#琴平,着,16:33#",
"5249M":"高松,発,18:25#香西,発,18:31#鬼無,発,18:34#端岡,発,18:39#国分,発,18:42#讃岐府中,発,18:45#鴨川,発,18:53#八十場,発,18:56#坂出,発,19:00#宇多津,発,19:05#丸亀,発,19:08#讃岐塩屋,発,19:11#多度津,発,19:32#金蔵寺,発,19:36#善通寺,発,19:40#琴平,着,19:45#",
"5251M":"高松,発,19:13#端岡,発,19:21#鴨川,発,19:28#坂出,発,19:33#宇多津,発,19:38#丸亀,発,19:42#讃岐塩屋,発,19:44#多度津,発,19:54#金蔵寺,発,19:59#善通寺,発,20:03#琴平,着,20:09#",
"5253M":"高松,発,19:53#香西,発,19:58#鬼無,発,20:02#端岡,発,20:06#国分,発,20:09#讃岐府中,発,20:12#鴨川,発,20:15#八十場,発,20:18#坂出,発,20:27#宇多津,発,20:32#丸亀,発,20:35#讃岐塩屋,発,20:38#多度津,発,20:47#金蔵寺,発,20:52#善通寺,発,20:56#琴平,着,21:01#",
"5255M":"高松,発,20:25#香西,発,20:29#鬼無,発,20:33#端岡,発,20:37#国分,発,20:40#讃岐府中,発,20:43#鴨川,発,20:47#八十場,発,20:50#坂出,発,21:00#宇多津,発,21:06#丸亀,発,21:10#讃岐塩屋,発,21:13#多度津,発,21:18#金蔵寺,発,21:24#善通寺,発,21:28#琴平,着,21:33#",
"5257M":"高松,発,21:20#香西,発,21:25#鬼無,発,21:28#端岡,発,21:36#国分,発,21:39#讃岐府中,発,21:42#鴨川,発,21:45#八十場,発,21:48#坂出,発,21:52#宇多津,発,21:57#丸亀,発,22:01#讃岐塩屋,発,22:03#多度津,発,22:08#金蔵寺,発,22:13#善通寺,発,22:17#琴平,着,22:23#",
"5811D":"後免,発,8:39#土佐大津,発,8:43#布師田,発,8:46#土佐一宮,発,8:49#薊野,発,8:52#高知,着,8:55#",
"5813D":"後免,発,15:59#土佐大津,発,16:03#布師田,発,16:06#土佐一宮,発,16:09#薊野,発,16:19#高知,着,16:22#",
"5815D":"後免,発,17:05#土佐大津,発,17:09#布師田,発,17:12#土佐一宮,発,17:17#薊野,発,17:21#高知,着,17:24#",
"5817D":"後免,発,18:17#土佐大津,発,18:21#布師田,発,18:24#土佐一宮,発,18:26#薊野,発,18:30#高知,着,18:32#",
"5843D":"後免,発,7:08#土佐大津,発,7:13#布師田,発,7:16#土佐一宮,発,7:19#薊野,発,7:22#高知,着,7:25#",
"5853D":"後免,発,10:03#土佐大津,発,10:07#布師田,発,10:11#土佐一宮,発,10:17#薊野,発,10:20#高知,着,10:24#",
"5855D":"後免,発,11:03#土佐大津,発,11:07#布師田,発,11:11#土佐一宮,発,11:17#薊野,発,11:20#高知,着,11:24#",
"5859D":"後免,発,12:03#土佐大津,発,12:07#布師田,発,12:11#土佐一宮,発,12:17#薊野,発,12:20#高知,着,12:24#",
"5861D":"後免,発,13:03#土佐大津,発,13:07#布師田,発,13:11#土佐一宮,発,13:17#薊野,発,13:20#高知,着,13:24#",
"5865D":"後免,発,14:03#土佐大津,発,14:07#布師田,発,14:11#土佐一宮,発,14:17#薊野,発,14:20#高知,着,14:24#",
"5869D":"後免,発,15:03#土佐大津,発,15:07#布師田,発,15:11#土佐一宮,発,15:17#薊野,発,15:20#高知,着,15:23#",
"5881D":"後免,発,18:59#土佐大津,発,19:04#布師田,発,19:07#土佐一宮,発,19:12#薊野,発,19:15#高知,着,19:17#",
"5885D":"後免,発,20:25#土佐大津,発,20:29#布師田,発,20:32#土佐一宮,発,20:42#薊野,発,20:46#高知,着,20:49#",
"5889D":"後免,発,22:12#土佐大津,発,22:16#布師田,発,22:19#土佐一宮,発,22:22#薊野,発,22:25#高知,着,22:28#",
"6219D":"多度津,発,8:20#金蔵寺,発,8:24#善通寺,発,8:28#琴平,着,8:33#",
"8021D":"多度津,発,10:19#善通寺,発,10:26#琴平,発,10:48#讃岐財田,発,11:11#坪尻,発,11:34#阿波池田,発,11:55#阿波川口,発,12:14#大歩危,着,12:34#",
"8031M":"高松,発,8:02#多度津,発,8:26#善通寺,発,8:33#琴平,着,8:39#",
"8073D":"高知,発,10:02#旭,発,10:16#伊野,発,10:31#日下,発,10:50#土佐加茂,発,11:08#吾桑,発,11:31#安和,発,11:56#土佐久礼,発,12:11#窪川,着,12:32#",
"8083D":"後免,発,17:25#土佐一宮,発,17:43#薊野,発,17:53#高知,着,17:57#",
"310D":"徳島,発,5:51#佐古,発,5:54#吉成,発,6:00#勝瑞,発,6:03#池谷,発,6:07#板東,発,6:10#阿波川端,発,6:14#板野,発,6:18#阿波大宮,発,6:24#讃岐相生,発,6:31#引田,発,6:35#讃岐白鳥,発,6:40#三本松,発,6:47#丹生,発,6:51#鶴羽,発,6:55#讃岐津田,発,6:59#神前,発,7:04#造田,発,7:10#オレンジタウン,発,7:14#志度,発,7:22#讃岐牟礼,発,7:25#八栗口,発,7:28#古高松南,発,7:31#屋島,発,7:34#木太町,発,7:38#栗林,発,7:41#栗林公園北口,発,7:44#昭和町,発,7:47#高松,着,7:50#",
"312D":"徳島,発,6:09#佐古,発,6:12#吉成,発,6:18#勝瑞,発,6:20#池谷,発,6:24#板東,発,6:28#阿波川端,発,6:32#板野,発,6:36#阿波大宮,発,6:42#讃岐相生,発,6:48#引田,発,6:53#讃岐白鳥,発,6:58#三本松,発,7:03#丹生,発,7:07#鶴羽,発,7:12#讃岐津田,発,7:16#神前,発,7:21#造田,発,7:27#オレンジタウン,発,7:33#志度,発,7:37#讃岐牟礼,発,7:41#八栗口,発,7:44#古高松南,発,7:47#屋島,発,7:51#木太町,発,7:55#栗林,発,8:00#栗林公園北口,発,8:03#昭和町,発,8:06#高松,着,8:09#",
"316D":"引田,発,7:09#讃岐白鳥,発,7:15#三本松,発,7:20#丹生,発,7:26#鶴羽,発,7:35#讃岐津田,発,7:52#神前,発,7:59#造田,発,8:05#オレンジタウン,発,8:10#志度,発,8:16#讃岐牟礼,発,8:21#八栗口,発,8:24#古高松南,発,8:27#屋島,発,8:33#木太町,発,8:38#栗林,発,8:43#栗林公園北口,発,8:46#昭和町,発,8:49#高松,着,8:53#",
"356D":"徳島,発,16:26#佐古,発,16:29#吉成,発,16:35#勝瑞,発,16:38#池谷,発,16:43#板東,発,16:47#阿波川端,発,16:51#板野,発,17:01#阿波大宮,発,17:08#讃岐相生,発,17:14#引田,発,17:25#讃岐白鳥,発,17:30#三本松,発,17:35#丹生,発,17:46#鶴羽,発,17:51#讃岐津田,発,17:56#神前,発,18:01#造田,発,18:12#オレンジタウン,発,18:17#志度,発,18:26#讃岐牟礼,発,18:31#八栗口,発,18:37#古高松南,発,18:40#屋島,発,18:44#木太町,発,18:48#栗林,発,18:52#栗林公園北口,発,18:54#昭和町,発,18:58#高松,着,19:01#",
"358D":"徳島,発,17:26#佐古,発,17:29#吉成,発,17:35#勝瑞,発,17:38#池谷,発,17:43#板東,発,17:47#阿波川端,発,17:51#板野,着,17:53#",
"362D":"徳島,発,18:26#佐古,発,18:29#吉成,発,18:35#勝瑞,発,18:38#池谷,発,18:43#板東,発,18:47#阿波川端,発,18:51#板野,発,19:02#阿波大宮,発,19:11#讃岐相生,発,19:22#引田,着,19:26#",
"364D":"徳島,発,19:27#佐古,発,19:30#吉成,発,19:36#勝瑞,発,19:39#池谷,発,19:43#板東,発,19:47#阿波川端,発,19:51#板野,着,19:54#",
"366D":"引田,発,19:35#讃岐白鳥,発,19:39#三本松,発,19:45#丹生,発,19:50#鶴羽,発,19:54#讃岐津田,発,20:13#神前,発,20:18#造田,発,20:21#オレンジタウン,発,20:25#志度,発,20:29#讃岐牟礼,発,20:33#八栗口,発,20:40#古高松南,発,20:42#屋島,発,20:45#木太町,発,20:49#栗林,発,20:53#栗林公園北口,発,20:55#昭和町,発,20:58#高松,着,21:01#",
"372D":"引田,発,20:35#讃岐白鳥,発,20:40#三本松,発,20:47#丹生,発,20:56#鶴羽,発,21:00#讃岐津田,発,21:13#神前,発,21:18#造田,発,21:21#オレンジタウン,発,21:24#志度,発,21:32#讃岐牟礼,発,21:35#八栗口,発,21:38#古高松南,発,21:40#屋島,発,21:43#木太町,発,21:47#栗林,発,21:51#栗林公園北口,発,21:53#昭和町,発,21:56#高松,着,21:59#",
"3002D":"徳島,発,5:41#勝瑞,発,5:48#池谷,発,5:52#板野,発,5:59#引田,発,6:10#讃岐白鳥,発,6:14#三本松,発,6:17#讃岐津田,発,6:26#オレンジタウン,発,6:33#志度,発,6:38#屋島,発,6:45#栗林,発,6:50#高松,着,6:55#",
"3004D":"徳島,発,6:58#勝瑞,発,7:09#池谷,発,7:13#板野,発,7:20#引田,発,7:31#讃岐白鳥,発,7:35#三本松,発,7:39#讃岐津田,発,7:47#オレンジタウン,発,7:54#志度,発,7:58#屋島,発,8:04#栗林,発,8:08#高松,着,8:13#",
"3006D":"徳島,発,8:24#勝瑞,発,8:32#池谷,発,8:36#板野,発,8:42#讃岐白鳥,発,8:55#三本松,発,8:59#志度,発,9:14#屋島,発,9:20#栗林,発,9:25#高松,着,9:31#",
"3008D":"徳島,発,9:24#池谷,発,9:33#板野,発,9:39#引田,発,9:51#三本松,発,9:58#志度,発,10:14#屋島,発,10:20#栗林,発,10:25#高松,着,10:30#",
"3010D":"徳島,発,10:24#池谷,発,10:33#板野,発,10:39#引田,発,10:51#三本松,発,10:58#志度,発,11:14#屋島,発,11:20#栗林,発,11:25#高松,着,11:30#",
"3012D":"徳島,発,11:24#池谷,発,11:33#板野,発,11:39#引田,発,11:51#三本松,発,11:58#志度,発,12:14#屋島,発,12:20#栗林,発,12:25#高松,着,12:30#",
"3014D":"徳島,発,12:24#池谷,発,12:33#板野,発,12:39#引田,発,12:51#三本松,発,12:58#志度,発,13:14#屋島,発,13:20#栗林,発,13:25#高松,着,13:30#",
"3016D":"徳島,発,13:24#池谷,発,13:33#板野,発,13:39#引田,発,13:51#三本松,発,13:58#志度,発,14:14#屋島,発,14:20#栗林,発,14:25#高松,着,14:30#",
"3018D":"徳島,発,14:24#池谷,発,14:33#板野,発,14:39#引田,発,14:51#三本松,発,14:58#志度,発,15:14#屋島,発,15:20#栗林,発,15:25#高松,着,15:30#",
"3020D":"徳島,発,15:24#池谷,発,15:33#板野,発,15:39#引田,発,15:51#三本松,発,15:58#志度,発,16:14#屋島,発,16:20#栗林,発,16:25#高松,着,16:30#",
"3022D":"徳島,発,16:24#池谷,発,16:33#板野,発,16:39#引田,発,16:51#三本松,発,16:58#志度,発,17:14#屋島,発,17:20#栗林,発,17:25#高松,着,17:30#",
"3024D":"徳島,発,17:24#池谷,発,17:33#板野,発,17:39#引田,発,17:51#三本松,発,17:58#志度,発,18:14#屋島,発,18:20#栗林,発,18:25#高松,着,18:30#",
"3026D":"徳島,発,18:24#池谷,発,18:33#板野,発,18:39#引田,発,18:51#三本松,発,18:58#オレンジタウン,発,19:11#志度,発,19:14#屋島,発,19:20#栗林,発,19:25#高松,着,19:30#",
"3028D":"徳島,発,19:24#勝瑞,発,19:31#板野,発,19:40#引田,発,19:52#讃岐白鳥,発,19:56#三本松,発,20:00#讃岐津田,発,20:08#志度,発,20:17#屋島,発,20:23#栗林,発,20:27#高松,着,20:33#",
"3030D":"徳島,発,20:27#勝瑞,発,20:34#板野,発,20:42#引田,発,20:54#三本松,発,21:01#志度,発,21:17#屋島,発,21:25#栗林,発,21:30#高松,着,21:35#",
"4302D":"オレンジタウン,発,5:26#志度,発,5:30#讃岐牟礼,発,5:33#八栗口,発,5:36#古高松南,発,5:38#屋島,発,5:41#木太町,発,5:45#栗林,発,5:48#栗林公園北口,発,5:51#昭和町,発,5:53#高松,着,5:56#",
"4304D":"オレンジタウン,発,6:04#志度,発,6:08#讃岐牟礼,発,6:12#八栗口,発,6:15#古高松南,発,6:18#屋島,発,6:22#木太町,発,6:26#栗林,発,6:30#栗林公園北口,発,6:32#昭和町,発,6:35#高松,着,6:38#",
"4314D":"徳島,発,6:45#佐古,発,6:49#吉成,発,6:55#勝瑞,発,7:00#池谷,発,7:19#板東,発,7:27#阿波川端,発,7:30#板野,着,7:33#",
"4318D":"引田,発,7:50#讃岐白鳥,発,7:56#三本松,発,8:00#丹生,発,8:05#鶴羽,発,8:11#讃岐津田,発,8:16#神前,発,8:22#造田,発,8:25#オレンジタウン,発,8:29#志度,発,8:39#讃岐牟礼,発,8:44#八栗口,発,8:47#古高松南,発,8:50#屋島,発,8:52#木太町,発,8:56#栗林,発,9:00#栗林公園北口,発,9:03#昭和町,発,9:06#高松,着,9:09#",
"4322D":"徳島,発,8:45#佐古,発,8:51#吉成,発,8:56#勝瑞,発,8:59#池谷,発,9:03#板東,発,9:07#阿波川端,発,9:11#板野,着,9:14#",
"4324D":"引田,発,9:25#讃岐白鳥,発,9:30#三本松,発,9:35#丹生,発,9:46#鶴羽,発,9:51#讃岐津田,発,9:56#神前,発,10:01#造田,発,10:12#オレンジタウン,発,10:17#志度,発,10:26#讃岐牟礼,発,10:31#八栗口,発,10:37#古高松南,発,10:40#屋島,発,10:44#木太町,発,10:48#栗林,発,10:52#栗林公園北口,発,10:54#昭和町,発,10:58#高松,着,11:01#",
"4326D":"徳島,発,10:26#佐古,発,10:29#吉成,発,10:35#勝瑞,発,10:38#池谷,発,10:43#板東,発,10:47#阿波川端,発,10:51#板野,着,10:53#",
"4328D":"オレンジタウン,発,10:56#志度,発,11:00#讃岐牟礼,発,11:04#八栗口,発,11:07#古高松南,発,11:10#屋島,発,11:22#木太町,発,11:26#栗林,発,11:29#栗林公園北口,発,11:31#昭和町,発,11:34#高松,着,11:37#",
"4330D":"引田,発,10:25#讃岐白鳥,発,10:30#三本松,発,10:35#丹生,発,10:46#鶴羽,発,10:51#讃岐津田,発,10:56#神前,発,11:01#造田,発,11:12#オレンジタウン,発,11:17#志度,発,11:26#讃岐牟礼,発,11:31#八栗口,発,11:37#古高松南,発,11:40#屋島,発,11:44#木太町,発,11:48#栗林,発,11:52#栗林公園北口,発,11:54#昭和町,発,11:58#高松,着,12:01#",
"4332D":"引田,発,11:25#讃岐白鳥,発,11:30#三本松,発,11:35#丹生,発,11:46#鶴羽,発,11:51#讃岐津田,発,11:56#神前,発,12:01#造田,発,12:12#オレンジタウン,発,12:17#志度,発,12:26#讃岐牟礼,発,12:31#八栗口,発,12:37#古高松南,発,12:40#屋島,発,12:44#木太町,発,12:48#栗林,発,12:52#栗林公園北口,発,12:54#昭和町,発,12:58#高松,着,13:01#",
"4334D":"徳島,発,11:26#佐古,発,11:29#吉成,発,11:35#勝瑞,発,11:38#池谷,発,11:43#板東,発,11:47#阿波川端,発,11:51#板野,着,11:53#",
"4336D":"オレンジタウン,発,12:56#志度,発,13:00#讃岐牟礼,発,13:04#八栗口,発,13:07#古高松南,発,13:10#屋島,発,13:22#木太町,発,13:26#栗林,発,13:29#栗林公園北口,発,13:31#昭和町,発,13:34#高松,着,13:37#",
"4338D":"引田,発,12:25#讃岐白鳥,発,12:30#三本松,発,12:35#丹生,発,12:46#鶴羽,発,12:51#讃岐津田,発,12:56#神前,発,13:01#造田,発,13:12#オレンジタウン,発,13:17#志度,発,13:26#讃岐牟礼,発,13:31#八栗口,発,13:37#古高松南,発,13:40#屋島,発,13:44#木太町,発,13:48#栗林,発,13:52#栗林公園北口,発,13:54#昭和町,発,13:58#高松,着,14:01#",
"4340D":"徳島,発,12:26#佐古,発,12:29#吉成,発,12:35#勝瑞,発,12:38#池谷,発,12:43#板東,発,12:47#阿波川端,発,12:51#板野,発,13:01#阿波大宮,発,13:08#讃岐相生,発,13:14#引田,発,13:25#讃岐白鳥,発,13:30#三本松,発,13:35#丹生,発,13:46#鶴羽,発,13:51#讃岐津田,発,13:56#神前,発,14:01#造田,発,14:12#オレンジタウン,発,14:17#志度,発,14:26#讃岐牟礼,発,14:31#八栗口,発,14:37#古高松南,発,14:40#屋島,発,14:44#木太町,発,14:48#栗林,発,14:52#栗林公園北口,発,14:54#昭和町,発,14:58#高松,着,15:01#",
"4342D":"徳島,発,14:26#佐古,発,14:29#吉成,発,14:35#勝瑞,発,14:38#池谷,発,14:43#板東,発,14:47#阿波川端,発,14:51#板野,着,14:53#",
"4344D":"オレンジタウン,発,14:56#志度,発,15:00#讃岐牟礼,発,15:04#八栗口,発,15:07#古高松南,発,15:10#屋島,発,15:22#木太町,発,15:26#栗林,発,15:29#栗林公園北口,発,15:31#昭和町,発,15:34#高松,着,15:37#",
"4346D":"三本松,発,14:35#丹生,発,14:46#鶴羽,発,14:51#讃岐津田,発,14:56#神前,発,15:01#造田,発,15:12#オレンジタウン,発,15:17#志度,発,15:26#讃岐牟礼,発,15:31#八栗口,発,15:37#古高松南,発,15:40#屋島,発,15:44#木太町,発,15:48#栗林,発,15:52#栗林公園北口,発,15:54#昭和町,発,15:58#高松,着,16:01#",
"4348D":"引田,発,15:25#讃岐白鳥,発,15:30#三本松,発,15:35#丹生,発,15:46#鶴羽,発,15:51#讃岐津田,発,15:56#神前,発,16:01#造田,発,16:12#オレンジタウン,発,16:17#志度,発,16:26#讃岐牟礼,発,16:31#八栗口,発,16:37#古高松南,発,16:40#屋島,発,16:44#木太町,発,16:48#栗林,発,16:52#栗林公園北口,発,16:54#昭和町,発,16:58#高松,着,17:01#",
"4350D":"徳島,発,15:26#佐古,発,15:29#吉成,発,15:35#勝瑞,発,15:38#池谷,発,15:43#板東,発,15:47#阿波川端,発,15:51#板野,着,15:53#",
"4352D":"オレンジタウン,発,16:56#志度,発,17:00#讃岐牟礼,発,17:04#八栗口,発,17:07#古高松南,発,17:10#屋島,発,17:22#木太町,発,17:26#栗林,発,17:29#栗林公園北口,発,17:31#昭和町,発,17:34#高松,着,17:37#",
"4354D":"引田,発,16:25#讃岐白鳥,発,16:30#三本松,発,16:35#丹生,発,16:46#鶴羽,発,16:51#讃岐津田,発,16:56#神前,発,17:01#造田,発,17:12#オレンジタウン,発,17:17#志度,発,17:26#讃岐牟礼,発,17:31#八栗口,発,17:37#古高松南,発,17:40#屋島,発,17:44#木太町,発,17:48#栗林,発,17:52#栗林公園北口,発,17:54#昭和町,発,17:58#高松,着,18:01#",
"4360D":"引田,発,18:25#讃岐白鳥,発,18:30#三本松,発,18:35#丹生,発,18:46#鶴羽,発,18:51#讃岐津田,発,19:09#神前,発,19:14#造田,発,19:22#オレンジタウン,発,19:30#志度,発,19:34#讃岐牟礼,発,19:37#八栗口,発,19:40#古高松南,発,19:42#屋島,発,19:45#木太町,発,19:49#栗林,発,19:53#栗林公園北口,発,19:55#昭和町,発,19:58#高松,着,20:01#",
"4368D":"徳島,発,20:58#佐古,発,21:05#吉成,発,21:11#勝瑞,発,21:15#池谷,発,21:19#板東,発,21:23#阿波川端,発,21:26#板野,着,21:29#",
"4370D":"オレンジタウン,発,20:59#志度,発,21:02#讃岐牟礼,発,21:06#八栗口,発,21:08#古高松南,発,21:11#屋島,発,21:14#木太町,発,21:17#栗林,発,21:21#栗林公園北口,発,21:23#昭和町,発,21:26#高松,着,21:29#",
"4374D":"引田,発,21:25#讃岐白鳥,発,21:30#三本松,発,21:35#丹生,発,21:47#鶴羽,発,21:55#讃岐津田,発,21:59#神前,発,22:05#造田,発,22:08#オレンジタウン,発,22:16#志度,発,22:19#讃岐牟礼,発,22:23#八栗口,発,22:26#古高松南,発,22:29#屋島,発,22:32#木太町,発,22:36#栗林,発,22:40#栗林公園北口,発,22:43#昭和町,発,22:46#高松,着,22:49#",
"4376D":"徳島,発,22:26#佐古,発,22:29#吉成,発,22:35#勝瑞,発,22:38#池谷,発,22:44#板東,発,22:48#阿波川端,発,22:52#板野,着,22:56#",
"5306D":"引田,発,5:43#讃岐白鳥,発,5:49#三本松,発,5:53#丹生,発,5:58#鶴羽,発,6:03#讃岐津田,発,6:08#神前,発,6:13#造田,発,6:18#オレンジタウン,発,6:22#志度,発,6:27#讃岐牟礼,発,6:31#八栗口,発,6:34#古高松南,発,6:37#屋島,発,6:47#木太町,発,6:51#栗林,発,6:55#栗林公園北口,発,6:58#昭和町,発,7:01#高松,着,7:05#",
"5308D":"三本松,発,6:21#丹生,発,6:26#鶴羽,発,6:33#讃岐津田,発,6:40#神前,発,6:45#造田,発,6:48#オレンジタウン,発,6:53#志度,発,6:58#讃岐牟礼,発,7:02#八栗口,発,7:08#古高松南,発,7:11#屋島,発,7:15#木太町,発,7:19#栗林,発,7:25#栗林公園北口,発,7:28#昭和町,発,7:31#高松,着,7:34#",
"5320D":"オレンジタウン,発,9:17#志度,発,9:26#讃岐牟礼,発,9:31#八栗口,発,9:37#古高松南,発,9:40#屋島,発,9:44#木太町,発,9:48#栗林,発,9:52#栗林公園北口,発,9:54#昭和町,発,9:58#高松,着,10:01#",
"305D":"高松,発,5:39#昭和町,発,5:42#栗林公園北口,発,5:45#栗林,発,5:48#木太町,発,5:52#屋島,発,5:55#古高松南,発,5:58#八栗口,発,6:02#讃岐牟礼,発,6:05#志度,発,6:09#オレンジタウン,発,6:13#造田,発,6:17#神前,発,6:20#讃岐津田,発,6:29#鶴羽,発,6:32#丹生,発,6:37#三本松,発,6:53#讃岐白鳥,発,6:58#引田,発,7:04#讃岐相生,発,7:07#阿波大宮,発,7:15#板野,発,7:20#阿波川端,発,7:23#板東,発,7:27#池谷,発,7:31#勝瑞,発,7:36#吉成,発,7:39#佐古,発,7:45#徳島,着,7:47#",
"353D":"板野,発,18:39#阿波川端,発,18:42#板東,発,18:47#池谷,発,18:50#勝瑞,発,18:55#吉成,発,18:58#佐古,発,19:04#徳島,着,19:07#",
"355D":"高松,発,17:42#昭和町,発,17:45#栗林公園北口,発,17:48#栗林,発,17:51#木太町,発,17:55#屋島,発,17:59#古高松南,発,18:02#八栗口,発,18:08#讃岐牟礼,発,18:10#志度,発,18:14#オレンジタウン,発,18:18#造田,発,18:22#神前,発,18:25#讃岐津田,発,18:31#鶴羽,発,18:41#丹生,発,18:46#三本松,発,18:58#讃岐白鳥,発,19:01#引田,発,19:18#讃岐相生,発,19:22#阿波大宮,発,19:29#板野,発,19:40#阿波川端,発,19:43#板東,発,19:47#池谷,発,19:50#勝瑞,発,19:55#吉成,発,19:58#佐古,発,20:04#徳島,着,20:07#",
"357D":"高松,発,18:14#昭和町,発,18:17#栗林公園北口,発,18:21#栗林,発,18:25#木太町,発,18:28#屋島,発,18:32#古高松南,発,18:34#八栗口,発,18:38#讃岐牟礼,発,18:40#志度,発,18:44#オレンジタウン,発,18:48#造田,発,18:51#神前,発,18:54#讃岐津田,発,19:05#鶴羽,発,19:09#丹生,発,19:14#三本松,発,19:18#讃岐白鳥,発,19:22#引田,着,19:27#",
"361D":"高松,発,19:14#昭和町,発,19:17#栗林公園北口,発,19:21#栗林,発,19:25#木太町,発,19:28#屋島,発,19:32#古高松南,発,19:34#八栗口,発,19:41#讃岐牟礼,発,19:43#志度,発,19:47#オレンジタウン,発,19:50#造田,発,19:54#神前,発,19:57#讃岐津田,発,20:08#鶴羽,発,20:11#丹生,発,20:16#三本松,発,20:21#讃岐白鳥,発,20:25#引田,着,20:29#",
"363D":"高松,発,19:42#昭和町,発,19:45#栗林公園北口,発,19:48#栗林,発,19:52#木太町,発,19:56#屋島,発,20:00#古高松南,発,20:03#八栗口,発,20:08#讃岐牟礼,発,20:10#志度,発,20:17#オレンジタウン,発,20:25#造田,発,20:38#神前,発,20:42#讃岐津田,発,20:47#鶴羽,発,20:51#丹生,発,20:56#三本松,発,21:01#讃岐白鳥,発,21:05#引田,着,21:10#",
"367D":"板野,発,20:42#阿波川端,発,20:46#板東,発,20:49#池谷,発,20:53#勝瑞,発,20:57#吉成,発,20:59#佐古,発,21:05#徳島,着,21:08#",
"371D":"高松,発,20:42#昭和町,発,20:45#栗林公園北口,発,20:49#栗林,発,20:52#木太町,発,20:56#屋島,発,21:00#古高松南,発,21:03#八栗口,発,21:10#讃岐牟礼,発,21:13#志度,発,21:17#オレンジタウン,発,21:24#造田,発,21:41#神前,発,21:44#讃岐津田,発,21:50#鶴羽,発,21:54#丹生,発,22:01#三本松,発,22:06#讃岐白鳥,発,22:10#引田,発,22:16#讃岐相生,発,22:20#阿波大宮,発,22:32#板野,発,22:38#阿波川端,発,22:42#板東,発,22:48#池谷,発,22:52#勝瑞,発,22:57#吉成,発,22:59#佐古,発,23:06#徳島,着,23:09#",
"3001D":"高松,発,6:10#栗林,発,6:16#屋島,発,6:21#志度,発,6:29#オレンジタウン,発,6:33#三本松,発,6:47#引田,発,6:53#板野,発,7:06#池谷,発,7:19#勝瑞,発,7:23#徳島,着,7:29#",
"3003D":"高松,発,7:05#栗林,発,7:10#屋島,発,7:15#志度,発,7:21#オレンジタウン,発,7:24#讃岐津田,発,7:31#三本松,発,7:40#讃岐白鳥,発,7:43#引田,発,7:47#板野,発,7:58#池谷,発,8:05#勝瑞,発,8:09#徳島,着,8:15#",
"3005D":"高松,発,8:24#栗林,発,8:29#屋島,発,8:33#志度,発,8:39#三本松,発,8:59#讃岐白鳥,発,9:02#引田,発,9:07#板野,発,9:18#池谷,発,9:24#勝瑞,発,9:30#徳島,着,9:36#",
"3007D":"高松,発,9:10#栗林,発,9:15#屋島,発,9:20#志度,発,9:27#三本松,発,9:43#引田,発,9:50#板野,発,10:01#池谷,発,10:08#徳島,着,10:16#",
"3009D":"高松,発,10:10#栗林,発,10:15#屋島,発,10:20#志度,発,10:27#三本松,発,10:43#引田,発,10:50#板野,発,11:01#池谷,発,11:08#徳島,着,11:16#",
"3011D":"高松,発,11:10#栗林,発,11:15#屋島,発,11:20#志度,発,11:27#三本松,発,11:43#引田,発,11:50#板野,発,12:01#池谷,発,12:08#徳島,着,12:16#",
"3013D":"高松,発,12:10#栗林,発,12:15#屋島,発,12:20#志度,発,12:27#三本松,発,12:43#引田,発,12:50#板野,発,13:01#池谷,発,13:08#徳島,着,13:16#",
"3015D":"高松,発,13:10#栗林,発,13:15#屋島,発,13:20#志度,発,13:27#三本松,発,13:43#引田,発,13:50#板野,発,14:01#池谷,発,14:08#徳島,着,14:16#",
"3017D":"高松,発,14:10#栗林,発,14:15#屋島,発,14:20#志度,発,14:27#三本松,発,14:43#引田,発,14:50#板野,発,15:01#池谷,発,15:08#徳島,着,15:16#",
"3019D":"高松,発,15:10#栗林,発,15:15#屋島,発,15:20#志度,発,15:27#三本松,発,15:43#引田,発,15:50#板野,発,16:01#池谷,発,16:08#徳島,着,16:16#",
"3021D":"高松,発,16:10#栗林,発,16:15#屋島,発,16:20#志度,発,16:27#三本松,発,16:43#引田,発,16:50#板野,発,17:01#池谷,発,17:08#徳島,着,17:17#",
"3023D":"高松,発,17:10#栗林,発,17:15#屋島,発,17:20#志度,発,17:27#三本松,発,17:43#引田,発,17:50#板野,発,18:01#池谷,発,18:08#徳島,着,18:17#",
"3025D":"高松,発,18:10#栗林,発,18:15#屋島,発,18:20#志度,発,18:27#オレンジタウン,発,18:30#三本松,発,18:43#讃岐白鳥,発,18:47#引田,発,18:51#板野,発,19:02#勝瑞,発,19:11#徳島,着,19:17#",
"3027D":"高松,発,19:10#栗林,発,19:15#屋島,発,19:20#志度,発,19:27#オレンジタウン,発,19:30#讃岐津田,発,19:37#三本松,発,19:46#引田,発,19:52#板野,発,20:03#池谷,発,20:09#勝瑞,発,20:13#徳島,着,20:20#",
"3029D":"高松,発,20:10#栗林,発,20:15#屋島,発,20:23#志度,発,20:29#讃岐津田,発,20:38#三本松,発,20:47#讃岐白鳥,発,20:50#引田,発,20:55#板野,発,21:06#池谷,発,21:12#徳島,着,21:20#",
"3031D":"高松,発,21:14#栗林,発,21:21#屋島,発,21:25#志度,発,21:32#讃岐津田,発,21:41#三本松,発,21:49#讃岐白鳥,発,21:53#引田,発,21:57#板野,発,22:08#池谷,発,22:14#勝瑞,発,22:18#徳島,着,22:24#",
"3033D":"高松,発,22:22#栗林,発,22:27#屋島,発,22:32#志度,発,22:39#オレンジタウン,発,22:43#讃岐津田,発,22:51#三本松,発,22:59#讃岐白鳥,発,23:03#引田,発,23:07#板野,発,23:19#勝瑞,発,23:27#徳島,着,23:34#",
"4301D":"板野,発,5:37#阿波川端,発,5:41#板東,発,5:45#池谷,発,5:53#勝瑞,発,5:57#吉成,発,6:00#佐古,発,6:06#徳島,着,6:08#",
"4303D":"板野,発,6:49#阿波川端,発,6:53#板東,発,6:58#池谷,発,7:04#勝瑞,発,7:10#吉成,発,7:13#佐古,発,7:20#徳島,着,7:23#",
"4307D":"高松,発,6:21#昭和町,発,6:24#栗林公園北口,発,6:27#栗林,発,6:33#木太町,発,6:36#屋島,発,6:45#古高松南,発,6:48#八栗口,発,6:52#讃岐牟礼,発,6:54#志度,発,6:59#オレンジタウン,発,7:03#造田,発,7:07#神前,発,7:11#讃岐津田,発,7:16#鶴羽,発,7:20#丹生,発,7:26#三本松,発,7:30#讃岐白鳥,発,7:35#引田,着,7:40#",
"4309D":"板野,発,8:11#阿波川端,発,8:14#板東,発,8:18#池谷,発,8:22#勝瑞,発,8:32#吉成,発,8:36#佐古,発,8:42#徳島,着,8:44#",
"4311D":"高松,発,6:41#昭和町,発,6:44#栗林公園北口,発,6:47#栗林,発,6:54#木太町,発,6:58#屋島,発,7:02#古高松南,発,7:05#八栗口,発,7:08#讃岐牟礼,発,7:11#志度,発,7:25#オレンジタウン,発,7:30#造田,発,7:34#神前,発,7:38#讃岐津田,発,7:47#鶴羽,発,7:51#丹生,発,7:56#三本松,発,8:02#讃岐白鳥,発,8:06#引田,発,8:19#讃岐相生,発,8:23#阿波大宮,発,8:31#板野,発,8:42#阿波川端,発,8:45#板東,発,8:49#池谷,発,8:52#勝瑞,発,8:59#吉成,発,9:01#佐古,発,9:09#徳島,着,9:11#",
"4313D":"高松,発,7:17#昭和町,発,7:20#栗林公園北口,発,7:23#栗林,発,7:26#木太町,発,7:29#屋島,発,7:36#古高松南,発,7:39#八栗口,発,7:48#讃岐牟礼,発,7:50#志度,発,7:57#オレンジタウン,発,8:01#造田,発,8:05#神前,発,8:09#讃岐津田,発,8:16#鶴羽,発,8:19#丹生,発,8:24#三本松,発,8:29#讃岐白鳥,発,8:33#引田,着,8:37#",
"4317D":"板野,発,9:39#阿波川端,発,9:42#板東,発,9:47#池谷,発,9:50#勝瑞,発,9:55#吉成,発,9:58#佐古,発,10:04#徳島,着,10:08#",
"4319D":"高松,発,8:33#昭和町,発,8:36#栗林公園北口,発,8:39#栗林,発,8:42#木太町,発,8:46#屋島,発,8:52#古高松南,発,8:55#八栗口,発,8:59#讃岐牟礼,発,9:01#志度,発,9:14#オレンジタウン,発,9:18#造田,発,9:22#神前,発,9:25#讃岐津田,発,9:31#鶴羽,発,9:41#丹生,発,9:46#三本松,発,9:58#讃岐白鳥,発,10:01#引田,着,10:06#",
"4321D":"高松,発,9:42#昭和町,発,9:45#栗林公園北口,発,9:48#栗林,発,9:51#木太町,発,9:55#屋島,発,9:59#古高松南,発,10:02#八栗口,発,10:08#讃岐牟礼,発,10:10#志度,発,10:14#オレンジタウン,発,10:18#造田,発,10:22#神前,発,10:25#讃岐津田,発,10:31#鶴羽,発,10:41#丹生,発,10:46#三本松,発,10:58#讃岐白鳥,発,11:01#引田,着,11:06#",
"4323D":"高松,発,10:14#昭和町,発,10:17#栗林公園北口,発,10:21#栗林,発,10:25#木太町,発,10:28#屋島,発,10:32#古高松南,発,10:34#八栗口,発,10:38#讃岐牟礼,発,10:40#志度,発,10:44#オレンジタウン,着,10:47#",
"4325D":"高松,発,10:42#昭和町,発,10:45#栗林公園北口,発,10:48#栗林,発,10:51#木太町,発,10:55#屋島,発,10:59#古高松南,発,11:02#八栗口,発,11:08#讃岐牟礼,発,11:10#志度,発,11:14#オレンジタウン,発,11:18#造田,発,11:22#神前,発,11:25#讃岐津田,発,11:31#鶴羽,発,11:41#丹生,発,11:46#三本松,発,11:58#讃岐白鳥,発,12:01#引田,着,12:06#",
"4327D":"板野,発,11:39#阿波川端,発,11:42#板東,発,11:47#池谷,発,11:50#勝瑞,発,11:55#吉成,発,11:59#佐古,発,12:05#徳島,着,12:08#",
"4329D":"板野,発,12:39#阿波川端,発,12:42#板東,発,12:47#池谷,発,12:50#勝瑞,発,12:55#吉成,発,12:58#佐古,発,13:04#徳島,着,13:07#",
"4331D":"高松,発,11:42#昭和町,発,11:45#栗林公園北口,発,11:48#栗林,発,11:51#木太町,発,11:55#屋島,発,11:59#古高松南,発,12:02#八栗口,発,12:08#讃岐牟礼,発,12:10#志度,発,12:14#オレンジタウン,発,12:18#造田,発,12:22#神前,発,12:25#讃岐津田,発,12:31#鶴羽,発,12:41#丹生,発,12:46#三本松,発,12:58#讃岐白鳥,発,13:01#引田,発,13:18#讃岐相生,発,13:22#阿波大宮,発,13:30#板野,発,13:39#阿波川端,発,13:42#板東,発,13:47#池谷,発,13:50#勝瑞,発,13:55#吉成,発,13:58#佐古,発,14:04#徳島,着,14:08#",
"4333D":"高松,発,12:14#昭和町,発,12:17#栗林公園北口,発,12:21#栗林,発,12:25#木太町,発,12:28#屋島,発,12:32#古高松南,発,12:34#八栗口,発,12:38#讃岐牟礼,発,12:40#志度,発,12:44#オレンジタウン,着,12:47#",
"4335D":"高松,発,12:42#昭和町,発,12:45#栗林公園北口,発,12:48#栗林,発,12:51#木太町,発,12:55#屋島,発,12:59#古高松南,発,13:02#八栗口,発,13:08#讃岐牟礼,発,13:10#志度,発,13:14#オレンジタウン,発,13:18#造田,発,13:22#神前,発,13:25#讃岐津田,発,13:31#鶴羽,発,13:41#丹生,発,13:46#三本松,着,13:50#",
"4337D":"高松,発,13:42#昭和町,発,13:45#栗林公園北口,発,13:48#栗林,発,13:51#木太町,発,13:55#屋島,発,13:59#古高松南,発,14:02#八栗口,発,14:08#讃岐牟礼,発,14:10#志度,発,14:14#オレンジタウン,発,14:18#造田,発,14:22#神前,発,14:25#讃岐津田,発,14:31#鶴羽,発,14:41#丹生,発,14:46#三本松,発,14:58#讃岐白鳥,発,15:01#引田,着,15:06#",
"4339D":"高松,発,14:14#昭和町,発,14:17#栗林公園北口,発,14:21#栗林,発,14:25#木太町,発,14:28#屋島,発,14:32#古高松南,発,14:34#八栗口,発,14:38#讃岐牟礼,発,14:40#志度,発,14:44#オレンジタウン,着,14:47#",
"4341D":"高松,発,14:42#昭和町,発,14:45#栗林公園北口,発,14:48#栗林,発,14:51#木太町,発,14:55#屋島,発,14:59#古高松南,発,15:02#八栗口,発,15:08#讃岐牟礼,発,15:10#志度,発,15:14#オレンジタウン,発,15:18#造田,発,15:22#神前,発,15:25#讃岐津田,発,15:31#鶴羽,発,15:41#丹生,発,15:46#三本松,発,15:58#讃岐白鳥,発,16:01#引田,着,16:06#",
"4343D":"板野,発,15:39#阿波川端,発,15:42#板東,発,15:47#池谷,発,15:50#勝瑞,発,15:55#吉成,発,15:58#佐古,発,16:04#徳島,着,16:08#",
"4345D":"板野,発,16:39#阿波川端,発,16:42#板東,発,16:47#池谷,発,16:50#勝瑞,発,16:55#吉成,発,16:58#佐古,発,17:05#徳島,着,17:08#",
"4347D":"引田,発,17:18#讃岐相生,発,17:22#阿波大宮,発,17:30#板野,発,17:39#阿波川端,発,17:42#板東,発,17:47#池谷,発,17:50#勝瑞,発,17:55#吉成,発,17:58#佐古,発,18:05#徳島,着,18:08#",
"4349D":"高松,発,16:14#昭和町,発,16:17#栗林公園北口,発,16:21#栗林,発,16:25#木太町,発,16:28#屋島,発,16:32#古高松南,発,16:34#八栗口,発,16:38#讃岐牟礼,発,16:40#志度,発,16:44#オレンジタウン,着,16:47#",
"4369D":"板野,発,21:39#阿波川端,発,21:42#板東,発,21:47#池谷,発,21:50#勝瑞,発,21:55#吉成,発,21:58#佐古,発,22:04#徳島,着,22:07#",
"4375D":"高松,発,22:50#昭和町,発,22:53#栗林公園北口,発,22:56#栗林,発,22:59#木太町,発,23:03#屋島,発,23:07#古高松南,発,23:10#八栗口,発,23:14#讃岐牟礼,発,23:16#志度,発,23:20#オレンジタウン,着,23:23#",
"5315D":"高松,発,7:51#昭和町,発,7:54#栗林公園北口,発,7:57#栗林,発,8:09#木太町,発,8:12#屋島,発,8:16#古高松南,発,8:19#八栗口,発,8:25#讃岐牟礼,発,8:28#志度,発,8:33#オレンジタウン,着,8:36#",
"5347D":"高松,発,15:42#昭和町,発,15:45#栗林公園北口,発,15:48#栗林,発,15:51#木太町,発,15:55#屋島,発,15:59#古高松南,発,16:02#八栗口,発,16:08#讃岐牟礼,発,16:10#志度,発,16:14#オレンジタウン,発,16:18#造田,発,16:22#神前,発,16:25#讃岐津田,発,16:31#鶴羽,発,16:41#丹生,発,16:46#三本松,発,16:58#讃岐白鳥,発,17:01#引田,着,17:06#",
"5351D":"高松,発,16:42#昭和町,発,16:45#栗林公園北口,発,16:48#栗林,発,16:51#木太町,発,16:55#屋島,発,16:59#古高松南,発,17:02#八栗口,発,17:08#讃岐牟礼,発,17:10#志度,発,17:14#オレンジタウン,発,17:18#造田,発,17:22#神前,発,17:25#讃岐津田,発,17:31#鶴羽,発,17:41#丹生,発,17:46#三本松,発,17:58#讃岐白鳥,発,18:01#引田,着,18:06#",
"5359D":"高松,発,18:42#昭和町,発,18:45#栗林公園北口,発,18:48#栗林,発,18:51#木太町,発,18:55#屋島,発,18:59#古高松南,発,19:02#八栗口,発,19:08#讃岐牟礼,発,19:10#志度,発,19:14#オレンジタウン,発,19:18#造田,発,19:22#神前,発,19:25#讃岐津田,発,19:31#鶴羽,発,19:43#丹生,発,19:50#三本松,着,19:53#",
"5365D":"高松,発,20:14#昭和町,発,20:17#栗林公園北口,発,20:21#栗林,発,20:27#木太町,発,20:31#屋島,発,20:34#古高松南,発,20:37#八栗口,発,20:41#讃岐牟礼,発,20:43#志度,発,20:47#オレンジタウン,着,20:50#",
"5373D":"高松,発,21:42#昭和町,発,21:45#栗林公園北口,発,21:48#栗林,発,21:51#木太町,発,21:55#屋島,発,21:59#古高松南,発,22:02#八栗口,発,22:06#讃岐牟礼,発,22:08#志度,発,22:12#オレンジタウン,発,22:16#造田,発,22:20#神前,発,22:23#讃岐津田,発,22:30#鶴羽,発,22:34#丹生,発,22:39#三本松,発,22:44#讃岐白鳥,発,22:47#引田,着,22:52#",
"950D":"池谷,発,7:08#阿波大谷,発,7:11#立道,発,7:14#教会前,発,7:18#金比羅前,発,7:20#撫養,発,7:24#鳴門,着,7:27#",
"952D":"徳島,発,7:30#佐古,発,7:33#吉成,発,7:39#勝瑞,発,7:45#池谷,発,7:51#阿波大谷,発,7:54#立道,発,7:57#教会前,発,8:00#金比羅前,発,8:03#撫養,発,8:06#鳴門,着,8:09#",
"968D":"徳島,発,14:58#佐古,発,15:03#吉成,発,15:12#勝瑞,発,15:15#池谷,発,15:20#阿波大谷,発,15:23#立道,発,15:26#教会前,発,15:29#金比羅前,発,15:32#撫養,発,15:35#鳴門,着,15:37#",
"970D":"徳島,発,15:58#佐古,発,16:03#吉成,発,16:12#勝瑞,発,16:15#池谷,発,16:20#阿波大谷,発,16:23#立道,発,16:26#教会前,発,16:29#金比羅前,発,16:32#撫養,発,16:35#鳴門,着,16:37#",
"972D":"徳島,発,16:58#佐古,発,17:04#吉成,発,17:12#勝瑞,発,17:15#池谷,発,17:20#阿波大谷,発,17:23#立道,発,17:26#教会前,発,17:29#金比羅前,発,17:32#撫養,発,17:35#鳴門,着,17:37#",
"974D":"徳島,発,17:58#佐古,発,18:04#吉成,発,18:12#勝瑞,発,18:15#池谷,発,18:20#阿波大谷,発,18:23#立道,発,18:26#教会前,発,18:29#金比羅前,発,18:32#撫養,発,18:35#鳴門,着,18:37#",
"976D":"徳島,発,18:58#佐古,発,19:03#吉成,発,19:13#勝瑞,発,19:16#池谷,発,19:20#阿波大谷,発,19:23#立道,発,19:26#教会前,発,19:30#金比羅前,発,19:32#撫養,発,19:35#鳴門,着,19:38#",
"980D":"徳島,発,21:26#佐古,発,21:32#吉成,発,21:39#勝瑞,発,21:42#池谷,発,21:52#阿波大谷,発,21:55#立道,発,21:58#教会前,発,22:02#金比羅前,発,22:04#撫養,発,22:07#鳴門,着,22:10#",
"982D":"徳島,発,22:58#佐古,発,23:05#吉成,発,23:12#勝瑞,発,23:15#池谷,発,23:20#阿波大谷,発,23:23#立道,発,23:26#教会前,発,23:29#金比羅前,発,23:32#撫養,発,23:35#鳴門,着,23:37#",
"4954D":"徳島,発,8:27#佐古,発,8:30#吉成,発,8:36#勝瑞,発,8:40#池谷,発,8:44#阿波大谷,発,8:46#立道,発,8:49#教会前,発,8:53#金比羅前,発,8:55#撫養,発,8:58#鳴門,着,9:01#",
"4956D":"徳島,発,9:05#佐古,発,9:09#吉成,発,9:15#勝瑞,発,9:17#池谷,発,9:26#阿波大谷,発,9:29#立道,発,9:32#教会前,発,9:35#金比羅前,発,9:37#撫養,発,9:40#鳴門,着,9:43#",
"4958D":"徳島,発,9:58#佐古,発,10:03#吉成,発,10:12#勝瑞,発,10:15#池谷,発,10:20#阿波大谷,発,10:23#立道,発,10:26#教会前,発,10:29#金比羅前,発,10:32#撫養,発,10:35#鳴門,着,10:37#",
"4960D":"徳島,発,10:58#佐古,発,11:03#吉成,発,11:12#勝瑞,発,11:15#池谷,発,11:20#阿波大谷,発,11:23#立道,発,11:26#教会前,発,11:29#金比羅前,発,11:32#撫養,発,11:35#鳴門,着,11:37#",
"4962D":"徳島,発,11:58#佐古,発,12:04#吉成,発,12:12#勝瑞,発,12:15#池谷,発,12:20#阿波大谷,発,12:23#立道,発,12:26#教会前,発,12:29#金比羅前,発,12:32#撫養,発,12:35#鳴門,着,12:37#",
"4964D":"徳島,発,12:58#佐古,発,13:03#吉成,発,13:12#勝瑞,発,13:15#池谷,発,13:20#阿波大谷,発,13:23#立道,発,13:26#教会前,発,13:29#金比羅前,発,13:32#撫養,発,13:35#鳴門,着,13:37#",
"4966D":"徳島,発,13:58#佐古,発,14:03#吉成,発,14:12#勝瑞,発,14:15#池谷,発,14:20#阿波大谷,発,14:23#立道,発,14:26#教会前,発,14:29#金比羅前,発,14:32#撫養,発,14:35#鳴門,着,14:37#",
"4978D":"徳島,発,19:58#佐古,発,20:03#吉成,発,20:15#勝瑞,発,20:18#池谷,発,20:23#阿波大谷,発,20:26#立道,発,20:29#教会前,発,20:32#金比羅前,発,20:34#撫養,発,20:38#鳴門,着,20:40#",
"951D":"鳴門,発,6:32#撫養,発,6:35#金比羅前,発,6:38#教会前,発,6:41#立道,発,6:44#阿波大谷,発,6:48#池谷,発,6:51#勝瑞,発,6:59#吉成,発,7:04#佐古,発,7:11#徳島,着,7:14#",
"953D":"鳴門,発,6:51#池谷,着,7:02#",
"955D":"鳴門,発,7:32#撫養,発,7:35#金比羅前,発,7:38#教会前,発,7:40#立道,発,7:44#阿波大谷,発,7:47#池谷,発,7:51#勝瑞,発,7:57#吉成,発,8:00#佐古,発,8:07#徳島,着,8:10#",
"957D":"鳴門,発,8:14#撫養,発,8:17#金比羅前,発,8:20#教会前,発,8:22#立道,発,8:26#阿波大谷,発,8:29#池谷,発,8:44#勝瑞,発,8:48#吉成,発,8:56#佐古,発,9:02#徳島,着,9:04#",
"973D":"鳴門,発,16:00#撫養,発,16:02#金比羅前,発,16:05#教会前,発,16:08#立道,発,16:11#阿波大谷,発,16:14#池谷,発,16:20#勝瑞,発,16:30#吉成,発,16:35#佐古,発,16:42#徳島,着,16:45#",
"975D":"鳴門,発,17:00#撫養,発,17:02#金比羅前,発,17:05#教会前,発,17:08#立道,発,17:11#阿波大谷,発,17:14#池谷,発,17:20#勝瑞,発,17:30#吉成,発,17:35#佐古,発,17:42#徳島,着,17:45#",
"977D":"鳴門,発,18:00#撫養,発,18:02#金比羅前,発,18:05#教会前,発,18:08#立道,発,18:11#阿波大谷,発,18:14#池谷,発,18:20#勝瑞,発,18:30#吉成,発,18:35#佐古,発,18:42#徳島,着,18:45#",
"979D":"鳴門,発,19:00#撫養,発,19:02#金比羅前,発,19:05#教会前,発,19:08#立道,発,19:11#阿波大谷,発,19:14#池谷,発,19:20#勝瑞,発,19:31#吉成,発,19:36#佐古,発,19:42#徳島,着,19:45#",
"981D":"鳴門,発,20:00#撫養,発,20:02#金比羅前,発,20:05#教会前,発,20:08#立道,発,20:11#阿波大谷,発,20:14#池谷,発,20:23#勝瑞,発,20:33#吉成,発,20:36#佐古,発,20:42#徳島,着,20:45#",
"4959D":"鳴門,発,9:08#撫養,発,9:10#金比羅前,発,9:13#教会前,発,9:16#立道,発,9:19#阿波大谷,発,9:22#池谷,発,9:33#勝瑞,発,9:37#吉成,発,9:39#佐古,発,9:46#徳島,着,9:48#",
"4961D":"鳴門,発,10:00#撫養,発,10:02#金比羅前,発,10:05#教会前,発,10:08#立道,発,10:11#阿波大谷,発,10:14#池谷,発,10:20#勝瑞,発,10:30#吉成,発,10:35#佐古,発,10:42#徳島,着,10:44#",
"4963D":"鳴門,発,11:00#撫養,発,11:02#金比羅前,発,11:05#教会前,発,11:08#立道,発,11:11#阿波大谷,発,11:14#池谷,発,11:20#勝瑞,発,11:30#吉成,発,11:35#佐古,発,11:42#徳島,着,11:45#",
"4965D":"鳴門,発,12:00#撫養,発,12:02#金比羅前,発,12:05#教会前,発,12:08#立道,発,12:11#阿波大谷,発,12:14#池谷,発,12:20#勝瑞,発,12:30#吉成,発,12:35#佐古,発,12:42#徳島,着,12:44#",
"4967D":"鳴門,発,13:00#撫養,発,13:02#金比羅前,発,13:05#教会前,発,13:08#立道,発,13:11#阿波大谷,発,13:14#池谷,発,13:20#勝瑞,発,13:30#吉成,発,13:35#佐古,発,13:42#徳島,着,13:45#",
"4969D":"鳴門,発,14:00#撫養,発,14:02#金比羅前,発,14:05#教会前,発,14:08#立道,発,14:11#阿波大谷,発,14:14#池谷,発,14:20#勝瑞,発,14:30#吉成,発,14:35#佐古,発,14:42#徳島,着,14:45#",
"4971D":"鳴門,発,15:00#撫養,発,15:02#金比羅前,発,15:05#教会前,発,15:08#立道,発,15:11#阿波大谷,発,15:14#池谷,発,15:20#勝瑞,発,15:30#吉成,発,15:35#佐古,発,15:42#徳島,着,15:44#",
"4983D":"鳴門,発,21:00#撫養,発,21:02#金比羅前,発,21:05#教会前,発,21:08#立道,発,21:11#阿波大谷,発,21:14#池谷,発,21:20#勝瑞,発,21:24#吉成,発,21:27#佐古,発,21:33#徳島,着,21:36#",
"434D":"阿波池田,発,5:43#佃,発,5:48#辻,発,5:51#阿波加茂,発,5:56#三加茂,発,5:59#江口,発,6:03#阿波半田,発,6:09#貞光,発,6:13#小島,発,6:18#穴吹,発,6:25#川田,発,6:30#阿波山川,発,6:34#山瀬,発,6:37#学,発,6:41#阿波川島,発,6:45#西麻植,発,6:48#鴨島,発,6:56#麻植塚,発,6:59#牛島,発,7:02#下浦,発,7:06#石井,発,7:12#府中,発,7:18#鮎喰,発,7:21#蔵本,発,7:25#佐古,発,7:31#徳島,着,7:34#",
"436D":"穴吹,発,6:45#川田,発,6:51#阿波山川,発,6:55#山瀬,発,6:58#学,発,7:05#阿波川島,発,7:09#西麻植,発,7:12#鴨島,発,7:15#麻植塚,発,7:18#牛島,発,7:21#下浦,発,7:25#石井,発,7:29#府中,発,7:34#鮎喰,発,7:37#蔵本,発,7:42#佐古,発,7:46#徳島,着,7:48#",
"438D":"阿波池田,発,6:25#佃,発,6:31#辻,発,6:34#阿波加茂,発,6:39#三加茂,発,6:42#江口,発,6:46#阿波半田,発,6:52#貞光,発,6:55#小島,発,7:01#穴吹,発,7:09#川田,発,7:16#阿波山川,発,7:20#山瀬,発,7:24#学,発,7:29#阿波川島,発,7:44#西麻植,発,7:47#鴨島,発,7:50#麻植塚,発,7:53#牛島,発,8:01#下浦,発,8:04#石井,発,8:09#府中,発,8:15#鮎喰,発,8:18#蔵本,発,8:23#佐古,発,8:27#徳島,着,8:30#",
"446D":"穴吹,発,9:42#川田,発,9:48#阿波山川,発,9:52#山瀬,発,9:56#学,発,10:00#阿波川島,発,10:05#西麻植,発,10:09#鴨島,発,10:12#麻植塚,発,10:16#牛島,発,10:21#下浦,発,10:25#石井,発,10:28#府中,発,10:36#鮎喰,発,10:40#蔵本,発,10:43#佐古,発,10:46#徳島,着,10:49#",
"450D":"阿波池田,発,9:34#佃,発,9:40#辻,発,9:43#阿波加茂,発,9:49#三加茂,発,9:53#江口,発,10:01#阿波半田,発,10:08#貞光,発,10:12#小島,発,10:18#穴吹,発,10:32#川田,発,10:38#阿波山川,発,10:42#山瀬,発,10:49#学,発,10:53#阿波川島,発,11:05#西麻植,発,11:08#鴨島,発,11:12#麻植塚,発,11:14#牛島,発,11:21#下浦,発,11:24#石井,発,11:36#府中,発,11:40#鮎喰,発,11:43#蔵本,発,11:46#佐古,発,11:49#徳島,着,11:51#",
"468D":"阿波川島,発,15:35#西麻植,発,15:39#鴨島,発,15:42#麻植塚,発,15:46#牛島,発,15:51#下浦,発,15:55#石井,発,15:59#府中,発,16:07#鮎喰,発,16:10#蔵本,発,16:13#佐古,発,16:17#徳島,着,16:20#",
"474D":"阿波池田,発,15:40#佃,発,15:45#辻,発,15:49#阿波加茂,発,15:55#三加茂,発,15:58#江口,発,16:02#阿波半田,発,16:09#貞光,発,16:15#小島,発,16:21#穴吹,発,16:32#川田,発,16:38#阿波山川,発,16:42#山瀬,発,16:47#学,発,16:52#阿波川島,発,17:05#西麻植,発,17:08#鴨島,発,17:12#麻植塚,発,17:15#牛島,発,17:21#下浦,発,17:25#石井,発,17:28#府中,発,17:37#鮎喰,発,17:40#蔵本,発,17:43#佐古,発,17:46#徳島,着,17:49#",
"476D":"阿波川島,発,17:35#西麻植,発,17:38#鴨島,発,17:42#麻植塚,発,17:45#牛島,発,17:51#下浦,発,17:55#石井,発,17:59#府中,発,18:10#鮎喰,発,18:13#蔵本,発,18:16#佐古,発,18:19#徳島,着,18:22#",
"478D":"阿波池田,発,16:56#佃,発,17:03#辻,発,17:06#阿波加茂,発,17:12#三加茂,発,17:15#江口,発,17:24#阿波半田,発,17:30#貞光,発,17:34#小島,発,17:40#穴吹,発,17:47#川田,発,17:55#阿波山川,発,17:59#山瀬,発,18:03#学,発,18:09#阿波川島,発,18:13#西麻植,発,18:17#鴨島,発,18:22#麻植塚,発,18:25#牛島,発,18:28#下浦,発,18:32#石井,発,18:35#府中,発,18:40#鮎喰,発,18:43#蔵本,発,18:46#佐古,発,18:49#徳島,着,18:52#",
"480D":"穴吹,発,18:32#川田,発,18:41#阿波山川,発,18:45#山瀬,発,18:51#学,発,18:55#阿波川島,発,19:05#西麻植,発,19:09#鴨島,発,19:12#麻植塚,発,19:16#牛島,発,19:21#下浦,発,19:25#石井,発,19:28#府中,発,19:37#鮎喰,発,19:40#蔵本,発,19:43#佐古,発,19:46#徳島,着,19:50#",
"484D":"穴吹,発,19:51#川田,発,19:59#阿波山川,発,20:03#山瀬,発,20:07#学,発,20:11#阿波川島,発,20:15#西麻植,発,20:19#鴨島,発,20:24#麻植塚,発,20:27#牛島,発,20:33#下浦,発,20:36#石井,発,20:40#府中,発,20:45#鮎喰,発,20:48#蔵本,発,20:58#佐古,発,21:02#徳島,着,21:04#",
"488D":"阿波池田,発,21:19#佃,発,21:25#辻,発,21:30#阿波加茂,発,21:36#三加茂,発,21:39#江口,発,21:44#阿波半田,発,21:54#貞光,発,21:57#小島,発,22:06#穴吹,発,22:13#川田,発,22:21#阿波山川,発,22:25#山瀬,発,22:29#学,発,22:33#阿波川島,発,22:37#西麻植,発,22:41#鴨島,発,22:44#麻植塚,発,22:48#牛島,発,22:51#下浦,発,22:55#石井,発,22:59#府中,発,23:05#鮎喰,発,23:08#蔵本,発,23:11#佐古,発,23:15#徳島,着,23:17#",
"4002D":"阿波池田,発,6:46#阿波加茂,発,6:57#貞光,発,7:09#穴吹,発,7:22#阿波山川,発,7:30#阿波川島,発,7:39#鴨島,発,7:43#石井,発,7:52#蔵本,発,7:59#徳島,着,8:03#",
"4004D":"阿波池田,発,10:30#阿波加茂,発,10:41#貞光,発,10:53#穴吹,発,11:04#阿波山川,発,11:12#阿波川島,発,11:22#鴨島,発,11:26#蔵本,発,11:39#徳島,着,11:43#",
"4006D":"阿波池田,発,14:30#阿波加茂,発,14:41#貞光,発,14:53#穴吹,発,15:06#阿波山川,発,15:15#阿波川島,発,15:24#鴨島,発,15:29#蔵本,発,15:47#徳島,着,15:51#",
"4430D":"阿波川島,発,5:55#西麻植,発,5:59#鴨島,発,6:02#麻植塚,発,6:06#牛島,発,6:09#下浦,発,6:13#石井,発,6:17#府中,発,6:21#鮎喰,発,6:25#蔵本,発,6:29#佐古,発,6:33#徳島,着,6:36#",
"4448D":"阿波川島,発,10:35#西麻植,発,10:38#鴨島,発,10:41#麻植塚,発,10:44#牛島,発,10:47#下浦,発,10:51#石井,発,10:55#府中,発,11:03#鮎喰,発,11:07#蔵本,発,11:09#佐古,発,11:12#徳島,着,11:15#",
"4452D":"阿波川島,発,11:35#西麻植,発,11:38#鴨島,発,11:42#麻植塚,発,11:45#牛島,発,11:52#下浦,発,11:55#石井,発,11:59#府中,発,12:03#鮎喰,発,12:07#蔵本,発,12:13#佐古,発,12:17#徳島,着,12:19#",
"4454D":"穴吹,発,11:32#川田,発,11:42#阿波山川,発,11:46#山瀬,発,11:49#学,発,11:54#阿波川島,発,12:05#西麻植,発,12:08#鴨島,発,12:11#麻植塚,発,12:15#牛島,発,12:27#下浦,発,12:30#石井,発,12:34#府中,発,12:38#鮎喰,発,12:42#蔵本,発,12:45#佐古,発,12:48#徳島,着,12:51#",
"4456D":"阿波川島,発,12:39#西麻植,発,12:43#鴨島,発,12:46#麻植塚,発,12:49#牛島,発,12:53#下浦,発,12:56#石井,発,13:00#府中,発,13:07#鮎喰,発,13:10#蔵本,発,13:13#佐古,発,13:17#徳島,着,13:20#",
"4458D":"穴吹,発,12:32#川田,発,12:42#阿波山川,発,12:46#山瀬,発,12:50#学,発,12:54#阿波川島,発,13:05#西麻植,発,13:09#鴨島,発,13:12#麻植塚,発,13:16#牛島,発,13:21#下浦,発,13:25#石井,発,13:28#府中,発,13:37#鮎喰,発,13:40#蔵本,発,13:43#佐古,発,13:46#徳島,着,13:49#",
"4460D":"阿波川島,発,13:35#西麻植,発,13:38#鴨島,発,13:42#麻植塚,発,13:45#牛島,発,13:51#下浦,発,13:55#石井,発,13:59#府中,発,14:07#鮎喰,発,14:10#蔵本,発,14:13#佐古,発,14:17#徳島,着,14:19#",
"4464D":"阿波川島,発,14:35#西麻植,発,14:38#鴨島,発,14:42#麻植塚,発,14:45#牛島,発,14:51#下浦,発,14:55#石井,発,14:59#府中,発,15:07#鮎喰,発,15:10#蔵本,発,15:13#佐古,発,15:17#徳島,着,15:19#",
"4466D":"穴吹,発,14:32#川田,発,14:38#阿波山川,発,14:42#山瀬,発,14:48#学,発,14:52#阿波川島,発,15:05#西麻植,発,15:08#鴨島,発,15:12#麻植塚,発,15:15#牛島,発,15:21#下浦,発,15:25#石井,発,15:28#府中,発,15:35#鮎喰,発,15:39#蔵本,発,15:42#佐古,発,15:45#徳島,着,15:47#",
"4470D":"穴吹,発,15:32#川田,発,15:38#阿波山川,発,15:42#山瀬,発,15:48#学,発,15:52#阿波川島,発,16:05#西麻植,発,16:08#鴨島,発,16:12#麻植塚,発,16:15#牛島,発,16:21#下浦,発,16:25#石井,発,16:28#府中,発,16:37#鮎喰,発,16:40#蔵本,発,16:43#佐古,発,16:46#徳島,着,16:49#",
"4472D":"阿波川島,発,16:35#西麻植,発,16:38#鴨島,発,16:42#麻植塚,発,16:45#牛島,発,16:51#下浦,発,16:55#石井,発,16:59#府中,発,17:07#鮎喰,発,17:10#蔵本,発,17:13#佐古,発,17:17#徳島,着,17:20#",
"4482D":"阿波池田,発,18:17#佃,発,18:22#辻,発,18:26#阿波加茂,発,18:34#三加茂,発,18:37#江口,発,18:41#阿波半田,発,18:48#貞光,発,18:56#小島,発,19:02#穴吹,発,19:09#川田,発,19:15#阿波山川,発,19:19#山瀬,発,19:22#学,発,19:27#阿波川島,発,19:35#西麻植,発,19:38#鴨島,発,19:42#麻植塚,発,19:45#牛島,発,19:51#下浦,発,19:55#石井,発,19:59#府中,発,20:04#鮎喰,発,20:08#蔵本,発,20:10#佐古,発,20:13#徳島,着,20:16#",
"5432D":"穴吹,発,5:57#川田,発,6:03#阿波山川,発,6:07#山瀬,発,6:10#学,発,6:14#阿波川島,発,6:19#西麻植,発,6:22#鴨島,発,6:26#麻植塚,発,6:29#牛島,発,6:32#下浦,発,6:36#石井,発,6:46#府中,発,6:52#鮎喰,発,6:56#蔵本,発,7:00#佐古,発,7:04#徳島,着,7:07#",
"5440D":"阿波池田,発,6:52#佃,発,7:00#辻,発,7:04#阿波加茂,発,7:10#三加茂,発,7:13#江口,発,7:20#阿波半田,発,7:26#貞光,発,7:36#小島,発,7:42#穴吹,発,7:51#川田,発,7:59#阿波山川,発,8:03#山瀬,発,8:07#学,発,8:11#阿波川島,発,8:16#西麻植,発,8:19#鴨島,発,8:22#麻植塚,発,8:26#牛島,発,8:29#下浦,発,8:33#石井,発,8:36#府中,発,8:41#鮎喰,発,8:44#蔵本,発,8:47#佐古,発,8:50#徳島,着,8:53#",
"5442D":"穴吹,発,8:12#川田,発,8:18#阿波山川,発,8:22#山瀬,発,8:26#学,発,8:30#阿波川島,発,8:35#西麻植,発,8:39#鴨島,発,8:42#麻植塚,発,8:45#牛島,発,8:51#下浦,発,8:56#石井,発,9:00#府中,発,9:08#鮎喰,発,9:11#蔵本,発,9:14#佐古,発,9:17#徳島,着,9:20#",
"5444D":"阿波池田,発,7:52#佃,発,7:58#辻,発,8:04#阿波加茂,発,8:10#三加茂,発,8:14#江口,発,8:18#阿波半田,発,8:25#貞光,発,8:29#小島,発,8:35#穴吹,発,8:43#川田,発,8:49#阿波山川,発,8:53#山瀬,発,8:57#学,発,9:01#阿波川島,発,9:05#西麻植,発,9:09#鴨島,発,9:19#麻植塚,発,9:22#牛島,発,9:26#下浦,発,9:30#石井,発,9:33#府中,発,9:38#鮎喰,発,9:42#蔵本,発,9:45#佐古,発,9:48#徳島,着,9:51#",
"5462D":"阿波池田,発,12:37#佃,発,12:43#辻,発,12:48#阿波加茂,発,12:54#三加茂,発,12:57#江口,発,13:03#阿波半田,発,13:10#貞光,発,13:16#小島,発,13:22#穴吹,発,13:32#川田,発,13:38#阿波山川,発,13:42#山瀬,発,13:48#学,発,13:52#阿波川島,発,14:05#西麻植,発,14:08#鴨島,発,14:12#麻植塚,発,14:15#牛島,発,14:21#下浦,発,14:25#石井,発,14:28#府中,発,14:37#鮎喰,発,14:40#蔵本,発,14:43#佐古,発,14:46#徳島,着,14:49#",
"5486D":"阿波池田,発,19:51#佃,発,19:57#辻,発,20:00#阿波加茂,発,20:06#三加茂,発,20:09#江口,発,20:14#阿波半田,発,20:24#貞光,発,20:27#小島,発,20:34#穴吹,発,20:42#川田,発,20:52#阿波山川,発,20:56#山瀬,発,21:00#学,発,21:04#阿波川島,発,21:08#西麻植,発,21:12#鴨島,発,21:15#麻植塚,発,21:18#牛島,発,21:22#下浦,発,21:25#石井,発,21:29#府中,発,21:34#鮎喰,発,21:37#蔵本,発,21:40#佐古,発,21:44#徳島,着,21:46#",
"8452D":"阿波池田,発,14:33#阿波加茂,発,14:52#貞光,発,15:24#穴吹,発,15:43#川田,発,15:58#学,発,16:12#鴨島,発,16:29#石井,発,16:49#蔵本,発,16:58#徳島,着,17:04#",
"433D":"徳島,発,6:23#佐古,発,6:26#蔵本,発,6:29#鮎喰,発,6:32#府中,発,6:35#石井,発,6:40#下浦,発,6:43#牛島,発,6:47#麻植塚,発,6:50#鴨島,発,6:54#西麻植,発,6:57#阿波川島,発,7:00#学,発,7:05#山瀬,発,7:09#阿波山川,発,7:12#川田,発,7:16#穴吹,発,7:23#小島,発,7:29#貞光,発,7:37#阿波半田,発,7:40#江口,発,7:46#三加茂,発,7:50#阿波加茂,発,7:53#辻,発,8:01#佃,発,8:04#阿波池田,着,8:09#",
"439D":"徳島,発,8:12#佐古,発,8:15#蔵本,発,8:21#鮎喰,発,8:24#府中,発,8:28#石井,発,8:37#下浦,発,8:41#牛島,発,8:50#麻植塚,発,8:53#鴨島,発,8:56#西麻植,発,9:00#阿波川島,発,9:09#学,発,9:13#山瀬,発,9:17#阿波山川,発,9:21#川田,発,9:25#穴吹,着,9:30#",
"451D":"徳島,発,11:52#佐古,発,11:55#蔵本,発,11:58#鮎喰,発,12:00#府中,発,12:07#石井,発,12:20#下浦,発,12:23#牛島,発,12:27#麻植塚,発,12:30#鴨島,発,12:33#西麻植,発,12:36#阿波川島,発,12:39#学,発,12:44#山瀬,発,12:50#阿波山川,発,12:53#川田,発,12:57#穴吹,発,13:03#小島,発,13:09#貞光,発,13:16#阿波半田,発,13:19#江口,発,13:25#三加茂,発,13:29#阿波加茂,発,13:32#辻,発,13:37#佃,発,13:41#阿波池田,着,13:47#",
"461D":"徳島,発,14:22#佐古,発,14:26#蔵本,発,14:30#鮎喰,発,14:33#府中,発,14:37#石井,発,14:43#下浦,発,14:47#牛島,発,14:51#麻植塚,発,14:54#鴨島,発,14:57#西麻植,発,15:00#阿波川島,着,15:03#",
"463D":"徳島,発,14:52#佐古,発,14:56#蔵本,発,14:59#鮎喰,発,15:02#府中,発,15:07#石井,発,15:13#下浦,発,15:17#牛島,発,15:21#麻植塚,発,15:24#鴨島,発,15:29#西麻植,発,15:32#阿波川島,発,15:39#学,発,15:43#山瀬,発,15:47#阿波山川,発,15:51#川田,発,15:56#穴吹,発,16:03#小島,発,16:09#貞光,発,16:15#阿波半田,発,16:19#江口,発,16:25#三加茂,発,16:29#阿波加茂,発,16:33#辻,発,16:39#佃,発,16:42#阿波池田,着,16:48#",
"469D":"徳島,発,16:22#佐古,発,16:26#蔵本,発,16:30#鮎喰,発,16:33#府中,発,16:37#石井,発,16:43#下浦,発,16:47#牛島,発,16:51#麻植塚,発,16:54#鴨島,発,16:58#西麻植,発,17:01#阿波川島,着,17:03#",
"473D":"徳島,発,17:22#佐古,発,17:26#蔵本,発,17:30#鮎喰,発,17:33#府中,発,17:37#石井,発,17:43#下浦,発,17:47#牛島,発,17:51#麻植塚,発,17:54#鴨島,発,17:57#西麻植,発,18:00#阿波川島,発,18:04#学,発,18:09#山瀬,発,18:13#阿波山川,発,18:17#川田,発,18:21#穴吹,着,18:26#",
"475D":"徳島,発,17:52#佐古,発,17:55#蔵本,発,17:58#鮎喰,発,18:00#府中,発,18:04#石井,発,18:19#下浦,発,18:22#牛島,発,18:29#麻植塚,発,18:32#鴨島,発,18:36#西麻植,発,18:39#阿波川島,発,18:42#学,発,18:46#山瀬,発,18:51#阿波山川,発,18:54#川田,発,18:58#穴吹,発,19:09#小島,発,19:16#貞光,発,19:23#阿波半田,発,19:27#江口,発,19:37#三加茂,発,19:42#阿波加茂,発,19:46#辻,発,19:52#佃,発,19:56#阿波池田,着,20:02#",
"477D":"徳島,発,18:22#佐古,発,18:26#蔵本,発,18:30#鮎喰,発,18:33#府中,発,18:40#石井,発,18:45#下浦,発,18:49#牛島,発,18:53#麻植塚,発,18:56#鴨島,発,18:59#西麻植,発,19:02#阿波川島,発,19:09#学,発,19:13#山瀬,発,19:23#阿波山川,発,19:27#川田,発,19:31#穴吹,着,19:38#",
"485D":"徳島,発,20:52#佐古,発,20:55#蔵本,発,20:59#鮎喰,発,21:02#府中,発,21:07#石井,発,21:12#下浦,発,21:16#牛島,発,21:21#麻植塚,発,21:25#鴨島,発,21:28#西麻植,発,21:31#阿波川島,発,21:35#学,発,21:39#山瀬,発,21:43#阿波山川,発,21:47#川田,発,21:52#穴吹,発,22:00#小島,発,22:07#貞光,発,22:14#阿波半田,発,22:17#江口,発,22:27#三加茂,発,22:32#阿波加茂,発,22:36#辻,発,22:42#佃,発,22:45#阿波池田,着,22:50#",
"487D":"徳島,発,21:52#佐古,発,21:56#蔵本,発,21:59#鮎喰,発,22:02#府中,発,22:07#石井,発,22:13#下浦,発,22:17#牛島,発,22:21#麻植塚,発,22:24#鴨島,発,22:27#西麻植,発,22:31#阿波川島,発,22:37#学,発,22:42#山瀬,発,22:46#阿波山川,発,22:50#川田,発,22:54#穴吹,着,23:01#",
"4001D":"徳島,発,9:00#蔵本,発,9:04#石井,発,9:11#鴨島,発,9:19#阿波川島,発,9:24#阿波山川,発,9:33#穴吹,発,9:41#貞光,発,9:52#阿波加茂,発,10:04#阿波池田,着,10:15#",
"4003D":"徳島,発,12:00#蔵本,発,12:09#鴨島,発,12:23#阿波川島,発,12:27#阿波山川,発,12:36#穴吹,発,12:44#貞光,発,12:55#阿波加茂,発,13:07#阿波池田,着,13:18#",
"4005D":"徳島,発,18:00#蔵本,発,18:07#鴨島,発,18:22#阿波川島,発,18:28#阿波山川,発,18:37#穴吹,発,18:45#貞光,発,18:56#阿波加茂,発,19:08#阿波池田,着,19:19#",
"4007D":"徳島,発,20:17#蔵本,発,20:21#石井,発,20:28#鴨島,発,20:35#阿波川島,発,20:40#阿波山川,発,20:49#穴吹,発,20:58#貞光,発,21:10#阿波加茂,発,21:24#阿波池田,着,21:35#",
"4441D":"徳島,発,9:22#佐古,発,9:26#蔵本,発,9:30#鮎喰,発,9:33#府中,発,9:38#石井,発,9:43#下浦,発,9:47#牛島,発,9:50#麻植塚,発,9:54#鴨島,発,9:57#西麻植,発,10:00#阿波川島,着,10:03#",
"4443D":"徳島,発,9:52#佐古,発,9:56#蔵本,発,9:59#鮎喰,発,10:02#府中,発,10:07#石井,発,10:13#下浦,発,10:17#牛島,発,10:21#麻植塚,発,10:24#鴨島,発,10:27#西麻植,発,10:31#阿波川島,発,10:39#学,発,10:43#山瀬,発,10:47#阿波山川,発,10:51#川田,発,10:56#穴吹,着,11:01#",
"4445D":"徳島,発,10:22#佐古,発,10:25#蔵本,発,10:28#鮎喰,発,10:30#府中,発,10:34#石井,発,10:38#下浦,発,10:42#牛島,発,10:51#麻植塚,発,10:54#鴨島,発,10:57#西麻植,発,11:00#阿波川島,着,11:03#",
"4447D":"徳島,発,10:52#佐古,発,10:55#蔵本,発,10:58#鮎喰,発,11:00#府中,発,11:04#石井,発,11:08#下浦,発,11:12#牛島,発,11:18#麻植塚,発,11:21#鴨島,発,11:27#西麻植,発,11:31#阿波川島,発,11:39#学,発,11:43#山瀬,発,11:49#阿波山川,発,11:53#川田,発,11:58#穴吹,着,12:03#",
"4449D":"徳島,発,11:22#佐古,発,11:25#蔵本,発,11:28#鮎喰,発,11:30#府中,発,11:40#石井,発,11:45#下浦,発,11:48#牛島,発,11:52#麻植塚,発,11:55#鴨島,発,11:58#西麻植,発,12:01#阿波川島,着,12:04#",
"4453D":"徳島,発,12:22#佐古,発,12:26#蔵本,発,12:30#鮎喰,発,12:33#府中,発,12:38#石井,発,12:43#下浦,発,12:47#牛島,発,12:53#麻植塚,発,12:56#鴨島,発,12:59#西麻植,発,13:02#阿波川島,着,13:05#",
"4455D":"徳島,発,12:52#佐古,発,12:56#蔵本,発,12:59#鮎喰,発,13:02#府中,発,13:07#石井,発,13:13#下浦,発,13:17#牛島,発,13:21#麻植塚,発,13:24#鴨島,発,13:27#西麻植,発,13:31#阿波川島,発,13:39#学,発,13:43#山瀬,発,13:47#阿波山川,発,13:51#川田,発,13:56#穴吹,着,14:01#",
"4457D":"徳島,発,13:22#佐古,発,13:26#蔵本,発,13:30#鮎喰,発,13:33#府中,発,13:37#石井,発,13:43#下浦,発,13:47#牛島,発,13:51#麻植塚,発,13:54#鴨島,発,13:57#西麻植,発,14:00#阿波川島,着,14:03#",
"4459D":"徳島,発,13:52#佐古,発,13:56#蔵本,発,13:59#鮎喰,発,14:02#府中,発,14:07#石井,発,14:13#下浦,発,14:17#牛島,発,14:21#麻植塚,発,14:24#鴨島,発,14:27#西麻植,発,14:31#阿波川島,発,14:39#学,発,14:43#山瀬,発,14:47#阿波山川,発,14:51#川田,発,14:56#穴吹,着,15:01#",
"4465D":"徳島,発,15:22#佐古,発,15:26#蔵本,発,15:30#鮎喰,発,15:32#府中,発,15:35#石井,発,15:43#下浦,発,15:47#牛島,発,15:51#麻植塚,発,15:54#鴨島,発,15:57#西麻植,発,16:01#阿波川島,着,16:03#",
"5431D":"穴吹,発,6:53#小島,発,7:01#貞光,発,7:09#阿波半田,発,7:13#江口,発,7:20#三加茂,発,7:24#阿波加茂,発,7:28#辻,発,7:34#佃,発,7:37#阿波池田,着,7:43#",
"5435D":"徳島,発,6:54#佐古,発,6:57#蔵本,発,7:01#鮎喰,発,7:03#府中,発,7:07#石井,発,7:12#下浦,発,7:16#牛島,発,7:22#麻植塚,発,7:26#鴨島,発,7:29#西麻植,発,7:33#阿波川島,発,7:40#学,発,7:45#山瀬,発,7:49#阿波山川,発,7:54#川田,発,7:58#穴吹,着,8:04#",
"5437D":"徳島,発,7:35#佐古,発,7:38#蔵本,発,7:42#鮎喰,発,7:45#府中,発,7:48#石井,発,7:53#下浦,発,7:57#牛島,発,8:01#麻植塚,発,8:04#鴨島,発,8:07#西麻植,発,8:10#阿波川島,発,8:15#学,発,8:20#山瀬,発,8:26#阿波山川,発,8:30#川田,発,8:34#穴吹,発,8:53#小島,発,9:00#貞光,発,9:06#阿波半田,発,9:10#江口,発,9:17#三加茂,発,9:21#阿波加茂,発,9:25#辻,発,9:31#佃,発,9:40#阿波池田,着,9:45#",
"5467D":"徳島,発,15:52#佐古,発,15:56#蔵本,発,15:59#鮎喰,発,16:02#府中,発,16:07#石井,発,16:13#下浦,発,16:17#牛島,発,16:21#麻植塚,発,16:24#鴨島,発,16:27#西麻植,発,16:31#阿波川島,発,16:39#学,発,16:43#山瀬,発,16:47#阿波山川,発,16:51#川田,発,16:56#穴吹,発,17:01#小島,発,17:08#貞光,発,17:14#阿波半田,発,17:17#江口,発,17:24#三加茂,発,17:28#阿波加茂,発,17:32#辻,発,17:38#佃,発,17:41#阿波池田,着,17:47#",
"5471D":"徳島,発,16:52#佐古,発,16:55#蔵本,発,16:59#鮎喰,発,17:02#府中,発,17:07#石井,発,17:13#下浦,発,17:17#牛島,発,17:21#麻植塚,発,17:24#鴨島,発,17:27#西麻植,発,17:31#阿波川島,発,17:39#学,発,17:43#山瀬,発,17:47#阿波山川,発,17:51#川田,発,17:56#穴吹,発,18:03#小島,発,18:09#貞光,発,18:15#阿波半田,発,18:19#江口,発,18:26#三加茂,発,18:30#阿波加茂,発,18:34#辻,発,18:40#佃,発,18:44#阿波池田,着,18:49#",
"5479D":"徳島,発,18:52#佐古,発,18:56#蔵本,発,18:59#鮎喰,発,19:02#府中,発,19:07#石井,発,19:13#下浦,発,19:17#牛島,発,19:21#麻植塚,発,19:24#鴨島,発,19:27#西麻植,発,19:31#阿波川島,発,19:39#学,発,19:43#山瀬,発,19:47#阿波山川,発,19:51#川田,発,19:59#穴吹,発,20:09#小島,発,20:16#貞光,発,20:27#阿波半田,発,20:31#江口,発,20:41#三加茂,発,20:46#阿波加茂,発,20:50#辻,発,20:56#佃,発,21:00#阿波池田,着,21:05#",
"5481D":"徳島,発,19:22#佐古,発,19:26#蔵本,発,19:30#鮎喰,発,19:33#府中,発,19:37#石井,発,19:43#下浦,発,19:47#牛島,発,19:51#麻植塚,発,19:54#鴨島,発,19:57#西麻植,発,20:00#阿波川島,発,20:04#学,発,20:13#山瀬,発,20:18#阿波山川,発,20:22#川田,発,20:26#穴吹,着,20:34#",
"5483D":"徳島,発,19:52#佐古,発,19:55#蔵本,発,19:58#鮎喰,発,20:01#府中,発,20:05#石井,発,20:09#下浦,発,20:13#牛島,発,20:17#麻植塚,発,20:21#鴨島,発,20:27#西麻植,発,20:31#阿波川島,発,20:44#学,発,20:48#山瀬,発,21:00#阿波山川,発,21:04#川田,発,21:08#穴吹,着,21:18#",
"5489D":"徳島,発,22:52#佐古,発,22:55#蔵本,発,22:58#鮎喰,発,23:01#府中,発,23:05#石井,発,23:09#下浦,発,23:13#牛島,発,23:17#麻植塚,発,23:21#鴨島,発,23:24#西麻植,発,23:27#阿波川島,発,23:30#学,発,23:35#山瀬,発,23:39#阿波山川,発,23:43#川田,発,23:47#穴吹,着,23:54#",
"8451D":"徳島,発,10:35#蔵本,発,10:42#石井,発,10:54#鴨島,発,11:11#阿波川島,発,11:22#穴吹,発,11:50#貞光,発,12:18#阿波加茂,発,12:39#阿波池田,着,12:59#",
// 牟岐線運用
// 上り
"4520D":"阿南,発,05:44#阿波中島,発,05:48#西原,発,05:52#羽ノ浦,発,05:56#立江,発,06:00#阿波赤石,発,06:03#南小松島,発,06:08#中田,発,06:11#地蔵橋,発,06:16#文化の森,発,06:20#二軒屋,発,06:22#阿波富田,発,06:26#徳島,着,06:28#",
"522D":"牟岐,発,05:40#辺川,発,05:44#山河内,発,05:52#日和佐,発,05:58#北河内,発,06:01#木岐,発,06:06#由岐,発,06:10#阿波福井,発,06:17#新野,発,06:21#桑野,発,06:26#阿波橘,発,06:31#見能林,発,06:34#阿南,発,06:47#阿波中島,発,06:51#西原,発,06:54#羽ノ浦,発,06:57#立江,発,07:01#阿波赤石,発,07:03#南小松島,発,07:08#中田,発,07:11#地蔵橋,発,07:15#文化の森,発,07:18#二軒屋,発,07:23#阿波富田,発,07:26#徳島,着,07:28#",
"524D":"阿南,発,07:01#阿波中島,発,07:05#西原,発,07:09#羽ノ浦,発,07:13#立江,発,07:17#阿波赤石,発,07:20#南小松島,発,07:25#中田,発,07:34#地蔵橋,発,07:38#文化の森,発,07:42#二軒屋,発,07:44#阿波富田,発,07:48#徳島,着,07:50#",
"526D":"桑野,発,07:02#阿波橘,発,07:07#見能林,発,07:11#阿南,発,07:15#阿波中島,発,07:19#西原,発,07:22#羽ノ浦,発,07:28#立江,発,07:32#阿波赤石,発,07:35#南小松島,発,07:41#中田,発,07:45#地蔵橋,発,07:49#文化の森,発,07:52#二軒屋,発,08:00#阿波富田,発,08:04#徳島,着,08:06#",
"528D":"牟岐,発,06:32#辺川,発,06:36#山河内,発,06:43#日和佐,発,06:50#北河内,発,06:53#木岐,発,06:58#由岐,発,07:04#阿波福井,発,07:11#新野,発,07:16#桑野,発,07:21#阿波橘,発,07:26#見能林,発,07:30#阿南,発,07:36#阿波中島,発,07:40#西原,発,07:43#羽ノ浦,発,07:47#立江,発,07:51#阿波赤石,発,07:54#南小松島,発,08:00#中田,発,08:07#地蔵橋,発,08:11#文化の森,発,08:15#二軒屋,発,08:17#阿波富田,発,08:20#徳島,着,08:22#",
"530D":"阿波海南,発,06:57#浅川,発,07:01#鯖瀬,発,07:05#牟岐,発,07:12#辺川,発,07:17#山河内,発,07:24#日和佐,発,07:31#北河内,発,07:34#木岐,発,07:39#由岐,発,07:43#阿波福井,発,07:50#新野,発,07:54#桑野,発,07:59#阿波橘,発,08:04#見能林,発,08:07#阿南,発,08:14#阿波中島,発,08:18#西原,発,08:21#羽ノ浦,発,08:25#立江,発,08:28#阿波赤石,発,08:31#南小松島,発,08:39#中田,発,08:42#地蔵橋,発,08:46#文化の森,発,08:49#二軒屋,発,08:52#阿波富田,発,08:55#徳島,着,08:57#",
"532D":"桑野,発,08:31#阿波橘,発,08:36#見能林,発,08:40#阿南,発,08:44#阿波中島,発,08:48#西原,発,08:51#羽ノ浦,発,08:57#立江,発,09:01#阿波赤石,発,09:03#南小松島,発,09:08#中田,発,09:12#地蔵橋,発,09:16#文化の森,発,09:20#二軒屋,発,09:23#阿波富田,発,09:26#徳島,着,09:29#",
"534D":"阿南,発,09:26#阿波中島,発,09:30#西原,発,09:33#羽ノ浦,発,09:37#立江,発,09:40#阿波赤石,発,09:43#南小松島,発,09:50#中田,発,09:53#地蔵橋,発,09:57#文化の森,発,10:00#二軒屋,発,10:06#阿波富田,発,10:09#徳島,着,10:12#",
"4536D":"阿波海南,発,08:25#浅川,発,08:29#鯖瀬,発,08:33#牟岐,発,08:54#辺川,発,08:58#山河内,発,09:06#日和佐,発,09:13#北河内,発,09:16#木岐,発,09:21#由岐,発,09:25#阿波福井,発,09:32#新野,発,09:36#桑野,発,09:41#阿波橘,発,09:46#見能林,発,09:49#阿南,着,09:52#",
"536D":"阿南,発,09:56#阿波中島,発,10:00#西原,発,10:03#羽ノ浦,発,10:07#立江,発,10:10#阿波赤石,発,10:13#南小松島,発,10:20#中田,発,10:23#地蔵橋,発,10:27#文化の森,発,10:30#二軒屋,発,10:36#阿波富田,発,10:39#徳島,着,10:42#",
"538D":"阿南,発,10:26#阿波中島,発,10:30#西原,発,10:33#羽ノ浦,発,10:37#立江,発,10:40#阿波赤石,発,10:43#南小松島,発,10:50#中田,発,10:53#地蔵橋,発,10:57#文化の森,発,11:00#二軒屋,発,11:06#阿波富田,発,11:09#徳島,着,11:12#",
"540D":"阿南,発,10:56#阿波中島,発,11:00#西原,発,11:03#羽ノ浦,発,11:07#立江,発,11:10#阿波赤石,発,11:13#南小松島,発,11:20#中田,発,11:23#地蔵橋,発,11:27#文化の森,発,11:30#二軒屋,発,11:36#阿波富田,発,11:39#徳島,着,11:42#",
"542D":"牟岐,発,10:24#辺川,発,10:28#山河内,発,10:36#日和佐,発,10:43#北河内,発,10:46#木岐,発,10:51#由岐,発,10:55#阿波福井,発,11:02#新野,発,11:06#桑野,発,11:11#阿波橘,発,11:16#見能林,発,11:19#阿南,発,11:26#阿波中島,発,11:30#西原,発,11:33#羽ノ浦,発,11:37#立江,発,11:40#阿波赤石,発,11:43#南小松島,発,11:50#中田,発,11:53#地蔵橋,発,11:57#文化の森,発,12:00#二軒屋,発,12:06#阿波富田,発,12:09#徳島,着,12:12#",
"4544D":"阿南,発,11:56#阿波中島,発,12:00#西原,発,12:03#羽ノ浦,発,12:07#立江,発,12:10#阿波赤石,発,12:13#南小松島,発,12:20#中田,発,12:23#地蔵橋,発,12:27#文化の森,発,12:30#二軒屋,発,12:36#阿波富田,発,12:39#徳島,着,12:42#",
"4546D":"阿南,発,12:26#阿波中島,発,12:30#西原,発,12:33#羽ノ浦,発,12:37#立江,発,12:40#阿波赤石,発,12:43#南小松島,発,12:50#中田,発,12:53#地蔵橋,発,12:57#文化の森,発,13:00#二軒屋,発,13:06#阿波富田,発,13:09#徳島,着,13:12#",
"4548D":"阿南,発,12:56#阿波中島,発,13:00#西原,発,13:03#羽ノ浦,発,13:07#立江,発,13:10#阿波赤石,発,13:13#南小松島,発,13:20#中田,発,13:23#地蔵橋,発,13:27#文化の森,発,13:30#二軒屋,発,13:36#阿波富田,発,13:39#徳島,着,13:42#",
"4550D":"阿波海南,発,12:08#浅川,発,12:12#鯖瀬,発,12:16#牟岐,発,12:24#辺川,発,12:28#山河内,発,12:36#日和佐,発,12:43#北河内,発,12:46#木岐,発,12:51#由岐,発,12:55#阿波福井,発,13:02#新野,発,13:06#桑野,発,13:11#阿波橘,発,13:16#見能林,発,13:19#阿南,発,13:26#阿波中島,発,13:30#西原,発,13:33#羽ノ浦,発,13:37#立江,発,13:40#阿波赤石,発,13:43#南小松島,発,13:50#中田,発,13:53#地蔵橋,発,13:57#文化の森,発,14:00#二軒屋,発,14:06#阿波富田,発,14:09#徳島,着,14:12#",
"552D":"阿南,発,13:56#阿波中島,発,14:00#西原,発,14:03#羽ノ浦,発,14:07#立江,発,14:10#阿波赤石,発,14:13#南小松島,発,14:20#中田,発,14:23#地蔵橋,発,14:27#文化の森,発,14:30#二軒屋,発,14:36#阿波富田,発,14:39#徳島,着,14:42#",
"4554D":"阿南,発,14:26#阿波中島,発,14:30#西原,発,14:33#羽ノ浦,発,14:37#立江,発,14:40#阿波赤石,発,14:43#南小松島,発,14:50#中田,発,14:53#地蔵橋,発,14:57#文化の森,発,15:00#二軒屋,発,15:06#阿波富田,発,15:09#徳島,着,15:12#",
"4556D":"阿南,発,14:56#阿波中島,発,15:00#西原,発,15:03#羽ノ浦,発,15:07#立江,発,15:10#阿波赤石,発,15:13#南小松島,発,15:20#中田,発,15:23#地蔵橋,発,15:27#文化の森,発,15:30#二軒屋,発,15:36#阿波富田,発,15:39#徳島,着,15:41#",
"4558D":"阿波海南,発,14:08#浅川,発,14:12#鯖瀬,発,14:16#牟岐,発,14:24#辺川,発,14:28#山河内,発,14:36#日和佐,発,14:43#北河内,発,14:46#木岐,発,14:51#由岐,発,14:55#阿波福井,発,15:02#新野,発,15:06#桑野,発,15:11#阿波橘,発,15:16#見能林,発,15:19#阿南,発,15:26#阿波中島,発,15:30#西原,発,15:33#羽ノ浦,発,15:37#立江,発,15:40#阿波赤石,発,15:43#南小松島,発,15:50#中田,発,15:53#地蔵橋,発,15:57#文化の森,発,16:00#二軒屋,発,16:06#阿波富田,発,16:09#徳島,着,16:12#",
"560D":"阿南,発,15:56#阿波中島,発,16:00#西原,発,16:03#羽ノ浦,発,16:07#立江,発,16:10#阿波赤石,発,16:13#南小松島,発,16:20#中田,発,16:23#地蔵橋,発,16:27#文化の森,発,16:30#二軒屋,発,16:36#阿波富田,発,16:39#徳島,着,16:42#",
"562D":"桑野,発,16:11#阿波橘,発,16:16#見能林,発,16:19#阿南,発,16:26#阿波中島,発,16:30#西原,発,16:33#羽ノ浦,発,16:37#立江,発,16:40#阿波赤石,発,16:43#南小松島,発,16:50#中田,発,16:53#地蔵橋,発,16:57#文化の森,発,17:00#二軒屋,発,17:06#阿波富田,発,17:09#徳島,着,17:12#",
"564D":"阿南,発,16:56#阿波中島,発,17:00#西原,発,17:03#羽ノ浦,発,17:07#立江,発,17:10#阿波赤石,発,17:13#南小松島,発,17:20#中田,発,17:23#地蔵橋,発,17:27#文化の森,発,17:30#二軒屋,発,17:36#阿波富田,発,17:39#徳島,着,17:42#",
"4566D":"阿波海南,発,16:08#浅川,発,16:12#鯖瀬,発,16:16#牟岐,発,16:24#辺川,発,16:28#山河内,発,16:36#日和佐,発,16:43#北河内,発,16:46#木岐,発,16:51#由岐,発,16:55#阿波福井,発,17:02#新野,発,17:06#桑野,発,17:11#阿波橘,発,17:16#見能林,発,17:19#阿南,着,17:22#",
"566D":"阿南,発,17:26#阿波中島,発,17:30#西原,発,17:33#羽ノ浦,発,17:37#立江,発,17:40#阿波赤石,発,17:43#南小松島,発,17:50#中田,発,17:53#地蔵橋,発,17:57#文化の森,発,18:00#二軒屋,発,18:06#阿波富田,発,18:09#徳島,着,18:12#",
"568D":"阿南,発,17:56#阿波中島,発,18:00#西原,発,18:03#羽ノ浦,発,18:07#立江,発,18:10#阿波赤石,発,18:13#南小松島,発,18:20#中田,発,18:23#地蔵橋,発,18:27#文化の森,発,18:30#二軒屋,発,18:36#阿波富田,発,18:39#徳島,着,18:42#",
"570D":"阿南,発,18:26#阿波中島,発,18:30#西原,発,18:33#羽ノ浦,発,18:37#立江,発,18:40#阿波赤石,発,18:43#南小松島,発,18:50#中田,発,18:53#地蔵橋,発,18:57#文化の森,発,19:00#二軒屋,発,19:06#阿波富田,発,19:09#徳島,着,19:12#",
"4572D":"阿波海南,発,17:26#浅川,発,17:29#鯖瀬,発,17:33#牟岐,発,17:41#辺川,発,17:45#山河内,発,17:53#日和佐,発,18:02#北河内,発,18:05#木岐,発,18:10#由岐,発,18:14#阿波福井,発,18:22#新野,発,18:26#桑野,発,18:38#阿波橘,発,18:43#見能林,発,18:46#阿南,発,18:56#阿波中島,発,19:00#西原,発,19:03#羽ノ浦,発,19:07#立江,発,19:10#阿波赤石,発,19:13#南小松島,発,19:20#中田,発,19:23#地蔵橋,発,19:27#文化の森,発,19:30#二軒屋,発,19:36#阿波富田,発,19:39#徳島,着,19:42#",
"574D":"阿南,発,19:26#阿波中島,発,19:30#西原,発,19:33#羽ノ浦,発,19:37#立江,発,19:40#阿波赤石,発,19:43#南小松島,発,19:50#中田,発,19:53#地蔵橋,発,19:57#文化の森,発,20:00#二軒屋,発,20:06#阿波富田,発,20:09#徳島,着,20:12#",
"4576D":"阿波海南,発,18:26#浅川,発,18:29#鯖瀬,発,18:33#牟岐,発,18:41#辺川,発,18:45#山河内,発,18:53#日和佐,発,19:02#北河内,発,19:05#木岐,発,19:10#由岐,発,19:14#阿波福井,発,19:22#新野,発,19:26#桑野,発,19:30#阿波橘,発,19:35#見能林,発,19:38#阿南,着,19:41#",
"576D":"阿南,発,19:56#阿波中島,発,20:00#西原,発,20:03#羽ノ浦,発,20:07#立江,発,20:10#阿波赤石,発,20:13#南小松島,発,20:20#中田,発,20:23#地蔵橋,発,20:27#文化の森,発,20:30#二軒屋,発,20:36#阿波富田,発,20:39#徳島,着,20:42#",
"578D":"阿南,発,20:56#阿波中島,発,21:00#西原,発,21:03#羽ノ浦,発,21:07#立江,発,21:10#阿波赤石,発,21:13#南小松島,発,21:20#中田,発,21:23#地蔵橋,発,21:27#文化の森,発,21:30#二軒屋,発,21:36#阿波富田,発,21:39#徳島,着,21:42#",
"4580D":"阿波海南,発,20:34#浅川,発,20:38#鯖瀬,発,20:44#牟岐,発,20:57#辺川,発,21:03#山河内,発,21:12#日和佐,発,21:20#北河内,発,21:23#木岐,発,21:28#由岐,発,21:32#阿波福井,発,21:41#新野,発,21:45#桑野,発,21:50#阿波橘,発,21:55#見能林,発,21:58#阿南,着,22:00#",
"580D":"阿南,発,22:03#阿波中島,発,22:07#西原,発,22:10#羽ノ浦,発,22:14#立江,発,22:18#阿波赤石,発,22:20#南小松島,発,22:25#中田,発,22:28#地蔵橋,発,22:32#文化の森,発,22:36#二軒屋,発,22:39#阿波富田,発,22:42#徳島,着,22:44#",
//下り
"521D":"牟岐,発,06:34#鯖瀬,発,06:39#浅川,発,06:43#阿波海南,着,06:47#",
"4523D":"徳島,発,05:45#阿波富田,発,05:48#二軒屋,発,05:51#文化の森,発,05:53#地蔵橋,発,05:57#中田,発,06:01#南小松島,発,06:07#阿波赤石,発,06:12#立江,発,06:15#羽ノ浦,発,06:18#西原,発,06:22#阿波中島,発,06:25#阿南,発,06:37#見能林,発,06:40#阿波橘,発,06:43#桑野,発,06:48#新野,発,06:53#阿波福井,発,06:56#由岐,発,07:12#木岐,発,07:15#北河内,発,07:21#日和佐,発,07:31#山河内,発,07:38#辺川,発,07:44#牟岐,発,07:51#鯖瀬,発,07:56#浅川,発,08:00#阿波海南,着,08:03#",
"525D":"徳島,発,06:46#阿波富田,発,06:49#二軒屋,発,06:52#文化の森,発,06:54#地蔵橋,発,06:57#中田,発,07:02#南小松島,発,07:07#阿波赤石,発,07:12#立江,発,07:17#羽ノ浦,発,07:25#西原,発,07:29#阿波中島,発,07:32#阿南,発,07:45#見能林,発,07:49#阿波橘,発,07:52#桑野,発,07:59#新野,発,08:03#阿波福井,発,08:07#由岐,発,08:14#木岐,発,08:17#北河内,発,08:22#日和佐,発,08:25#山河内,発,08:32#辺川,発,08:39#牟岐,着,08:43#",
"527D":"徳島,発,07:17#阿波富田,発,07:20#二軒屋,発,07:23#文化の森,発,07:25#地蔵橋,発,07:29#中田,発,07:34#南小松島,発,07:39#阿波赤石,発,07:44#立江,発,07:51#羽ノ浦,発,07:54#西原,発,07:58#阿波中島,発,08:01#阿南,発,08:10#見能林,発,08:14#阿波橘,発,08:18#桑野,着,08:23#",
"529D":"徳島,発,07:51#阿波富田,発,07:55#二軒屋,発,07:58#文化の森,発,08:00#地蔵橋,発,08:03#中田,発,08:08#南小松島,発,08:12#阿波赤石,発,08:16#立江,発,08:19#羽ノ浦,発,08:25#西原,発,08:28#阿波中島,発,08:31#阿南,着,08:35#",
"531D":"徳島,発,08:24#阿波富田,発,08:27#二軒屋,発,08:30#文化の森,発,08:32#地蔵橋,発,08:36#中田,発,08:42#南小松島,発,08:45#阿波赤石,発,08:50#立江,発,08:54#羽ノ浦,発,08:58#西原,発,09:01#阿波中島,発,09:04#阿南,着,09:08#",
"4533D":"徳島,発,09:30#阿波富田,発,09:33#二軒屋,発,09:36#文化の森,発,09:38#地蔵橋,発,09:42#中田,発,09:46#南小松島,発,09:50#阿波赤石,発,09:54#立江,発,09:57#羽ノ浦,発,10:07#西原,発,10:10#阿波中島,発,10:13#阿南,発,10:24#見能林,発,10:27#阿波橘,発,10:30#桑野,発,10:35#新野,発,10:39#阿波福井,発,10:43#由岐,発,10:54#木岐,発,10:58#北河内,発,11:03#日和佐,発,11:06#山河内,発,11:13#辺川,発,11:20#牟岐,発,11:29#鯖瀬,発,11:34#浅川,発,11:38#阿波海南,着,11:42#",
"535D":"徳島,発,10:00#阿波富田,発,10:03#二軒屋,発,10:06#文化の森,発,10:08#地蔵橋,発,10:12#中田,発,10:16#南小松島,発,10:20#阿波赤石,発,10:24#立江,発,10:27#羽ノ浦,発,10:37#西原,発,10:40#阿波中島,発,10:43#阿南,着,10:46#",
"4537D":"徳島,発,10:30#阿波富田,発,10:33#二軒屋,発,10:36#文化の森,発,10:38#地蔵橋,発,10:42#中田,発,10:46#南小松島,発,10:50#阿波赤石,発,10:54#立江,発,10:57#羽ノ浦,発,11:07#西原,発,11:10#阿波中島,発,11:13#阿南,着,11:16#",
"4539D":"徳島,発,11:00#阿波富田,発,11:03#二軒屋,発,11:06#文化の森,発,11:08#地蔵橋,発,11:12#中田,発,11:16#南小松島,発,11:20#阿波赤石,発,11:24#立江,発,11:27#羽ノ浦,発,11:37#西原,発,11:40#阿波中島,発,11:43#阿南,着,11:46#",
"4541D":"徳島,発,11:30#阿波富田,発,11:33#二軒屋,発,11:36#文化の森,発,11:38#地蔵橋,発,11:42#中田,発,11:46#南小松島,発,11:50#阿波赤石,発,11:54#立江,発,11:57#羽ノ浦,発,12:07#西原,発,12:10#阿波中島,発,12:13#阿南,発,12:24#見能林,発,12:27#阿波橘,発,12:30#桑野,発,12:35#新野,発,12:39#阿波福井,発,12:43#由岐,発,12:54#木岐,発,12:58#北河内,発,13:03#日和佐,発,13:06#山河内,発,13:13#辺川,発,13:20#牟岐,発,13:29#鯖瀬,発,13:34#浅川,発,13:38#阿波海南,着,13:42#",
"4543D":"徳島,発,12:00#阿波富田,発,12:03#二軒屋,発,12:06#文化の森,発,12:08#地蔵橋,発,12:12#中田,発,12:16#南小松島,発,12:20#阿波赤石,発,12:24#立江,発,12:27#羽ノ浦,発,12:37#西原,発,12:40#阿波中島,発,12:43#阿南,着,12:46#",
"4545D":"徳島,発,12:30#阿波富田,発,12:33#二軒屋,発,12:36#文化の森,発,12:38#地蔵橋,発,12:42#中田,発,12:46#南小松島,発,12:50#阿波赤石,発,12:54#立江,発,12:57#羽ノ浦,発,13:07#西原,発,13:10#阿波中島,発,13:13#阿南,着,13:16#",
"547D":"徳島,発,13:00#阿波富田,発,13:03#二軒屋,発,13:06#文化の森,発,13:08#地蔵橋,発,13:12#中田,発,13:16#南小松島,発,13:20#阿波赤石,発,13:24#立江,発,13:27#羽ノ浦,発,13:37#西原,発,13:40#阿波中島,発,13:43#阿南,着,13:46#",
"4549D":"徳島,発,13:30#阿波富田,発,13:33#二軒屋,発,13:36#文化の森,発,13:38#地蔵橋,発,13:42#中田,発,13:46#南小松島,発,13:50#阿波赤石,発,13:54#立江,発,13:57#羽ノ浦,発,14:07#西原,発,14:10#阿波中島,発,14:13#阿南,発,14:24#見能林,発,14:27#阿波橘,発,14:30#桑野,発,14:35#新野,発,14:39#阿波福井,発,14:43#由岐,発,14:54#木岐,発,14:58#北河内,発,15:03#日和佐,発,15:06#山河内,発,15:13#辺川,発,15:20#牟岐,発,15:29#鯖瀬,発,15:34#浅川,発,15:38#阿波海南,着,15:42#",
"4551D":"徳島,発,14:00#阿波富田,発,14:03#二軒屋,発,14:06#文化の森,発,14:08#地蔵橋,発,14:12#中田,発,14:16#南小松島,発,14:20#阿波赤石,発,14:24#立江,発,14:27#羽ノ浦,発,14:37#西原,発,14:40#阿波中島,発,14:43#阿南,着,14:46#",
"4557D":"牟岐,発,16:49#鯖瀬,発,16:54#浅川,発,16:58#阿波海南,着,17:02#",
"553D":"徳島,発,14:30#阿波富田,発,14:33#二軒屋,発,14:36#文化の森,発,14:38#地蔵橋,発,14:42#中田,発,14:46#南小松島,発,14:50#阿波赤石,発,14:54#立江,発,14:57#羽ノ浦,発,15:07#西原,発,15:10#阿波中島,発,15:13#阿南,着,15:16#",
"555D":"徳島,発,15:00#阿波富田,発,15:03#二軒屋,発,15:06#文化の森,発,15:08#地蔵橋,発,15:12#中田,発,15:16#南小松島,発,15:20#阿波赤石,発,15:24#立江,発,15:27#羽ノ浦,発,15:37#西原,発,15:40#阿波中島,発,15:43#阿南,発,15:54#見能林,発,15:57#阿波橘,発,16:00#桑野,発,16:04#",
"559D":"徳島,発,15:30#阿波富田,発,15:33#二軒屋,発,15:36#文化の森,発,15:38#地蔵橋,発,15:42#中田,発,15:46#南小松島,発,15:50#阿波赤石,発,15:54#立江,発,15:57#羽ノ浦,発,16:07#西原,発,16:10#阿波中島,発,16:13#阿南,着,16:16#",
"4559D":"阿南,発,16:24#見能林,発,16:27#阿波橘,発,16:30#桑野,発,16:35#新野,発,16:39#阿波福井,発,16:43#由岐,発,16:54#木岐,発,16:58#北河内,発,17:03#日和佐,発,17:06#山河内,発,17:13#辺川,発,17:20#牟岐,発,17:39#鯖瀬,発,17:44#浅川,発,17:48#阿波海南,着,17:52#",
"561D":"徳島,発,16:00#阿波富田,発,16:03#二軒屋,発,16:06#文化の森,発,16:08#地蔵橋,発,16:12#中田,発,16:16#南小松島,発,16:20#阿波赤石,発,16:24#立江,発,16:27#羽ノ浦,発,16:37#西原,発,16:40#阿波中島,発,16:43#阿南,着,16:46#",
"563D":"徳島,発,16:30#阿波富田,発,16:33#二軒屋,発,16:36#文化の森,発,16:38#地蔵橋,発,16:42#中田,発,16:46#南小松島,発,16:50#阿波赤石,発,16:54#立江,発,16:57#羽ノ浦,発,17:07#西原,発,17:10#阿波中島,発,17:13#阿南,着,17:16#",
"4563D":"阿南,発,17:24#見能林,発,17:27#阿波橘,発,17:30#桑野,発,17:35#新野,発,17:39#阿波福井,発,17:43#由岐,発,17:50#木岐,発,17:54#北河内,発,17:59#日和佐,発,18:02#山河内,発,18:09#辺川,発,18:16#牟岐,着,18:20#",
"565D":"徳島,発,17:00#阿波富田,発,17:03#二軒屋,発,17:06#文化の森,発,17:08#地蔵橋,発,17:12#中田,発,17:16#南小松島,発,17:20#阿波赤石,発,17:24#立江,発,17:27#羽ノ浦,発,17:37#西原,発,17:40#阿波中島,発,17:43#阿南,着,17:46#",
"567D":"徳島,発,17:30#阿波富田,発,17:33#二軒屋,発,17:36#文化の森,発,17:38#地蔵橋,発,17:42#中田,発,17:46#南小松島,発,17:50#阿波赤石,発,17:54#立江,発,17:57#羽ノ浦,発,18:07#西原,発,18:10#阿波中島,発,18:13#阿南,発,18:24#見能林,発,18:27#阿波橘,発,18:30#桑野,発,18:35#新野,発,18:39#阿波福井,発,18:43#由岐,発,18:50#木岐,発,18:54#北河内,発,18:59#日和佐,発,19:02#山河内,発,19:09#辺川,発,19:16#牟岐,着,19:20#",
"4571D":"牟岐,発,19:33#鯖瀬,発,19:40#浅川,発,19:46#阿波海南,着,19:50#",
"569D":"徳島,発,18:00#阿波富田,発,18:03#二軒屋,発,18:06#文化の森,発,18:08#地蔵橋,発,18:12#中田,発,18:16#南小松島,発,18:20#阿波赤石,発,18:24#立江,発,18:27#羽ノ浦,発,18:37#西原,発,18:40#阿波中島,発,18:43#阿南,着,18:46#",
"573D":"徳島,発,18:30#阿波富田,発,18:33#二軒屋,発,18:36#文化の森,発,18:38#地蔵橋,発,18:42#中田,発,18:46#南小松島,発,18:50#阿波赤石,発,18:54#立江,発,18:57#羽ノ浦,発,19:07#西原,発,19:10#阿波中島,発,19:13#阿南,着,19:16#",
"575D":"徳島,発,19:00#阿波富田,発,19:03#二軒屋,発,19:06#文化の森,発,19:08#地蔵橋,発,19:12#中田,発,19:16#南小松島,発,19:20#阿波赤石,発,19:24#立江,発,19:27#羽ノ浦,発,19:37#西原,発,19:40#阿波中島,発,19:43#阿南,発,19:54#見能林,発,19:57#阿波橘,発,20:00#桑野,発,20:05#新野,発,20:09#阿波福井,発,20:13#由岐,発,20:22#木岐,発,20:26#北河内,発,20:31#日和佐,発,20:34#山河内,発,20:42#辺川,発,20:52#牟岐,着,20:57#",
"577D":"徳島,発,19:30#阿波富田,発,19:33#二軒屋,発,19:36#文化の森,発,19:38#地蔵橋,発,19:42#中田,発,19:46#南小松島,発,19:50#阿波赤石,発,19:54#立江,発,19:57#羽ノ浦,発,20:07#西原,発,20:10#阿波中島,発,20:13#阿南,着,20:16#",
"579D":"徳島,発,20:00#阿波富田,発,20:03#二軒屋,発,20:06#文化の森,発,20:08#地蔵橋,発,20:12#中田,発,20:16#南小松島,発,20:20#阿波赤石,発,20:24#立江,発,20:27#羽ノ浦,発,20:30#西原,発,20:34#阿波中島,発,20:37#阿南,着,20:40#",
"581D":"徳島,発,20:30#阿波富田,発,20:33#二軒屋,発,20:36#文化の森,発,20:39#地蔵橋,発,20:42#中田,発,20:47#南小松島,発,20:51#阿波赤石,発,20:55#立江,発,20:58#羽ノ浦,発,21:07#西原,発,21:10#阿波中島,発,21:14#阿南,着,21:18#",
"583D":"徳島,発,21:30#阿波富田,発,21:33#二軒屋,発,21:36#文化の森,発,21:38#地蔵橋,発,21:42#中田,発,21:46#南小松島,発,21:50#阿波赤石,発,21:54#立江,発,21:57#羽ノ浦,発,22:14#西原,発,22:17#阿波中島,発,22:20#阿南,発,22:26#見能林,発,22:29#阿波橘,発,22:32#桑野,発,22:37#新野,発,22:41#阿波福井,発,22:45#由岐,発,22:54#木岐,発,22:58#北河内,発,23:03#日和佐,発,23:06#山河内,発,23:14#辺川,発,23:23#牟岐,着,23:29#",
"585D":"徳島,発,22:55#阿波富田,発,22:58#二軒屋,発,23:01#文化の森,発,23:03#地蔵橋,発,23:07#中田,発,23:11#南小松島,発,23:15#阿波赤石,発,23:19#立江,発,23:22#羽ノ浦,発,23:26#西原,発,23:29#阿波中島,発,23:32#阿南,着,23:36#",
// 臨時列車
"9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:10#昭和町,発,22:13#栗林公園北口,発,22:16#栗林,発,22:19#木太町,発,22:23#屋島,発,22:36#古高松南,発,22:39#八栗口,発,22:43#讃岐牟礼,発,22:45#志度,発,22:49#オレンジタウン,発,22:53#造田,発,22:57#神前,発,23:00#讃岐津田,発,23:06#鶴羽,発,23:10#丹生,発,23:15#三本松,着,23:18#",
"9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:48#早島,発,22:55#妹尾,発,22:59#岡山,着,23:06#",
// わらぐろ号/れんげ号
"9662D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#宇和島,発,10:00#北宇和島,発,10:03#高光,発,10:07#伊予吉田,発,10:21#立間,発,10:50#下宇和,発,10:36#卯之町,発,10:39#上宇和,発,10:42#伊予石城,発,10:46#双岩,発,10:53#八幡浜,着,10:58#",
"9664D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#卯之町,発,11:18#上宇和,発,11:21#伊予石城,発,11:25#双岩,発,11:34#八幡浜,着,11:39#",
"9663D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,10:07#双岩,発,10:16#伊予石城,発,10:23#上宇和,発,10:27#卯之町,着,10:30#",
"9665D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,13:38#双岩,発,13:45#伊予石城,発,13:52#上宇和,発,13:56#卯之町,発,14:07#下宇和,発,14:10#立間,発,14:18#伊予吉田,発,14:25#高光,発,14:31#北宇和島,発,14:35#宇和島,着,14:37#",
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,224 +1 @@
{
"type": "FeatureCollection",
"features": [
{
"properties": {
"name": "新谷",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/新谷",
"color": "FBAF18"
},
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[132.59812, 33.53417],
[132.59894, 33.53414]
]
}
},
{
"properties": {
"name": "新谷",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/新谷"
},
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [132.59812, 33.53417] }
},
{
"properties": {
"name": "喜多山",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/喜多山",
"color": "FBAF18"
},
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[132.61103, 33.53326],
[132.61184, 33.53359]
]
}
},
{
"properties": {
"name": "喜多山",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/喜多山"
},
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [132.61103, 33.53326] }
},
{
"properties": {
"name": "五十崎",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/五十崎",
"color": "FBAF18"
},
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[132.63672, 33.53833],
[132.63599, 33.53782]
]
}
},
{
"properties": {
"name": "五十崎",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/五十崎"
},
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [132.63599, 33.53782] }
},
{
"properties": {
"name": "内子",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/内子",
"color": "FBAF18"
},
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[132.64634, 33.55023],
[132.64618, 33.54873]
]
}
},
{
"properties": {
"name": "内子",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線/内子"
},
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [132.64634, 33.55023] }
},
{
"properties": {
"name": "内子線",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/内子線",
"color": "FBAF18"
},
"type": "Feature",
"geometry": {
"type": "MultiLineString",
"coordinates": [
[
[132.61103, 33.53326],
[132.61184, 33.53359]
],
[
[132.63672, 33.53833],
[132.63599, 33.53782]
],
[
[132.59894, 33.53414],
[132.60008, 33.53411],
[132.60062, 33.5341],
[132.60165, 33.53407],
[132.60238, 33.53402],
[132.603, 33.53393],
[132.60436, 33.53374],
[132.60653, 33.53343],
[132.60837, 33.53317],
[132.60913, 33.53306],
[132.60942, 33.53306],
[132.60975, 33.53306],
[132.6103, 33.53312],
[132.61055, 33.53315],
[132.61086, 33.53321],
[132.61103, 33.53326]
],
[
[132.64634, 33.55023],
[132.64618, 33.54873]
],
[
[132.59812, 33.53417],
[132.59894, 33.53414]
],
[
[132.64618, 33.54873],
[132.64615, 33.54836],
[132.64606, 33.5477],
[132.64603, 33.54735],
[132.64593, 33.54665],
[132.64581, 33.54616],
[132.64569, 33.54575],
[132.64547, 33.54524],
[132.64527, 33.54496],
[132.64488, 33.54449],
[132.64463, 33.54425],
[132.64453, 33.54415],
[132.64379, 33.54359],
[132.64294, 33.54293],
[132.64204, 33.54222],
[132.64181, 33.54204],
[132.64106, 33.54147],
[132.63989, 33.54055],
[132.63898, 33.53985],
[132.63788, 33.53906],
[132.63691, 33.53844],
[132.6368, 33.53838],
[132.63672, 33.53833]
],
[
[132.63599, 33.53782],
[132.63492, 33.53712],
[132.63383, 33.53646],
[132.63354, 33.53631],
[132.63319, 33.53621],
[132.6323, 33.53609],
[132.63157, 33.53597],
[132.63102, 33.53585],
[132.63058, 33.53569],
[132.63016, 33.53549],
[132.62986, 33.53527],
[132.6297, 33.53515],
[132.62939, 33.5348],
[132.62913, 33.53449],
[132.62893, 33.5343],
[132.62862, 33.53407],
[132.62839, 33.53393],
[132.62791, 33.53379],
[132.62699, 33.53356],
[132.62575, 33.53327],
[132.62491, 33.53313],
[132.62449, 33.53306],
[132.62386, 33.53307],
[132.62341, 33.53308],
[132.6231, 33.53306],
[132.62248, 33.53291],
[132.62207, 33.5328],
[132.62171, 33.53272],
[132.62149, 33.53271],
[132.62126, 33.53273],
[132.62069, 33.53283],
[132.6203, 33.53286],
[132.61996, 33.53288],
[132.61954, 33.5329],
[132.61937, 33.53292],
[132.61913, 33.53298],
[132.6187, 33.53311],
[132.61841, 33.53319],
[132.61808, 33.53329],
[132.61675, 33.53368],
[132.6161, 33.53387],
[132.61546, 33.53407],
[132.615, 33.53419],
[132.61486, 33.53421],
[132.61474, 33.53419],
[132.61458, 33.53417],
[132.61428, 33.5341],
[132.61409, 33.53407],
[132.61341, 33.53401],
[132.6131, 33.53397],
[132.61285, 33.5339],
[132.61221, 33.53373],
[132.61184, 33.53359]
]
]
}
}
]
}
{"type":"FeatureCollection","features":[{"properties":{"name":"五十崎","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/五十崎","color":"FBAF18"},"type":"Feature","geometry":{"type":"LineString","coordinates":[[132.63672,33.53833],[132.63599,33.53782]]}},{"properties":{"name":"五十崎","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/五十崎"},"type":"Feature","geometry":{"type":"Point","coordinates":[132.63599,33.53782]}},{"properties":{"name":"内子","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/内子","color":"FBAF18"},"type":"Feature","geometry":{"type":"LineString","coordinates":[[132.64634,33.55023],[132.64618,33.54873]]}},{"properties":{"name":"内子","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/内子"},"type":"Feature","geometry":{"type":"Point","coordinates":[132.64634,33.55023]}},{"properties":{"name":"喜多山","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/喜多山","color":"FBAF18"},"type":"Feature","geometry":{"type":"LineString","coordinates":[[132.61103,33.53326],[132.61184,33.53359]]}},{"properties":{"name":"喜多山","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/喜多山"},"type":"Feature","geometry":{"type":"Point","coordinates":[132.61103,33.53326]}},{"properties":{"name":"新谷","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/新谷","color":"FBAF18"},"type":"Feature","geometry":{"type":"LineString","coordinates":[[132.59812,33.53417],[132.59894,33.53414]]}},{"properties":{"name":"新谷","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線/新谷"},"type":"Feature","geometry":{"type":"Point","coordinates":[132.59812,33.53417]}},{"properties":{"name":"内子線","uri":"https://uedayou.net/jrslod/四国旅客鉄道/内子線","color":"FBAF18"},"type":"Feature","geometry":{"type":"MultiLineString","coordinates":[[[132.61103,33.53326],[132.61184,33.53359]],[[132.63672,33.53833],[132.63599,33.53782]],[[132.59894,33.53414],[132.60008,33.53411],[132.60062,33.5341],[132.60165,33.53407],[132.60238,33.53402],[132.603,33.53393],[132.60436,33.53374],[132.60653,33.53343],[132.60837,33.53317],[132.60913,33.53306],[132.60942,33.53306],[132.60975,33.53306],[132.6103,33.53312],[132.61055,33.53315],[132.61086,33.53321],[132.61103,33.53326]],[[132.64634,33.55023],[132.64618,33.54873]],[[132.59812,33.53417],[132.59894,33.53414]],[[132.64618,33.54873],[132.64615,33.54836],[132.64606,33.5477],[132.64603,33.54735],[132.64593,33.54665],[132.64581,33.54616],[132.64569,33.54575],[132.64547,33.54524],[132.64527,33.54496],[132.64488,33.54449],[132.64463,33.54425],[132.64453,33.54415],[132.64379,33.54359],[132.64294,33.54293],[132.64204,33.54222],[132.64181,33.54204],[132.64106,33.54147],[132.63989,33.54055],[132.63898,33.53985],[132.63788,33.53906],[132.63691,33.53844],[132.6368,33.53838],[132.63672,33.53833]],[[132.63599,33.53782],[132.63492,33.53712],[132.63383,33.53646],[132.63354,33.53631],[132.63319,33.53621],[132.6323,33.53609],[132.63157,33.53597],[132.63102,33.53585],[132.63058,33.53569],[132.63016,33.53549],[132.62986,33.53527],[132.6297,33.53515],[132.62939,33.5348],[132.62913,33.53449],[132.62893,33.5343],[132.62862,33.53407],[132.62839,33.53393],[132.62791,33.53379],[132.62699,33.53356],[132.62575,33.53327],[132.62491,33.53313],[132.62449,33.53306],[132.62386,33.53307],[132.62341,33.53308],[132.6231,33.53306],[132.62248,33.53291],[132.62207,33.5328],[132.62171,33.53272],[132.62149,33.53271],[132.62126,33.53273],[132.62069,33.53283],[132.6203,33.53286],[132.61996,33.53288],[132.61954,33.5329],[132.61937,33.53292],[132.61913,33.53298],[132.6187,33.53311],[132.61841,33.53319],[132.61808,33.53329],[132.61675,33.53368],[132.6161,33.53387],[132.61546,33.53407],[132.615,33.53419],[132.61486,33.53421],[132.61474,33.53419],[132.61458,33.53417],[132.61428,33.5341],[132.61409,33.53407],[132.61341,33.53401],[132.6131,33.53397],[132.61285,33.5339],[132.61221,33.53373],[132.61184,33.53359]]]}}]}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,256 +0,0 @@
{
"type": "FeatureCollection",
"features": [
{
"properties": {
"name": "児島",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/本四備讃線/児島",
"color": "0073BC"
},
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[133.80748, 34.46183],
[133.8079, 34.4638]
]
}
},
{
"properties": {
"name": "児島",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/本四備讃線/児島"
},
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [133.80748, 34.46183] }
},
{
"properties": {
"name": "宇多津",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/本四備讃線/宇多津",
"color": "0073BC"
},
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[133.81324, 34.30552],
[133.81426, 34.30712]
]
}
},
{
"properties": {
"name": "宇多津",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/本四備讃線/宇多津"
},
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [133.81324, 34.30552] }
},
{
"properties": {
"name": "本四備讃線",
"uri": "https://uedayou.net/jrslod/四国旅客鉄道/本四備讃線",
"color": "0073BC"
},
"type": "Feature",
"geometry": {
"type": "MultiLineString",
"coordinates": [
[
[133.81426, 34.30712],
[133.81504, 34.30838],
[133.81622, 34.31028],
[133.81778, 34.31274]
],
[
[133.81324, 34.30552],
[133.81426, 34.30712]
],
[
[133.80748, 34.46183],
[133.8079, 34.4638]
],
[
[133.80745, 34.46169],
[133.80748, 34.46183]
],
[
[133.80745, 34.46169],
[133.80735, 34.46116],
[133.80723, 34.46026],
[133.80714, 34.45964],
[133.807, 34.45809],
[133.80697, 34.45769],
[133.80697, 34.45753],
[133.80693, 34.45694],
[133.80691, 34.4557],
[133.80692, 34.45548],
[133.80691, 34.45543],
[133.80693, 34.45494],
[133.80696, 34.45464],
[133.80704, 34.45385],
[133.80714, 34.45314],
[133.8072, 34.45271],
[133.80727, 34.45221],
[133.80737, 34.45148],
[133.80742, 34.45102],
[133.80745, 34.45087],
[133.80762, 34.44957],
[133.80765, 34.4494],
[133.80779, 34.44837],
[133.80789, 34.44765],
[133.80793, 34.44736],
[133.80804, 34.4467],
[133.80813, 34.44589],
[133.80828, 34.4445],
[133.80825, 34.4442],
[133.80833, 34.44366],
[133.80837, 34.44336],
[133.8084, 34.44309],
[133.80842, 34.44263],
[133.80842, 34.44233],
[133.80842, 34.44203],
[133.8084, 34.44183],
[133.8083, 34.44071],
[133.80828, 34.44059],
[133.80819, 34.4399],
[133.80807, 34.43932],
[133.80763, 34.43745],
[133.80731, 34.4362],
[133.80714, 34.43555],
[133.80706, 34.43527],
[133.80691, 34.4346],
[133.80643, 34.43278],
[133.80594, 34.43084],
[133.8057, 34.42991],
[133.80545, 34.42891],
[133.8054, 34.42866],
[133.805, 34.42706],
[133.80491, 34.42672],
[133.80491, 34.4267],
[133.80463, 34.42556],
[133.80445, 34.42488],
[133.80435, 34.42447],
[133.8043, 34.4243],
[133.80403, 34.42323],
[133.804, 34.4231],
[133.8039, 34.42246],
[133.80386, 34.42206],
[133.80385, 34.42197],
[133.80384, 34.42187],
[133.80382, 34.42161],
[133.80383, 34.42155],
[133.80383, 34.42146],
[133.80382, 34.4212],
[133.80383, 34.42093],
[133.80384, 34.42074],
[133.8039, 34.42026],
[133.80393, 34.41992],
[133.80403, 34.41939],
[133.80425, 34.41856],
[133.80446, 34.41786],
[133.80506, 34.41631],
[133.80553, 34.41514],
[133.80581, 34.41441],
[133.80615, 34.41329],
[133.80657, 34.41181],
[133.80675, 34.41122],
[133.8068, 34.41106],
[133.80715, 34.40959],
[133.80768, 34.40746],
[133.8082, 34.40555],
[133.80908, 34.4024],
[133.80918, 34.40207],
[133.80999, 34.39922],
[133.81061, 34.39702],
[133.81079, 34.39659],
[133.8111, 34.39597],
[133.8114, 34.39544],
[133.81192, 34.39468],
[133.81254, 34.39392],
[133.8126, 34.39384],
[133.81397, 34.39239],
[133.81532, 34.39103],
[133.81581, 34.39044],
[133.81636, 34.38977],
[133.81687, 34.38902],
[133.81732, 34.38818],
[133.81775, 34.38715],
[133.81804, 34.38621],
[133.81811, 34.386],
[133.81902, 34.38312],
[133.81974, 34.38088],
[133.8208, 34.37748],
[133.82082, 34.37741],
[133.82236, 34.3725],
[133.8236, 34.36876],
[133.82361, 34.36872],
[133.82487, 34.365],
[133.82609, 34.3614],
[133.82654, 34.36006],
[133.82729, 34.35785],
[133.82828, 34.35487],
[133.82839, 34.35449],
[133.82854, 34.35392],
[133.82861, 34.35335],
[133.82865, 34.35271],
[133.8286, 34.35153],
[133.82857, 34.35127],
[133.82854, 34.35097],
[133.82835, 34.34966],
[133.82809, 34.34812],
[133.8277, 34.34593],
[133.82715, 34.34275],
[133.82707, 34.34234],
[133.82665, 34.33997],
[133.82636, 34.33823],
[133.82627, 34.33756],
[133.82627, 34.33706],
[133.82626, 34.3366],
[133.82642, 34.33542],
[133.82657, 34.33461],
[133.82678, 34.33343],
[133.82688, 34.33296],
[133.82703, 34.33215],
[133.82724, 34.33088],
[133.82714, 34.33036],
[133.8271, 34.33009],
[133.82706, 34.3297],
[133.82702, 34.32933],
[133.8268, 34.3284],
[133.82653, 34.32749],
[133.82626, 34.32674],
[133.82574, 34.32565],
[133.82473, 34.32388],
[133.82344, 34.32159],
[133.82326, 34.32129],
[133.82235, 34.31973],
[133.82224, 34.31954]
],
[
[133.81778, 34.31274],
[133.81853, 34.31395],
[133.82015, 34.31632],
[133.82147, 34.31828],
[133.82224, 34.31954]
],
[
[133.82224, 34.31954],
[133.82207, 34.31872],
[133.82199, 34.31824],
[133.82198, 34.31764],
[133.82204, 34.31701],
[133.82219, 34.31661],
[133.8226, 34.31597],
[133.82315, 34.31523],
[133.8237, 34.31472],
[133.8241, 34.3144],
[133.82457, 34.31411],
[133.82565, 34.31357]
]
]
}
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
curl 'https://train.jr-shikoku.co.jp/g?arg1=station&arg2=traintimeinfo&arg3=dia' -H 'accept: */*' -H 'accept-language: ja,en;q=0.9,en-GB;q=0.8,en-US;q=0.7' -b 'user_rule=true; _ga=GA1.1.1550729344.1720017125; _ga_FHL4XV32CY=GS1.1.1741964710.14.1.1741964733.0.0.0' -H 'priority: u=0, i' -H 'referer: https://train.jr-shikoku.co.jp/sp.html' -H 'sec-ch-ua: "Chromium";v="134", "Not:A-Brand";v="24", "Microsoft Edge";v="134"' -H 'sec-ch-ua-mobile: ?0' -H 'sec-ch-ua-platform: "Windows"' -H 'sec-fetch-dest: empty' -H 'sec-fetch-mode: cors' -H 'sec-fetch-site: same-origin' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0' > current.txt

View File

@ -1,21 +1,713 @@
import React, { useRef } from "react";
import { Platform } from "react-native";
import React, { useEffect, useState } from "react";
import {
View,
LayoutAnimation,
ScrollView,
Linking,
Text,
TouchableOpacity,
TouchableWithoutFeedback,
TouchableHighlight,
Platform,
} from "react-native";
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
import ActionSheet from "react-native-actions-sheet";
import { EachTrainInfoCore } from "./EachTrainInfoCore";
export const EachTrainInfo = ({ payload }) => {
if (!payload) return <></>;
const actionSheetRef = useRef(null);
import { AS } from "../../storageControl";
import LottieView from "lottie-react-native";
import trainList from "../../assets/originData/trainList";
import { lineList } from "../../lib/getStationList";
import {
heightPercentageToDP,
widthPercentageToDP,
} from "react-native-responsive-screen";
import lineColorList from "../../assets/originData/lineColorList";
export const EachTrainInfo = ({
setRef,
data,
navigate,
originalStationList,
openStationACFromEachTrainInfo,
from,
}) => {
const [trainData, setTrainData] = useState([]);
const [isTop, setIsTop] = useState(true);
const [currentPosition, setCurrentPosition] = useState([]);
const [trainPositionSwitch, setTrainPositionSwitch] = useState("false");
useEffect(() => {
//列車現在地アイコン表示スイッチ
AS.getItem("trainPositionSwitch")
.then((d) => {
if (d) {
setTrainPositionSwitch(d);
} else {
}
})
.catch((d) => AS.setItem("trainPositionSwitch", "false"));
}, []);
const getStationData = (stationName) => {
const Stations = stationList.map((a) =>
a.filter((d) => d.StationName == stationName)
);
const Station =
Stations &&
Stations.reduce((newArray, e) => {
return newArray.concat(e);
}, []);
if (!Station[0]) return [];
return Station.map((d) => d.StationNumber)[0];
};
useEffect(() => {
//data.trainData.Pos = "鴨川~端岡"; //test
if (!data.trainData?.Pos) return;
if (data.trainData?.Pos.match("")) {
const pos = data.trainData?.Pos.replace("(下り)", "")
.replace("(上り)", "")
.split("");
setCurrentPosition([getStationData(pos[0]), getStationData(pos[1])]);
} else {
setCurrentPosition([getStationData(data.trainData?.Pos)]);
}
}, [data.trainData]);
const stationList =
originalStationList &&
lineList.map((d) =>
originalStationList[d].map((a) => ({
StationNumber: a.StationNumber,
StationName: a.Station_JP,
}))
);
const stopStationIDList = trainData.map((i, index) => {
const [station, se, time] = i.split(",");
const Stations = stationList.map((a) =>
a.filter((d) => d.StationName == station)
);
const StationNumbers =
Stations &&
Stations.reduce((newArray, e) => {
return newArray.concat(e);
}, [])
.filter((d) => d.StationNumber)
.map((d) => d.StationNumber);
return StationNumbers[0];
});
function findReversalPoints(array) {
// arrayは現在位置の駅ID(駅在宅の場合は1つの配列、駅間の場合は2つの配列)
// stopStationIDListは停車駅の駅IDの配列
if (!stopStationIDList.length) return [];
const arrayNumber = array.map((d) => ({
line: d
.split("")
.filter((s) => "A" < s && s < "Z")
.join(""),
ID: d
.split("")
.filter((s) => "0" <= s && s <= "9")
.join(""),
}));
const stopStationIDListNumber = stopStationIDList.map((d) => {
if (!d) return { line: [], ID: [] };
return {
line: d
.split("")
.filter((s) => "A" < s && s < "Z")
.join(""),
ID: d
.split("")
.filter((s) => "0" <= s && s <= "9")
.join(""),
};
});
// 完全一致
if (array.length == 1) {
const index = stopStationIDList.indexOf(array[0]);
if (index != -1) return [index];
// 通過駅の場合
for (let i = 0; i < stopStationIDListNumber.length - 1; i++) {
if (stopStationIDListNumber[i].ID < arrayNumber[0].ID) {
if (stopStationIDListNumber[i + 1].ID > arrayNumber[0].ID) {
return [i + 1];
}
}
if (stopStationIDListNumber[i].ID > arrayNumber[0].ID) {
if (stopStationIDListNumber[i + 1].ID < arrayNumber[0].ID) {
return [i + 1];
}
}
}
}
// 駅間の場合
if (array.length == 2) {
const index1 = stopStationIDList.indexOf(array[0]);
const index2 = stopStationIDList.indexOf(array[1]);
if (index1 != -1 && index2 != -1) {
// 駅間で通過駅も無い場合
if (index1 < index2) {
if (index1 + 1 == index2) {
return [index2];
} else {
const returnArray = [];
for (let i = index1 + 1; i <= index2; i++) {
returnArray.push(i);
}
return returnArray;
}
}
if (index1 > index2) {
if (index2 + 1 == index1) return [index1];
else {
const returnArray = [];
for (let i = index2 + 1; i <= index1; i++) {
returnArray.push(i);
}
return returnArray;
}
}
} else {
const getNearStationID = (stationID) => {
for (let i = 0; i <= stopStationIDListNumber.length; i++) {
if (stopStationIDListNumber[i].ID < stationID) {
if (stopStationIDListNumber[i + 1].ID > stationID) {
return i + 1;
}
}
if (stopStationIDListNumber[i].ID > stationID) {
if (stopStationIDListNumber[i + 1].ID < stationID) {
return i + 1;
}
}
}
};
let newIndex1 = index1;
let newIndex2 = index2;
if (index1 == -1) {
newIndex1 = getNearStationID(arrayNumber[0].ID);
}
if (index2 == -1) {
newIndex2 = getNearStationID(arrayNumber[1].ID);
}
if (newIndex1 && newIndex2) {
return [newIndex1, newIndex2];
}
// 通過駅の場合
}
return [];
}
}
// 使用例
const points =
trainPositionSwitch == "true" ? findReversalPoints(currentPosition) : [];
useEffect(() => {
setIsTop(true);
if (!data.trainNum) return;
const TD = trainList[data.trainNum];
if (!TD) {
setTrainData([]);
return;
}
setTrainData(TD.split("#").filter((d) => d != ""));
}, [data]);
const getType = (string) => {
switch (string) {
case "express":
return "特急";
case "rapid":
return "快速";
default:
return "";
}
};
const migrateTrainName = (string) => {
return string
.replace("マリン", "マリンライナー")
.replace("ライナーライナー", "ライナー");
};
return (
<ActionSheet
gestureEnabled={true}
ref={setRef}
gestureEnabled={isTop}
CustomHeaderComponent={<></>}
ref={actionSheetRef}
drawUnderStatusBar={false}
isModal={Platform.OS == "ios"}
//useBottomSafeAreaPadding={Platform.OS == "android"}
>
<EachTrainInfoCore {...{ actionSheetRef, ...payload }} />
<View
style={{
backgroundColor: "#0099CC",
borderRadius: 5,
borderColor: "dark",
borderWidth: 1,
}}
>
<View style={{ height: 26, width: "100%" }}>
<View
style={{
height: 6,
width: 45,
borderRadius: 100,
backgroundColor: "#f0f0f0",
marginVertical: 10,
alignSelf: "center",
}}
/>
</View>
<View
style={{ padding: 10, flexDirection: "row", alignItems: "center" }}
>
<Text style={{ fontSize: 20, fontWeight: "bold", color: "white" }}>
{data.limited
? getType(data.limited.split(":")[0]) +
migrateTrainName(
data.limited.split(":")[1] ||
(trainData.length > 0
? trainData[trainData.length - 1].split(",")[0] + "行き"
: " ")
)
: ""}
</Text>
<View style={{ flex: 1 }} />
<Text style={{ fontSize: 20, fontWeight: "bold", color: "white" }}>
{data.trainNum}
</Text>
{data.limited != undefined &&
getType(data.limited.split(":")[0]) &&
!data.limited.split(":")[1].match("サンポート") && (
<Ionicons
name="subway"
color="white"
size={30}
style={{ margin: 5 }}
onPress={() => {
LayoutAnimation.easeInEaseOut(); //setLoadingDelayData(true);
navigate("trainbase", {
info: "train.html?tn=" + data.trainNum,
from,
});
setRef.current?.hide();
}}
/>
)}
</View>
<ScrollView
style={{
flexDirection: "row",
//width: widthPercentageToDP("200%"),
height: heightPercentageToDP("20%"),
}}
horizontal
pagingEnabled
>
<View
style={{
flexDirection: "row",
height: heightPercentageToDP("20%"),
width: widthPercentageToDP("100%"),
}}
>
<View
style={{
flex: 1,
backgroundColor: "white",
borderRadius: 10,
padding: 10,
margin: 10,
}}
>
<Text style={{ fontSize: 15, color: "#0099CC" }}>
現在地 {currentPosition.toString()}
</Text>
<View style={{ flex: 1 }} />
{data.trainData?.Pos && data.trainData?.Pos.match("") ? (
<>
<Text
style={{
fontSize: 28,
color: "#0099CC",
textAlign: "right",
}}
>
{
data.trainData?.Pos.replace("(下り)", "")
.replace("(上り)", "")
.split("")[0]
}
</Text>
<Text style={{ color: "#0099CC", textAlign: "right" }}>
</Text>
<Text
style={{
fontSize: 28,
color: "#0099CC",
textAlign: "right",
}}
>
{
data.trainData?.Pos.replace("(下り)", "")
.replace("(上り)", "")
.split("")[1]
}
</Text>
</>
) : (
<Text
style={{ fontSize: 28, color: "#0099CC", textAlign: "right" }}
>
{data.trainData?.Pos}
</Text>
)}
</View>
<View style={{ flex: 1, flexDirection: "column" }}>
<View
style={{
flex: 1,
backgroundColor: "white",
borderRadius: 10,
padding: 10,
margin: 10,
}}
>
<Text style={{ fontSize: 15, color: "#0099CC" }}>
{isNaN(data.trainData?.delay) ? "状態" : "遅延時分"}
</Text>
<View style={{ flex: 1 }} />
<Text
style={{
fontSize: 32,
color: "#0099CC",
textAlign: "right",
}}
>
{data.trainData?.delay}
{isNaN(data.trainData?.delay) ? "" : "分"}
</Text>
</View>
<View
style={{
flex: 1,
backgroundColor: "white",
borderRadius: 10,
padding: 10,
margin: 10,
}}
>
<Text style={{ fontSize: 15, color: "#0099CC" }}>列番</Text>
<Text
style={{
fontSize: 32,
color: "#0099CC",
textAlign: "right",
}}
>
{data.trainData?.num}
</Text>
</View>
</View>
</View>
{/* <View
style={{
flexDirection: "column",
height: heightPercentageToDP("20%"),
flex: 1,
width: widthPercentageToDP("100%"),
}}
>
<View style={{ flex: 1, flexDirection: "row" }}>
<View
style={{
flex: 1,
backgroundColor: "white",
borderRadius: 10,
padding: 10,
margin: 10,
}}
>
<Text style={{ fontSize: 15, color: "#0099CC" }}>行先</Text>
<View style={{ flex: 1 }} />
<Text
style={{
fontSize: 20,
color: "#0099CC",
textAlign: "right",
}}
>
岡山
</Text>
</View>
<View
style={{
flex: 3,
backgroundColor: "white",
borderRadius: 10,
padding: 10,
margin: 10,
}}
>
<Text style={{ fontSize: 15, color: "#0099CC" }}>車両案内</Text>
<View style={{ flex: 1 }} />
<Text
style={{
fontSize: 20,
color: "#0099CC",
textAlign: "right",
}}
>
宇多津でうずしお号と連結
</Text>
</View>
</View>
<View style={{ flex: 1, flexDirection: "row" }}>
<View
style={{
flex: 1,
backgroundColor: "white",
borderRadius: 10,
padding: 10,
margin: 10,
}}
>
<Text style={{ fontSize: 15, color: "#0099CC" }}>
編成(使用車両2700)
</Text>
<View style={{ flex: 1 }} />
<Text
style={{
fontSize: 20,
color: "#0099CC",
textAlign: "left",
}}
>
{"[<自][自>][アン自|指>][アン指|G>]"}
</Text>
</View>
</View>
</View> */}
</ScrollView>
<ScrollView
style={{ maxHeight: heightPercentageToDP("55%") }}
nestedScrollEnabled
onScroll={(e) => {
if (!Platform.OS !== "android") return;
setIsTop(e.nativeEvent.contentOffset.y < 0);
}}
>
<View
style={{
padding: 10,
backgroundColor: "white",
borderBottomLeftRadius: 5,
borderBottomRightRadius: 5,
}}
>
<View style={{ alignItems: "center" }}>
{/* <LottieView
autoPlay
loop
style={{ width: 150, height: 150, backgroundColor: "#fff" }}
source={require("../../assets/51690-loading-diamonds.json")}
/>
<Text>ほげほげふがふが</Text> */}
<View style={{ flexDirection: "row" }}>
<View
style={{
padding: 8,
flexDirection: "row",
borderBottomWidth: 1,
borderBottomColor: "#f0f0f0",
flex: 1,
}}
>
<Text style={{ fontSize: 20 }}>停車駅</Text>
<View style={{ flex: 1 }} />
<View style={{ flexDirection: "row" }}>
{!isNaN(data.trainData?.delay) &&
data.trainData?.delay != 0 && (
<Text
style={{
fontSize: 15,
color: "black",
position: "absolute",
right: 110,
textAlign: "right",
textDecorationLine: "line-through",
}}
>
(定刻)
</Text>
)}
<Text
style={{
fontSize: 20,
color: isNaN(data.trainData?.delay)
? "black"
: data.trainData?.delay == 0
? "black"
: "red",
width: 60,
}}
>
見込
</Text>
<Text style={{ fontSize: 20, width: 50 }}></Text>
</View>
</View>
</View>
{trainData.map((i, index) => {
const [station, se, time] = i.split(",");
const Stations = stationList.map((a) =>
a.filter((d) => d.StationName == station)
);
const StationNumbers =
Stations &&
Stations.reduce((newArray, e) => {
return newArray.concat(e);
}, [])
.filter((d) => d.StationNumber)
.map((d) => d.StationNumber);
const colorIDs =
StationNumbers != null
? StationNumbers.map((d) => {
return d.split("").filter((s) => "A" < s && s < "Z");
}).reduce((newArray, e) => {
return newArray.concat(e);
}, [])
: [];
const EachIDs =
StationNumbers != null
? StationNumbers.map((d) => {
return d
.split("")
.filter((s) => "0" <= s && s <= "9")
.join("");
})
: [];
const date = new Date();
if (time) {
date.setHours(time.split(":")[0], time.split(":")[1]);
}
if (!isNaN(data.trainData?.delay)) {
date.setMinutes(date.getMinutes() + data.trainData?.delay);
}
const timeString = date.toTimeString().split(" ")[0].split(":");
return (
<TouchableWithoutFeedback
onPress={() => openStationACFromEachTrainInfo(station)}
key={station}
>
<View style={{ flexDirection: "row" }}>
<View
style={{
width: 35,
position: "relative",
marginHorizontal: 15,
flexDirection: "row",
height: "101%",
}}
>
{colorIDs.map((color, index) => (
<View
style={{
backgroundColor: lineColorList[color],
flex: 1,
}}
key={color}
>
<View style={{ flex: 1 }} />
<Text
style={{
color: "white",
textAlign: "center",
fontSize: 10,
fontWeight: "bold",
}}
>
{colorIDs[index]}
</Text>
<Text
style={{
color: "white",
textAlign: "center",
fontSize: 10,
fontWeight: "bold",
}}
>
{EachIDs[index]}
</Text>
<View style={{ flex: 1 }} />
</View>
))}
</View>
<View
style={{
padding: 8,
flexDirection: "row",
borderBottomWidth: 1,
borderBottomColor: "#f0f0f0",
flex: 1,
}}
>
<Text style={{ fontSize: 20 }}>{station}</Text>
<View style={{ flex: 1 }} />
{points.findIndex((d) => d == index) >= 0 ? (
<Text
style={{
fontSize: 20,
marginRight: 70,
}}
>
🚊
</Text>
) : null}
{!isNaN(data.trainData?.delay) &&
data.trainData?.delay != 0 && (
<Text
style={{
fontSize: 15,
color: "black",
width: 60,
position: "absolute",
right: 120,
textAlign: "right",
textDecorationLine: "line-through",
}}
>
{time}
</Text>
)}
<Text
style={{
fontSize: 20,
color: isNaN(data.trainData?.delay)
? "black"
: data.trainData?.delay == 0
? "black"
: "red",
width: 60,
}}
>
{timeString[0]}:{timeString[1]}
</Text>
<Text style={{ fontSize: 18, width: 50 }}>
{se?.replace("発", "出発").replace("着", "到着")}
</Text>
</View>
</View>
</TouchableWithoutFeedback>
);
})}
</View>
</View>
</ScrollView>
</View>
</ActionSheet>
);
};

View File

@ -1,36 +0,0 @@
import React, { FC } from "react";
import { View, Text, TouchableWithoutFeedback } from "react-native";
import { MaterialCommunityIcons } from "@expo/vector-icons";
import { Linking } from "react-native";
export const DataFromButton: FC<{ i: string }> = ({ i }) => {
const [station, se, time] = i.split(",");
return (
<TouchableWithoutFeedback
onPress={() => Linking.openURL(time)}
key={station}
>
<View style={{ flexDirection: "row" }}>
<View
style={{
padding: 8,
flexDirection: "row",
borderBottomWidth: 1,
borderBottomColor: "#f0f0f0",
flex: 1,
}}
>
<Text style={{ fontSize: 20 }}>{station}</Text>
<View style={{ flex: 1 }} />
<Text style={{ fontSize: 18 }}>
<MaterialCommunityIcons
name={"open-in-new"}
color="black"
size={20}
/>
</Text>
</View>
</View>
</TouchableWithoutFeedback>
);
};

View File

@ -1,157 +0,0 @@
import React from "react";
import { View, Text, TouchableWithoutFeedback } from "react-native";
import dayjs from "dayjs";
import lineColorList from "../../../assets/originData/lineColorList";
export const EachStopList = ({
i,
index,
stationList,
points,
currentTrainData,
openStationACFromEachTrainInfo,
showThrew,
}) => {
if (!showThrew && i.split(",")[1] == "通過") return null;
const [station, se, time] = i.split(","); // 阿波池田,発,6:21
const Stations = stationList
.map((a) => a.filter((d) => d.StationName == station))
.reduce((newArray, e) => newArray.concat(e), []);
/*Array [
Object {
"StationName": "佐古",
"StationNumber": "T01",
},
Object {
"StationName": "佐古",
"StationNumber": "B01",
},
] */
const StationNumbers =
Stations &&
Stations.filter((d) => d.StationNumber).map((d) => d.StationNumber);
// Array [ "T01", "B01",]
const lineIDs = [];
const EachIDs = [];
StationNumbers.forEach((d) => {
const textArray = d.split("");
lineIDs.push(textArray.filter((s) => "A" < s && s < "Z").join(""));
EachIDs.push(textArray.filter((s) => "0" <= s && s <= "9").join(""));
});
// Array [ "T", "B",]
// Array [ "01", "01",]
const dates = dayjs()
.set("hour", parseInt(time.split(":")[0]))
.set("minute", parseInt(time.split(":")[1]))
.add(isNaN(currentTrainData?.delay) ? 0 : currentTrainData.delay, "minute");
const timeString = se == "通過" ? "" : dates.format("HH:mm").split(":");
const onClickStateText = (string) => {
if (string != "通過") return;
alert("この駅は通過駅です");
};
return (
<TouchableWithoutFeedback
onPress={() =>
openStationACFromEachTrainInfo &&
openStationACFromEachTrainInfo(station)
}
key={station}
>
<View style={{ flexDirection: "row", backgroundColor: "white" }}>
<View
style={{
width: 35,
position: "relative",
marginHorizontal: 15,
flexDirection: "row",
height: "101%",
}}
>
{lineIDs.map((lineID, index) => (
<View
style={{
backgroundColor: `${lineColorList[lineID]}${
se == "通過" ? "80" : ""
}`,
flex: 1,
}}
key={lineID}
>
<View style={{ flex: 1 }} />
<Text
style={{
color: "white",
textAlign: "center",
fontSize: 10,
fontWeight: "bold",
}}
>
{lineIDs[index]}
{"\n"}
{EachIDs[index]}
</Text>
<View style={{ flex: 1 }} />
</View>
))}
</View>
<View
style={{
padding: 8,
flexDirection: "row",
borderBottomWidth: 1,
borderBottomColor: "#f0f0f0",
flex: 1,
}}
>
<Text
style={{ fontSize: 20, color: `#000${se == "通過" ? "5" : ""}` }}
>
{station}
</Text>
<View style={{ flex: 1 }} />
<View style={{ position: "relative", width: 0 }}>
{points ? (
<Text style={{ fontSize: 20, position: "absolute", left: -60 }}>
🚊
</Text>
) : null}
</View>
{!isNaN(currentTrainData?.delay) && currentTrainData?.delay != 0 && (
<Text
style={{
fontSize: 15,
color: "black",
width: 60,
position: "absolute",
right: 120,
textAlign: "right",
textDecorationLine: "line-through",
}}
>
{time}
</Text>
)}
<Text
style={{
fontSize: 20,
color: isNaN(currentTrainData?.delay)
? "black"
: currentTrainData?.delay == 0
? "black"
: "red",
width: 60,
}}
onPress={() => onClickStateText(se)}
>
{se == "通過" ? "レ" : `${timeString[0]}:${timeString[1]}`}
</Text>
<Text style={{ fontSize: 18, width: 50 }}>
{se?.replace("発", "出発").replace("着", "到着")}
</Text>
</View>
</View>
</TouchableWithoutFeedback>
);
};

View File

@ -1,47 +0,0 @@
import React from "react";
import { View, Text, ScrollView, useWindowDimensions } from "react-native";
export const LandscapeTrainInfo = (props) => {
const { leftContent, topStickyContent, children, scrollHandlers } = props;
const { height, width } = useWindowDimensions();
return (
<View
style={{
flexDirection: "row",
backgroundColor: "blue",
width: width,
height: (height / 100) * 70,
marginBottom: 50,
}}
>
<View
style={{
flexDirection: "column",
height: (height / 100) * 70,
width: width / 2,
}}
>
<Text>{width / 2}</Text>
{leftContent}
</View>
<ScrollView
{...scrollHandlers}
style={{
width: width / 2,
height: "auto",
}}
stickyHeaderIndices={[1]}
scrollEventThrottle={16}
onScroll={(d) => {
console.log(d.nativeEvent.contentOffset.y);
}}
>
<View style={{ height: 0 }} />
<View style={{ flexDirection: "column" }} index={1}>
{topStickyContent}
</View>
{children}
</ScrollView>
</View>
);
};

View File

@ -1,35 +0,0 @@
import React from "react";
import { ScrollView } from "react-native";
import { TrainDataView } from "./TrainDataView";
export const LongHeader = ({
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
navigate,
}) => {
return (
<ScrollView
//onTouchStart={() => setActionSheetHorizonalScroll(true)}
//onScrollEndDrag={() => setActionSheetHorizonalScroll(false)}
//onScrollBeginDrag={() => console.log("onScrollBeginDrag")}
style={{
flexDirection: "row",
//width: widthPercentageToDP("200%"),
// minHeight: 200,
//height: heightPercentageToDP("20%"),
}}
horizontal
pagingEnabled
>
<TrainDataView
currentTrainData={currentTrainData}
currentPosition={currentPosition}
nearTrainIDList={nearTrainIDList}
openTrainInfo={openTrainInfo}
navigate={navigate}
/>
</ScrollView>
);
};

View File

@ -1,83 +0,0 @@
import React from "react";
import { View, Text, LayoutAnimation, TouchableOpacity } from "react-native";
export const ScrollStickyContent = (props) => {
const { currentTrainData, showThrew, setShowThrew, haveThrough } = props;
return (
<View
style={{
alignItems: "center",
backgroundColor: "white",
flexDirection: "row",
}}
>
<View
style={{
padding: 8,
flexDirection: "row",
borderBottomWidth: 1,
borderBottomColor: "#f0f0f0",
flex: 1,
}}
>
<Text style={{ fontSize: 20 }}>停車駅</Text>
<View style={{ flex: 1 }} />
<View style={{ flexDirection: "row" }}>
{!isNaN(currentTrainData?.delay) && currentTrainData?.delay != 0 && (
<Text
style={{
fontSize: 15,
color: "black",
position: "absolute",
right: 110,
textAlign: "right",
textDecorationLine: "line-through",
}}
>
(定刻)
</Text>
)}
<Text
style={{
fontSize: 20,
color: isNaN(currentTrainData?.delay)
? "black"
: currentTrainData?.delay == 0
? "black"
: "red",
width: 60,
}}
>
見込
</Text>
<TouchableOpacity
onPress={() => {
if (!haveThrough) return;
LayoutAnimation.configureNext({
duration: 200,
update: { type: "easeInEaseOut", springDamping: 0.6 },
});
setShowThrew(!showThrew);
}}
>
<View style={{ flex: 1 }} />
<Text
style={{
fontSize: 12,
width: 50,
paddingBottom: 0,
margin: "auto",
textAlign: "center",
textAlignVertical: "center",
opacity: haveThrough ? 1 : 0,
}}
>
(通過{showThrew ? "▼" : "▶"})
</Text>
<View style={{ flex: 1 }} />
</TouchableOpacity>
</View>
</View>
</View>
);
};

View File

@ -1,37 +0,0 @@
import React from "react";
import { ScrollView } from "react-native";
import { TrainDataView } from "./TrainDataView";
export const ShortHeader = ({
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
navigate,
}) => {
return (
<ScrollView
//onTouchStart={() => setActionSheetHorizonalScroll(true)}
//onScrollEndDrag={() => setActionSheetHorizonalScroll(false)}
//onScrollBeginDrag={() => console.log("onScrollBeginDrag")}
style={{
flexDirection: "row",
flex: 1,
//width: widthPercentageToDP("200%"),
// minHeight: 200,
//height: heightPercentageToDP("20%"),
}}
horizontal
pagingEnabled
>
<TrainDataView
mode={2}
currentTrainData={currentTrainData}
currentPosition={currentPosition}
nearTrainIDList={nearTrainIDList}
openTrainInfo={openTrainInfo}
navigate={navigate}
/>
</ScrollView>
);
};

View File

@ -1,36 +0,0 @@
import { Text, TouchableOpacity } from "react-native";
import React, { useState } from "react";
export const ShowSpecialTrain = ({
isTrainDataNothing,
setTrainData,
trainList,
trueTrainID,
}) => {
const replaceSpecialTrainDetail = (trainNum) => {
let TD = trainList[trainNum];
if (!TD) return;
setTrainData(TD.split("#").filter((d) => d != ""));
};
return (
<>
{isTrainDataNothing && trueTrainID && (
<TouchableOpacity
onPress={() => replaceSpecialTrainDetail(trueTrainID)}
style={{
padding: 10,
flexDirection: "row",
borderColor: "blue",
borderWidth: 1,
margin: 10,
borderRadius: 5,
alignItems: "center",
}}
>
<Text style={{ fontSize: 18, fontWeight: "bold", color: "black" }}>
本来の列車情報を表示
</Text>
</TouchableOpacity>
)}
</>
);
};

View File

@ -1,73 +0,0 @@
import React, { CSSProperties, FC } from "react";
import { View, Text, StyleProp, TextStyle, ViewStyle } from "react-native";
type stateBox = {
text: string;
title: string;
style?: ViewStyle;
mode?: number;
endText?: string;
};
export const StateBox: FC<stateBox> = (props) => {
const { text, title, style, mode, endText } = props;
return (
<View style={{ ...(mode == 2 ? boxStyle2 : boxStyle), ...style }}>
<Text style={{ fontSize: 12, color: "#0099CC" }}>{title}</Text>
<View style={{ flex: 1 }} />
<View style={{ flexDirection: mode == 2 ? "row" : "column" }}>
{text?.match("") ? (
<>
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
{text.split("")[0]}
</Text>
<Text style={{ color: "#0099CC", textAlign: "right" }}>
{mode == 2 ? "→" : "↓"}
</Text>
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
{text.split("")[1]}
</Text>
</>
) : (
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>{text}</Text>
)}
</View>
{endText && (
<View style={{ flexDirection: mode == 2 ? "row" : "column" }}>
<Text
style={{
...{ ...(mode == 2 ? boxTextStyle2 : boxTextStyle) },
fontSize: 10,
}}
>
{endText}
</Text>
</View>
)}
</View>
);
};
const boxStyle: ViewStyle = {
flex: 1,
backgroundColor: "white",
borderRadius: 10,
padding: 10,
margin: 10,
};
const boxStyle2: ViewStyle = {
flex: 1,
backgroundColor: "white",
borderRadius: 10,
padding: 5,
margin: 5,
};
const boxTextStyle2: TextStyle = {
fontSize: 18,
color: "#0099CC",
textAlign: "right",
};
const boxTextStyle: TextStyle = {
fontSize: 25,
color: "#0099CC",
textAlign: "right",
};

View File

@ -1,187 +0,0 @@
import React, { useState, useEffect } from "react";
import { View, TouchableOpacity, useWindowDimensions } from "react-native";
import { StateBox } from "./StateBox";
import { useDeviceOrientationChange } from "../../../stateBox/useDeviceOrientationChange";
import { getStationList2 } from "../../../lib/getStationList2";
import { useCurrentTrain } from "../../../stateBox/useCurrentTrain";
import { SheetManager } from "react-native-actions-sheet";
import { trainPosition } from "../../../lib/trainPositionTextArray";
import { TrainPositionDataPush } from "../../発車時刻表/LED_inside_Component/TrainPositionDataPush";
import { getStationID } from "../../../lib/eachTrainInfoCoreLib/getStationData";
import { useStationList } from "../../../stateBox/useStationList";
export const TrainDataView = ({
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
mode = 0,
navigate,
}) => {
const { stationList } = useStationList();
const { width, height } = useWindowDimensions();
const { isLandscape } = useDeviceOrientationChange();
const { inject } = useCurrentTrain();
const [mapsStationData, setMapsStationData] = useState(undefined);
const [platformNumber, setPlatformNumber] = useState();
const [platformDescription, setPlatformDescription] = useState();
useEffect(() => {
//currentTrainData.Pos = "鴨川~端岡"; //test
if (!currentTrainData) return;
fetch(
`https://n8n.haruk.in/webhook/JR-shikoku-PosID?PosNum=${currentTrainData?.PosNum}&Line=${currentTrainData?.Line}`
)
.then((res) => res.json())
.then((data) => {
setPlatformNumber(data?.type == "Station" ? data?.platform : undefined);
setPlatformDescription(
data?.type == "Station" ? data?.description : undefined
);
});
}, [currentTrainData]);
useEffect(() => {
getStationList2().then(setMapsStationData);
}, []);
const onLine = !!currentPosition?.toString().length;
const trainPositionText = (trainData) => {
const { isBetween, Pos: PosData } = trainPosition(trainData);
const { from, to, Pos } = PosData;
if (isBetween === true) return `${from}${to}`;
if (Pos == "") return "";
return `${Pos}${platformNumber ? ` ${platformNumber}番線` : ""}`;
};
const [dialog, setDialog] = useState(false);
const [deleteDialog, setDeleteDialog] = useState(false);
const [posInput, setPosInput] = useState("");
const [descInput, setDescInput] = useState("");
const [stationInput, setStationInput] = useState("");
const [stationNumberInput, setStationNumberInput] = useState("");
return (
<>
<TrainPositionDataPush
dialog={dialog}
setDialog={setDialog}
currentTrainData={currentTrainData}
stationInput={stationInput}
stationNumberInput={stationNumberInput}
posInput={posInput}
descInput={descInput}
setPosInput={setPosInput}
setDescInput={setDescInput}
station={{
Station_JP: trainPositionText(currentTrainData),
StationNumber: currentPosition[0],
}}
/>
<View
style={{
flexDirection: "row",
//minHeight: 200,
//height: heightPercentageToDP("20%"),
width: isLandscape ? (width / 100) * 40 : width,
flex: 1,
}}
>
<TouchableOpacity
style={{ flex: 1, flexDirection: "row" }}
//disabled={!onLine}
onLongPress={() => {
const { isBetween, Pos } = trainPosition(currentTrainData);
if (isBetween === true) {
if (
platformNumber == undefined &&
platformDescription == undefined
)
return;
setStationInput(`${Pos.from}${Pos.to}`);
setStationNumberInput(
getStationID(currentTrainData?.Pos, stationList)
);
setPosInput(platformNumber?.toString() || "");
setDeleteDialog(true);
} else {
setStationInput(Pos.Pos);
setStationNumberInput(
getStationID(currentTrainData?.Pos, stationList)
);
setDescInput(platformDescription || "");
setPosInput(platformNumber?.toString() || "");
setDialog(true);
}
}}
onPress={() => {
if (!onLine) return;
const test = [];
Object.keys(mapsStationData).forEach((d) => {
mapsStationData[d].forEach((x) => {
if (x.StationNumber == currentPosition[0])
test.push({ line: d, station: x });
});
if (currentPosition[0] == "M12") {
test.push({
line: "seto",
station: { Station_JP: "児島", MyStation: "0" },
});
}
});
if (!test.length) return;
navigate("positions", { screen: "Apps" });
inject(
`MoveDisplayStation('${test[0].line}_${test[0].station.MyStation}_${test[0].station.Station_JP}');document.getElementById("disp").insertAdjacentHTML("afterbegin", "<div />");`
);
SheetManager.hide("EachTrainInfo");
}}
>
<StateBox
mode={mode}
title={`現在地 ${currentPosition?.toString()}${onLine ? "▶️" : ""}`}
text={trainPositionText(currentTrainData)}
endText={platformDescription ? `${platformDescription}` : ""}
style={
onLine
? { borderWidth: 1, borderColor: "red", borderStyle: "solid" }
: {}
}
/>
</TouchableOpacity>
<View style={{ flex: 1, flexDirection: mode == 2 ? "row" : "column" }}>
<View style={{ flex: 1, flexDirection: "row" }}>
<StateBox
mode={mode}
title={isNaN(currentTrainData?.delay) ? "状態" : "遅延時分"}
text={`${currentTrainData?.delay}${
isNaN(currentTrainData?.delay) ? "" : "分"
}`}
/>
</View>
<TouchableOpacity
style={{ flex: 1, flexDirection: "row" }}
disabled={nearTrainIDList.length == 0}
onPress={() => {
if (nearTrainIDList.length == 0) return;
openTrainInfo(nearTrainIDList[0]);
}}
>
{nearTrainIDList.length == 0 ? (
<StateBox mode={mode} title="列番" text={currentTrainData?.num} />
) : (
<StateBox
mode={mode}
title="増解結相手を表示▶️"
text={`${nearTrainIDList}`}
style={{
borderWidth: 1,
borderColor: "red",
borderStyle: "solid",
}}
/>
)}
</TouchableOpacity>
</View>
</View>
</>
);
};

View File

@ -1,570 +0,0 @@
import React, { useEffect, useState } from "react";
import {
View,
Text,
TouchableOpacity,
StyleSheet,
useWindowDimensions,
BackHandler,
Linking,
LayoutAnimation,
} from "react-native";
import { SheetManager } from "react-native-actions-sheet";
import { useScrollHandlers } from "react-native-actions-sheet";
import { AS } from "../../storageControl";
import trainList from "../../assets/originData/trainList";
import { lineListPair } from "../../lib/getStationList";
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
import { checkDuplicateTrainData } from "../../lib/checkDuplicateTrainData";
import { getTrainType } from "../../lib/getTrainType";
import { customTrainDataDetector } from "../custom-train-data";
import { useBusAndTrainData } from "../../stateBox/useBusAndTrainData";
import { useDeviceOrientationChange } from "../../stateBox/useDeviceOrientationChange";
import { EachStopList } from "./EachTrainInfo/EachStopList";
import { DataFromButton } from "./EachTrainInfo/DataFromButton";
import { DynamicHeaderScrollView } from "../DynamicHeaderScrollView";
import { LongHeader } from "./EachTrainInfo/LongHeader";
import { ShortHeader } from "./EachTrainInfo/ShortHeader";
import { ScrollStickyContent } from "./EachTrainInfo/ScrollStickyContent";
import { getStationID } from "../../lib/eachTrainInfoCoreLib/getStationData";
import { findReversalPoints } from "../../lib/eachTrainInfoCoreLib/findReversalPoints";
import { searchSpecialTrain } from "../../lib/eachTrainInfoCoreLib/searchSpecialTrain";
import { openBackTrainInfo } from "../../lib/eachTrainInfoCoreLib/openBackTrainInfo";
import { ShowSpecialTrain } from "./EachTrainInfo/ShowSpecialTrain";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
import { HeaderText } from "./EachTrainInfoCore/HeaderText";
import { useStationList } from "../../stateBox/useStationList";
import { stationIDPair } from "../../lib/getStationList2";
export const EachTrainInfoCore = ({
actionSheetRef,
data,
openStationACFromEachTrainInfo,
from,
navigate,
}) => {
const { currentTrain } = useCurrentTrain();
const { originalStationList, stationList } = useStationList();
const { setTrainInfo } = useTrainMenu();
const [currentTrainData, setCurrentTrainData] = useState();
useEffect(() => {
if (!currentTrain.length) return;
setCurrentTrainData(
checkDuplicateTrainData(
currentTrain.filter((d) => d.num == data.trainNum),
stationList
)
);
}, [currentTrain, data.trainNum]);
useEffect(() => {
const backAction = () => {
SheetManager.hide("EachTrainInfo");
return true;
};
const backHandler = BackHandler.addEventListener(
"hardwareBackPress",
backAction
);
return () => backHandler.remove();
}, []);
const [headStation, setHeadStation] = useState([]);
const [tailStation, setTailStation] = useState([]);
const [showHeadStation, setShowHeadStation] = useState([]);
const [showTailStation, setShowTailStation] = useState([]);
const [nearTrainIDList, setNearTrainIDList] = useState([]);
const { getInfluencedTrainData } = useBusAndTrainData();
const [trainPositionSwitch, setTrainPositionSwitch] = useState("false");
const [currentPosition, setCurrentPosition] = useState([]);
const [trainData, setTrainData] = useState([]);
const [trainDataWidhThrough, setTrainDataWithThrough] = useState([]);
const [showThrew, setShowThrew] = useState(false);
const [haveThrough, setHaveThrough] = useState(false);
// 使用例
const stopStationIDList = trainDataWidhThrough.map((i) => {
const [station, se, time] = i.split(",");
const Stations = stationList.map((a) =>
a.filter((d) => d.StationName == station)
);
const StationNumbers =
Stations &&
Stations.reduce((newArray, e) => {
return newArray.concat(e);
}, []).map((d) => d.StationNumber);
return StationNumbers;
});
useEffect(() => {
const stopStationList = trainData.map((i) => {
const [station, se, time] = i.split(",");
return stationList.map((a) => a.filter((d) => d.StationName == station));
});
const allThroughStationList = stopStationList.map((i, index, array) => {
let allThroughStation = [];
if (index == array.length - 1) return;
const firstItem = array[index];
const secondItem = array[index + 1];
let betweenStationLine = "";
let baseStationNumberFirst = "";
let baseStationNumberSecond = "";
Object.keys(stationIDPair).forEach((d, index2, array) => {
if (!d) return;
const haveFirst = firstItem[index2];
const haveSecond = secondItem[index2];
if (haveFirst.length && haveSecond.length) {
betweenStationLine = d;
baseStationNumberFirst = haveFirst[0].StationNumber;
baseStationNumberSecond = haveSecond[0].StationNumber;
}
});
if (!betweenStationLine) return;
let reverse = false;
originalStationList[
lineListPair[stationIDPair[betweenStationLine]]
].forEach((d) => {
if (
d.StationNumber > baseStationNumberFirst &&
d.StationNumber < baseStationNumberSecond
) {
allThroughStation.push(`${d.Station_JP},通過,`);
setHaveThrough(true);
reverse = false;
} else {
if (
d.StationNumber < baseStationNumberFirst &&
d.StationNumber > baseStationNumberSecond
) {
allThroughStation.push(`${d.Station_JP},通過,`);
setHaveThrough(true);
reverse = true;
}
}
});
if (reverse) allThroughStation.reverse();
return allThroughStation;
});
let mainArray = [...trainData];
let indexs = 0;
trainData.forEach((d, index, array) => {
indexs = indexs + 1;
if (!allThroughStationList[index]) return;
if (allThroughStationList[index].length == 0) return;
mainArray.splice(indexs, 0, ...allThroughStationList[index]);
indexs = indexs + allThroughStationList[index].length;
});
setTrainDataWithThrough(mainArray);
}, [trainData]);
const points =
trainPositionSwitch == "true"
? findReversalPoints(currentPosition, stopStationIDList)
: stopStationIDList.map(() => false);
const [isJumped, setIsJumped] = useState(false);
useEffect(() => {
if (isJumped) return () => {};
if (!points) return () => {};
if (points.length == 0) return () => {};
const position = points.findIndex((d) => d == true);
let isThrew = false;
if (position == -1) return () => {};
if (trainDataWidhThrough[position].split(",")[1] == "通過") {
LayoutAnimation.configureNext({
duration: 400,
update: { type: "easeInEaseOut", springDamping: 0.6 },
});
setShowThrew(true);
isThrew = true;
}
if (position < 5) {
} // 5駅以内の場合はスクロールしない
else {
const count = position * 44 - 50;
// 0.5秒待機してからスクロール
setTimeout(
() =>
scrollHandlers.ref.current?.scrollTo({ y: count, animated: true }),
400
);
}
setIsJumped(true);
}, [points]);
const { height } = useWindowDimensions();
const { isLandscape } = useDeviceOrientationChange();
const scrollHandlers = actionSheetRef
? useScrollHandlers("scrollview-1", actionSheetRef)
: null;
const [trueTrainID, setTrueTrainID] = useState();
useEffect(() => {
if (!data.trainNum) return;
const TD = trainList[data.trainNum];
setHeadStation([]);
setTailStation([]);
if (!TD) {
const specialTrainActualID = searchSpecialTrain(data.trainNum, trainList);
setTrueTrainID(specialTrainActualID || undefined);
setTrainData([]);
return;
}
setTrainData(TD.split("#").filter((d) => d != ""));
}, [data]);
//裏列車探索
useEffect(() => {
if (!data.trainNum) return;
const NearTrainList = getInfluencedTrainData(data.trainNum);
if (NearTrainList.length == 0) return;
const returnArray = NearTrainList.map((d) => d.id);
const TDArray = NearTrainList.map((d) => d.TrainData);
setNearTrainIDList(returnArray);
if (trainData.length == 0) return;
if (TDArray.length == 0) return;
let head = [];
let tail = [];
TDArray.forEach((data, i) =>
data.forEach((d) => {
const [station, se, time] = d.split(",");
if (station == trainData[0].split(",")[0]) {
head.push({
station: trainData[0].split(",")[0],
dia: data,
id: nearTrainIDList[i],
});
}
if (station == trainData[trainData.length - 1].split(",")[0]) {
tail.push({
station: trainData[trainData.length - 1].split(",")[0],
dia: data,
id: nearTrainIDList[i],
});
}
})
);
if (head) setHeadStation(head);
else setHeadStation([]);
if (tail) setTailStation(tail);
else setTailStation([]);
}, [trainData, data]);
useEffect(() => {
//currentTrainData.Pos = "鴨川~端岡"; //test
if (!currentTrainData) return;
if (!currentTrainData?.Pos) return;
if (currentTrainData?.Pos.match("")) {
const pos = currentTrainData?.Pos.replace("(下り)", "")
.replace("(上り)", "")
.replace("(徳島線)", "")
.replace("(高徳線)", "")
.split("");
const direction = parseInt(currentTrainData?.Direction) || 0;
if (pos[0] == "児島" && pos[1] == "宇多津") {
setCurrentPosition(["M12", "Y09"]);
return;
} else if (pos[1] == "児島" && pos[0] == "宇多津") {
setCurrentPosition(["Y09", "M12"]);
return;
} else if (pos[0] == "伊予若宮" && pos[1] == "伊予白滝") {
setCurrentPosition(["S18", "S14"]);
return;
} else if (pos[0] == "伊予白滝" && pos[1] == "伊予若宮") {
setCurrentPosition(["S14", "S18"]);
return;
} else if (pos[0] == "伊予大洲" && pos[1] == "伊予若宮") {
setCurrentPosition(["U14", "U14"]);
return;
} else if (pos[0] == "伊予若宮" && pos[1] == "伊予大洲") {
setCurrentPosition(["U14", "U14"]);
return;
}
const currentPosID = Object.keys(originalStationList).map((key) => {
let firstStation = false;
let firstStationID = "";
let secondStation = false;
let secondStationID = "";
originalStationList[key].forEach((station) => {
if (station.Station_JP === pos[0]) {
firstStation = true;
firstStationID = station.StationNumber;
}
if (station.Station_JP === pos[1]) {
secondStation = true;
secondStationID = station.StationNumber;
}
});
if (firstStation && secondStation) {
return [firstStationID, secondStationID];
} else return false;
});
const currentPos = currentPosID.filter((d) => d != false)[0];
if (currentPos) {
setCurrentPosition(direction == 0 ? currentPos.reverse() : currentPos);
} else if (direction == 0) {
setCurrentPosition([
getStationID(pos[1], stationList),
getStationID(pos[0], stationList),
]);
} else {
setCurrentPosition([
getStationID(pos[0], stationList),
getStationID(pos[1], stationList),
]);
}
} else {
setCurrentPosition([getStationID(currentTrainData?.Pos, stationList)]);
}
}, [currentTrainData]);
useEffect(() => {
//列車現在地アイコン表示スイッチ
AS.getItem("trainPositionSwitch")
.then((d) => {
if (d) setTrainPositionSwitch(d);
})
.catch(() => AS.setItem("trainPositionSwitch", "true"));
}, []);
const openTrainInfo = (d) => {
const train = customTrainDataDetector(d);
let TrainNumber = "";
if (train.trainNumDistance != undefined) {
const timeInfo =
parseInt(d.replace("M", "").replace("D", "")) - train.trainNumDistance;
TrainNumber = timeInfo + "号";
}
const payload = {
data: {
trainNum: d,
limited: `${getTrainType(train.type).data}:${
train.trainName
}${TrainNumber}`,
},
navigate,
from: from == "LED" ? "LED2" : "NearTrainDiagramView",
};
if (isLandscape) {
setTrainInfo(payload.data);
} else {
SheetManager.hide("EachTrainInfo").then(() => {
//0.1秒待機してから開く
setTimeout(() => SheetManager.show("EachTrainInfo", { payload }), 200);
});
}
};
return (
<View
style={{
backgroundColor: "#0099CC",
borderTopRadius: 5,
borderColor: "dark",
borderWidth: 1,
}}
>
{isLandscape || (
<View style={{ height: 26, width: "100%" }}>
<View
style={{
height: 6,
width: 45,
borderRadius: 100,
backgroundColor: "#f0f0f0",
marginVertical: 10,
alignSelf: "center",
}}
/>
</View>
)}
<HeaderText
data={data}
trainData={trainData}
showHeadStation={showHeadStation}
showTailStation={showTailStation}
headStation={headStation}
tailStation={tailStation}
navigate={navigate}
from={from}
scrollHandlers={scrollHandlers}
/>
<DynamicHeaderScrollView
from={from}
styles={styles}
actionSheetRef={actionSheetRef}
scrollHandlers={scrollHandlers}
containerProps={{
style: {
maxHeight: isLandscape ? height - 94 : (height / 100) * 70,
},
}}
shortHeader={
<ShortHeader
{...{
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
navigate,
}}
/>
}
longHeader={
<LongHeader
{...{
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
navigate,
}}
/>
}
topStickyContent={
<ScrollStickyContent
{...{ currentTrainData, showThrew, setShowThrew, haveThrough }}
/>
}
>
{headStation.length != 0 &&
headStation.map((i, index) =>
showHeadStation.findIndex((d) => d == index) == -1 ? (
<TouchableOpacity
onPress={() => {
const array = openBackTrainInfo(i.station, trainData, i.dia);
if (!array) return;
setTrainData(array);
setShowHeadStation([...showHeadStation, index]);
}}
style={{
padding: 10,
flexDirection: "row",
borderColor: "blue",
borderWidth: 1,
margin: 10,
borderRadius: 5,
alignItems: "center",
}}
>
<Text
style={{ fontSize: 18, fontWeight: "bold", color: "black" }}
>
本当の始発駅を表示
</Text>
</TouchableOpacity>
) : (
<></>
)
)}
<ShowSpecialTrain
isTrainDataNothing={trainData.length == 0}
setTrainData={setTrainData}
trainList={trainList}
trueTrainID={trueTrainID}
/>
{!trainData.length && (
<TouchableOpacity
onPress={() =>
Linking.openURL(`https://twitter.com/search?q=${data.trainNum}`)
}
style={{
padding: 10,
flexDirection: "row",
borderColor: "blue",
borderWidth: 1,
margin: 10,
borderRadius: 5,
alignItems: "center",
}}
>
<Text style={{ fontSize: 18, fontWeight: "bold", color: "black" }}>
Twitterで検索
</Text>
</TouchableOpacity>
)}
{trainDataWidhThrough.map((i, index) =>
i.split(",")[1] == "提" ? (
<DataFromButton i={i} />
) : (
<EachStopList
{...{
i,
index,
stationList,
points: points ? points[index] : false,
currentTrainData,
openStationACFromEachTrainInfo,
showThrew,
}}
/>
)
)}
{tailStation.length != 0 &&
tailStation.map(({ station, dia }, index) =>
showTailStation.findIndex((d) => d == index) == -1 ? (
<TouchableOpacity
onPress={() => {
const array = openBackTrainInfo(station, trainData, dia);
if (!array) return;
setTrainData(array);
setShowTailStation([...showTailStation, index]);
}}
style={{
padding: 10,
flexDirection: "row",
borderColor: "blue",
borderWidth: 1,
margin: 10,
borderRadius: 5,
alignItems: "center",
}}
>
<Text
style={{ fontSize: 18, fontWeight: "bold", color: "black" }}
>
本当の終着駅を表示
</Text>
</TouchableOpacity>
) : (
<></>
)
)}
<View style={{ flexDirection: "row" }}>
<View
style={{
padding: 8,
flexDirection: "row",
borderBottomWidth: 1,
borderBottomColor: "#f0f0f0",
flex: 1,
}}
>
<Text style={{ fontSize: 20 }}> </Text>
<View style={{ flex: 1 }} />
</View>
</View>
</DynamicHeaderScrollView>
</View>
);
};
const styles = StyleSheet.create({
header: {
justifyContent: "center",
alignItems: "center",
left: 0,
right: 0,
//paddingTop: 10,
position: "absolute",
zIndex: 1,
backgroundColor: "f0f0f0",
},
headerText: {
color: "#fff",
fontSize: 25,
fontWeight: "bold",
textAlign: "center",
},
});

Some files were not shown because too many files have changed in this diff Show More