207 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import 予讃線 from "../assets/四国旅客鉄道予讃線.json";
 | ||
| import 土讃線 from "../assets/四国旅客鉄道土讃線.json";
 | ||
| import 高徳線 from "../assets/四国旅客鉄道高徳線.json";
 | ||
| import 内子線 from "../assets/四国旅客鉄道内子線.json";
 | ||
| import 徳島線 from "../assets/四国旅客鉄道徳島線.json";
 | ||
| import 鳴門線 from "../assets/四国旅客鉄道鳴門線.json";
 | ||
| import yosan from "../assets/originData/yosan";
 | ||
| import uwajima from "../assets/originData/uwajima";
 | ||
| import uwajima2 from "../assets/originData/uwajima2";
 | ||
| import dosan from "../assets/originData/dosan";
 | ||
| import dosan2 from "../assets/originData/dosan2";
 | ||
| import koutoku from "../assets/originData/koutoku";
 | ||
| import tokushima from "../assets/originData/tokushima";
 | ||
| import naruto from "../assets/originData/naruto";
 | ||
| import seto from "../assets/originData/seto";
 | ||
| import between from "../assets/originData/between";
 | ||
| import train_lang from "../assets/originData/train_lang";
 | ||
| 
 | ||
| let status = undefined;
 | ||
| 
 | ||
| export const lineList = [
 | ||
|   "予讃線(高松-松山間)[Y]",
 | ||
|   "予讃線(松山-宇和島間)[U]",
 | ||
|   "予讃線/愛ある伊予灘線(向井原-伊予大洲間)[S]",
 | ||
|   "土讃線(多度津-高知間)[D]",
 | ||
|   "土讃線(高知-窪川間)[K]",
 | ||
|   "高徳線(高松-徳島間)[T]",
 | ||
|   "徳島線(徳島-阿波池田)[B]",
 | ||
|   "鳴門線(池谷-鳴門間)[N]",
 | ||
|   "瀬戸大橋線(宇多津-児島間)[M]",
 | ||
| ];
 | ||
| 
 | ||
