2

ユーザーが入力フィールドで開始点と終了点を検索する Google マップがあります。ルートが描画されたら、ウェイポイントを追加およびドラッグしてルートをカスタマイズできます。送信すると、ルートは XML として保存され、必要に応じて新しいマップに再描画されます。問題は、現時点では開始点と終了点しか XML に保存されていないことです。

私はこのドキュメントから作業してきました: https://developers.google.com/maps/documentation/javascript/directions#Waypointsですが、ここで完全に困惑しています。

私が提案した方法は、開始点と終了点と同じで、緯度と経度の値を XML に保存します。以下の JS は、ウェイポイントのデータを取得します。配列がどのように構成されているかを確認するために console.logged しました。ここでの問題は、各ウェイポイント (複数ある場合) をループし、それぞれを新しい変数として保存して、PHP 送信用のフォームに追加できるようにする方法がわからないことです。

//What to do when a waypoint has been added/changed
google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
    var waypoints = directionsDisplay.getDirections().routes[0].legs[0].via_waypoints;
    console.log(waypoints);
    console.log(waypoints[0].kb);
});

私が言ったように、おそらくもっと簡単な方法があります。上記は私がこれまでに試したことです。これは console.log(waypoints) の結果です...

ここに画像の説明を入力

非表示の入力に値を与えるJSは以下のとおりです...

$('form.add-journix').submit(function() {
      $('#startlat').attr('value', startLatVal);
      $('#startlng').attr('value', startLongVal);
      $('#endlat').attr('value', endLatVal);
      $('#endlng').attr('value', endLongVal);
  });

これは、XMLとして保存するPHPです...

header("Content-type: text/xml"); 

    // Iterate through the rows, adding XML nodes for each

    while ($row = mysql_fetch_assoc($result)){  
      // ADD TO XML DOCUMENT NODE  
      $node = $dom->createElement("marker");  
      $newnode = $parnode->appendChild($node);   
      $newnode->setAttribute("title", $row['title']);  
      $newnode->setAttribute("description", $row['description']);  
      $newnode->setAttribute("startlat", $row['startlat']);  
      $newnode->setAttribute("startlng", $row['startlng']);  
      $newnode->setAttribute("endlat", $row['endlat']);  
      $newnode->setAttribute("endlng", $row['endlng']);  
    } 

    echo $dom->saveXML();
4

1 に答える 1