1

頑丈なPCに接続されたキャリブレーションされたトリップコンピューターを使用して、道路や高速道路の状態を調査するプロジェクトに取り組んでいます。オペレーターは、事前定義されたルートに沿って移動するときに欠陥コードを入力します。

トリップコンピューターからの距離データを考慮して、車両の現在位置を示すインジケーターをマップ画面に表示する必要があります。

道路の各セクションの始点での正確な緯度座標を知っています。道路は一連の点で構成されています。

問題は、車両がルートを継続し、特定の距離(1.4kmなど)を移動したと仮定して、車両の緯度座標をどのように計算できるかということです。下の図の青色で示されているように、座標は道路線に「ロック」されます。

道路図

ありがとう、アレックス

4

1 に答える 1

1

これは、Java風の擬似コードであり、ポイント間の線形補間を使用したソリューションを提供します。

inputs: distance, points

// construct a list of segments from the points
segments = [];
for(point in points) {
  if(not first point) {
    seg = new segment(last_point, point)
    add seg to segments
  }
  last_point = point
}

// calculate current lat and lon
for(segment in segments) {
  if(distance < segment.length) {
    alpha = distance / segment.length
    lat = segment.start.lat * (1.0 - alpha) + segment.end.lat * alpha
    lon = segment.start.lon * (1.0 - alpha) + segment.end.lon * alpha
    return (lat, lon)
  } else {
    distance = distance - segment.length
  }
}

より正確なスプライン補間を検討することもできます。さらにいくつかの計算が必要になりますが、上記のアイデアは引き続き適用できます。

于 2010-06-07T07:39:16.767 に答える