| export const getStationList = async (props) => {
 | ||
|   if (status) return status;
 | ||
|   //駅リストイニシャライズ
 | ||
|   return await Promise.all([
 | ||
|     yosan,
 | ||
|     uwajima,
 | ||
|     uwajima2,
 | ||
|     dosan,
 | ||
|     dosan2,
 | ||
|     koutoku,
 | ||
|     tokushima,
 | ||
|     naruto,
 | ||
|     seto,
 | ||
|     between,
 | ||
|     train_lang,
 | ||
|   ]).then((values) => {
 | ||
|     let stationList = {};
 | ||
|     [
 | ||
|       stationList["予讃線(高松-松山間)[Y]"],
 | ||
|       stationList["予讃線(松山-宇和島間)[U]"],
 | ||
|       stationList["予讃線/愛ある伊予灘線(向井原-伊予大洲間)[S]"],
 | ||
|       stationList["土讃線(多度津-高知間)[D]"],
 | ||
|       stationList["土讃線(高知-窪川間)[K]"],
 | ||
|       stationList["高徳線(高松-徳島間)[T]"],
 | ||
|       stationList["徳島線(徳島-阿波池田)[B]"],
 | ||
|       stationList["鳴門線(池谷-鳴門間)[N]"],
 | ||
|       stationList["瀬戸大橋線(宇多津-児島間)[M]"],
 | ||
|       stationList.駅間リスト,
 | ||
|       stationList.日英対応表,
 | ||
|     ] = values;
 | ||
|     const concatBetweenStations = (eachRouteData) => {
 | ||
|       let additional = [];
 | ||
|       eachRouteData.forEach((routeData, routeIndex) => {
 | ||
|         try {
 | ||
|           const currentStationID = parseInt(
 | ||
|             routeData.StationNumber.replace(/[A-Z]/g, "")
 | ||
|           );
 | ||
|           const nextStationID = parseInt(
 | ||
|             eachRouteData[routeIndex + 1].StationNumber.replace(/[A-Z]/g, "")
 | ||
|           );
 | ||
|           if (nextStationID - currentStationID != 1) {
 | ||
|             stationList.駅間リスト.forEach((betweenList) => {
 | ||
|               if (
 | ||
|                 betweenList.BetweenStation ==
 | ||
|                 routeData.Station_JP +
 | ||
|                   "~" +
 | ||
|                   eachRouteData[routeIndex + 1].Station_JP
 | ||
|               ) {
 | ||
|                 additional = additional.concat(betweenList.Datas);
 | ||
|               }
 | ||
|             });
 | ||
|           }
 | ||
|         } catch (e) {}
 | ||
|       });
 | ||
|       return eachRouteData
 | ||
|         .concat(additional)
 | ||
|         .sort((a, b) => (a.StationNumber > b.StationNumber ? 1 : -1));
 | ||
|     };
 | ||
|     const addStationPosition = (setDataBase, geoJson, EnJpList) => {
 | ||
|       return setDataBase.map((data) => {
 | ||
|         let stationName;
 | ||
|         if (data.hasOwnProperty("Station_JP")) stationName = data.Station_JP;
 | ||
|         else if (data.hasOwnProperty("StationName")) {
 | ||
|           stationName = data.StationName;
 | ||
|           data.Station_JP = data.StationName;
 | ||
|           data.Station_EN = EnJpList.find(
 | ||
|             (d) => d.Station_JP == data.Station_JP
 | ||
|           ).Station_EN;
 | ||
|         }
 | ||
|         geoJson.features
 | ||
|           .filter((d) => d.geometry.type == "Point")
 | ||
|           .forEach((element) => {
 | ||
|             if (element.properties.name == stationName) {
 | ||
|               data.lat = element.geometry.coordinates[1];
 | ||
|               data.lng = element.geometry.coordinates[0];
 | ||
|             }
 | ||
|           });
 | ||
|         return data;
 | ||
|       });
 | ||
|     };
 | ||
|     stationList["予讃線(高松-松山間)[Y]"] = addStationPosition(
 | ||
|       concatBetweenStations(stationList["予讃線(高松-松山間)[Y]"]),
 | ||
|       予讃線,
 | ||
|       stationList.日英対応表
 | ||
|     );
 | ||
|     stationList["予讃線(松山-宇和島間)[U]"] = addStationPosition(
 | ||
|       concatBetweenStations(stationList["予讃線(松山-宇和島間)[U]"]),
 | ||
|       予讃線,
 | ||
|       stationList.日英対応表
 | ||
|     );
 | ||
|     stationList["予讃線/愛ある伊予灘線(向井原-伊予大洲間)[S]"] =
 | ||
|       addStationPosition(
 | ||
|         concatBetweenStations(
 | ||
|           stationList["予讃線/愛ある伊予灘線(向井原-伊予大洲間)[S]"]
 | ||
|         ),
 | ||
|         予讃線,
 | ||
|         stationList.日英対応表
 | ||
|       );
 | ||
|     stationList["土讃線(多度津-高知間)[D]"] = addStationPosition(
 | ||
|       concatBetweenStations(stationList["土讃線(多度津-高知間)[D]"]),
 | ||
|       土讃線,
 | ||
|       stationList.日英対応表
 | ||
|     );
 | ||
|     stationList["土讃線(高知-窪川間)[K]"] = addStationPosition(
 | ||
|       concatBetweenStations(stationList["土讃線(高知-窪川間)[K]"]),
 | ||
|       土讃線,
 | ||
|       stationList.日英対応表
 | ||
|     );
 | ||
|     stationList["高徳線(高松-徳島間)[T]"] = addStationPosition(
 | ||
|       concatBetweenStations(stationList["高徳線(高松-徳島間)[T]"]),
 | ||
|       高徳線,
 | ||
|       stationList.日英対応表
 | ||
|     );
 | ||
|     stationList["鳴門線(池谷-鳴門間)[N]"] = addStationPosition(
 | ||
|       concatBetweenStations(stationList["鳴門線(池谷-鳴門間)[N]"]),
 | ||
|       鳴門線,
 | ||
|       stationList.日英対応表
 | ||
|     );
 | ||
|     const tokushimaCurrent = addStationPosition(
 | ||
|       concatBetweenStations(stationList["徳島線(徳島-阿波池田)[B]"]),
 | ||
|       徳島線,
 | ||
|       stationList.日英対応表
 | ||
|     );
 | ||
|     stationList["徳島線(徳島-阿波池田)[B]"] = [
 | ||
|       tokushimaCurrent[tokushimaCurrent.length - 1],
 | ||
|       ...tokushimaCurrent,
 | ||
|     ];
 | ||
|     stationList["徳島線(徳島-阿波池田)[B]"].pop();
 | ||
|     stationList["瀬戸大橋線(宇多津-児島間)[M]"] = [
 | ||
|       {
 | ||
|         Station_JP: "坂出",
 | ||
|         Station_EN: "Sakaide",
 | ||
|         MyStation: "3",
 | ||
|         StationNumber: null,
 | ||
|         DispNum: "3",
 | ||
|         StationTimeTable:
 | ||
|           "http://www.jr-shikoku.co.jp/01_trainbus/jikoku/pdf/sakaide.pdf",
 | ||
|         StationMap: "https://www.google.co.jp/maps/place/34.313222,133.856325",
 | ||
|         JrHpUrl: "http://www.jr-shikoku.co.jp/01_trainbus/kakueki/sakaide/",
 | ||
|         lat: 34.313222,
 | ||
|         lng: 133.856325,
 | ||
|       },
 | ||
| 
 | ||
|       {
 | ||
|         Station_JP: "児島",
 | ||
|         Station_EN: "Kojima",
 | ||
|         MyStation: "0",
 | ||
|         StationNumber: "M12",
 | ||
|         DispNum: "3",
 | ||
|         StationTimeTable:
 | ||
|           "http://www.jr-odekake.net/eki/timetable.php?id=0651304",
 | ||
|         StationMap: "https://www.google.co.jp/maps/place/34.462562,133.807809",
 | ||
|         JrHpUrl: "http://www.jr-odekake.net/eki/top.php?id=0651304",
 | ||
|         lat: 34.462562,
 | ||
|         lng: 133.807809,
 | ||
|       },
 | ||
|       {
 | ||
|         Station_JP: "宇多津",
 | ||
|         Station_EN: "Utazu",
 | ||
|         MyStation: "0",
 | ||
|         StationNumber: null,
 | ||
|         DispNum: "3",
 | ||
|         StationTimeTable:
 | ||
|           "http://www.jr-shikoku.co.jp/01_trainbus/jikoku/pdf/utazu.pdf",
 | ||
|         StationMap: "https://www.google.co.jp/maps/place/34.306379,133.813784",
 | ||
|         JrHpUrl: "http://www.jr-shikoku.co.jp/01_trainbus/kakueki/utazu/",
 | ||
|         lat: 34.306379,
 | ||
|         lng: 133.813784,
 | ||
|       },
 | ||
|     ];
 | ||
|     status = stationList;
 | ||
|     return stationList;
 | ||
|   });
 | ||
| };
 |