- 12, May 2024
- #1
Привет,
С помощью библиотеки JS и turfjs мне нужно вычислить несколько маркеров
1) средняя скорость
2) время прибытия в любую маркерную точку
Я делаю как:
Надеюсь, мой общий поток верен, но я столкнулся с этой проблемой... Спасибо!
const markerIds = Object.keys(markers)
const points2Data = []
let summarized_distance= 0
let arrival_date= moment(tripRow.arrival_date)// arrival time
let departure_date= moment(tripRow.departure_date) // departure time
for (let i = 1; i < markerIds.length; i++) {
const marker = markers[markerIds[i - 1]]
const nextMarker = markers[markerIds[i]]
const from = turf.point([marker.lat, marker.lng])
const to = turf.point([nextMarker.lat, nextMarker.lng])
const distance = turf.distance(from, to, { units: 'kilometers' })
summarized_distance= summarized_distance + distance
// get data
const points2Item = {
id: marker.id,
start: marker.id,
end: nextMarker.id,
speed: marker.speed,
lat: nextMarker.lat,
lng: nextMarker.lng,
latlng: [nextMarker.lat, nextMarker.lng],
distance: distance,
time: distance / marker.speed,
eta:null
}
points2Data.push(points2Item)
} // for (let i = 1; i < markerIds.length; i++) {
// get medium speed
let calculated_speed = summarized_distance / summarized_trip_time
let next_arrival_time= arrival_date
for (let i = 0; i < points2Data.length; i++) {
// I think I need to get raio of 1 marker distance from whole distance
let distance_ratio= summarized_distance / points2Data[i].distance
// I think I need to get calculate time ratio and add it to next_arrival_time, something like
next_arrival_time= next_arrival_time.add(CALCULATED_RATIO_TIME, 'hour')
// But how to calculate this CALCULATED_RATIO_TIME ?
points2Data[i].eta= next_arrival_time.format('YYYY-MM-DD HH:mm')
Код (JavaScript): как рассчитать это CALCULATED_RATIO_TIME?
Надеюсь, мой общий поток верен, но я столкнулся с этой проблемой... Спасибо!