輸送路

 うっかり中途半端で放置していたので予定以上のことを試してみます。

ドラッグで円を移動させることができます。

パス一本で輸送

 パスが一本しかないので単純輸送のみに対応しています。
  //当り判定用
  var hitOpt = {
    segments: false, stroke: false, fill: true
  }
  //ドラッグ開始
  function onMouseDown(event){
    oDrag = project.hitTest(event.point, hitOpt);
  }
  //ドラッグ処理
  function onMouseDrag(event){
    if (oDrag == null){return;};
    oDrag.item.position += event.delta;
    route.segments[oDrag.item.numCity].point += event.delta;
  }

範囲内へ輸送

 以下は町と町の距離が一定範囲内なら道路がつながるサンプルです。
  //パスを少し膨らませる
  var offset = route[num].length / 2;
  var point = route[num].getPointAt(offset);
  var normal = route[num].getNormalAt(offset);
  normal.length = 7;
  var tangent = route[num].getTangentAt(offset);
  tangent.length = route[num].length / 4;
  route[num].insert(1, new Segment(point + normal, tangent * -1, tangent));
...
  //輸送範囲
  var d = city[i].position - city[j].position;
  if (d.length < 200){
    ...
  }
 当初は往路のみでしたがサンプルを見ながら試してみたら復路も追加できたのでこのような結果となりました。
 交差していると見づらいので、片方もしくは両方を消す処理をした方がよいかもしれません。