推定位置移動を作成、デザインを調整

This commit is contained in:
harukin-expo-dev-env
2025-09-24 10:48:34 +00:00
parent 7ab402d35f
commit 525fbaa717

View File

@@ -152,8 +152,7 @@ export const FixedTrain: FC<props> = ({
stopStationIDList[
stopStationIDList.findIndex((d) => d.includes("U14")) - 1
][0];
}
else if (position[0] == "+Iyo") {
} else if (position[0] == "+Iyo") {
position[0] =
stopStationIDList[
stopStationIDList.findIndex((d) => d.includes("U14")) + 1
@@ -164,7 +163,7 @@ export const FixedTrain: FC<props> = ({
stopStationIDList[
stopStationIDList.findIndex((d) => d.includes("U14")) + 1
][0];
}else if (position[1] == "-Iyo") {
} else if (position[1] == "-Iyo") {
position[1] =
stopStationIDList[
stopStationIDList.findIndex((d) => d.includes("U14")) - 1
@@ -178,6 +177,7 @@ export const FixedTrain: FC<props> = ({
const [nextStationData, setNextStationData] = useState<StationProps[]>([]);
const [untilStationData, setUntilStationData] = useState<StationProps[]>([]);
const [probably, setProbably] = useState(false);
useEffect(() => {
//棒線駅判定を入れて、棒線駅なら時間を見て分数がマイナスならcontinue;
const points = findReversalPoints(currentPosition, stopStationIDList);
@@ -186,18 +186,50 @@ export const FixedTrain: FC<props> = ({
let searchCountFirst = points.findIndex((d) => d == true);
let searchCountLast = points.findLastIndex((d) => d == true);
console.log("searchCountBase", searchCountFirst, searchCountLast);
const delayTime = train?.delay == "入線" ? 0 : train?.delay;
let additionalSkipCount = 0;
for (
let searchCount = searchCountFirst;
searchCount < points.length;
searchCount++
) {
console.log("searchCount", searchCount);
console.log(points.length);
const nextPos = trainDataWidhThrough[searchCount];
if (nextPos) {
const [station, se, time] = nextPos.split(",");
if (se.includes("通")) continue;
else {
if (searchCountFirst == searchCountLast) {
setNextStationData(getStationDataFromName(station));
break;
} else {
let distanceMinute = 0;
if (time != "") {
const now = dayjs();
const hour = parseInt(time.split(":")[0]);
const distanceTime = now
.hour(hour < 4 ? hour + 24 : hour)
.minute(parseInt(time.split(":")[1]));
distanceMinute = distanceTime.diff(now, "minute") + delayTime;
if (now.hour() < 4) {
if (hour < 4) {
distanceMinute = distanceMinute - 1440;
}
}
}
if (distanceMinute >= 0) {
if (se.includes("通")) {
continue;
} else {
setNextStationData(getStationDataFromName(station));
break;
}
} else {
additionalSkipCount++;
continue;
}
}
}
}
@@ -209,6 +241,12 @@ export const FixedTrain: FC<props> = ({
) {
trainList.push(trainDataWidhThrough[searchCount]);
}
if (additionalSkipCount > 0) {
trainList = trainList.slice(additionalSkipCount);
setProbably(true);
} else {
setProbably(false);
}
setUntilStationData(trainList);
}, [currentPosition, trainDataWidhThrough]);
const [ToData, setToData] = useState("");
@@ -402,18 +440,36 @@ export const FixedTrain: FC<props> = ({
alignItems: "center",
}}
>
<Text
style={{
fontSize: 10,
fontWeight: "bold",
color: "white",
marginHorizontal: 5,
}}
>
{nextStationData[0]?.Station_JP == train?.Pos
? "ただいま"
: "次は"}
</Text>
<View style={{ flexDirection: "column" }}>
<Text
style={{
fontSize: 10,
fontWeight: "bold",
color: "white",
marginHorizontal: 5,
paddingVertical: 0,
marginVertical: -1,
}}
>
{nextStationData[0]?.Station_JP == train?.Pos
? "ただいま"
: "次は"}
</Text>
{probably && (
<Text
style={{
fontSize: 5,
color: "white",
fontWeight: "bold",
marginHorizontal: 5,
paddingVertical: 0,
marginVertical: -1,
}}
>
()
</Text>
)}
</View>
<StationNumberMaker
currentStation={nextStationData}
singleSize={20}