6

私のアプリケーションには、ユーザーがポリゴン、ライン、マーカーを描画できるようにするGoogleマップコンポーネントがあります。ここで、ユーザーがマップに描画したもののkmlファイルをエクスポートできるボタンを実装したいと思います。

そうするための最良のアプローチのための提案。

あなたのコメントと貢献は高く評価されています

4

1 に答える 1

4

ユーザーが描画したときに座標を保存し、[KML を出力] ボタンをクリックすると、保存された座標データをフォーマットし、コピーするテキストエリアに配置するという私の考えを要約します (ダウンロードとしてプロンプトを表示する方法がない場合は? )。

ユーザーが描画要素を完成させたときにデータを保存する方法は次のとおりです。

http://jsfiddle.net/8bwG2/

(編集を検出する良い方法がわかりません。)

最初に、各描画タイプ (ライン、ポリゴン、マーカー) のイベント リスナーを追加し、描画が完了したときに起動します。タイプごとに個別のイベント リスナーが必要です。これは Polylines の 1 つです。各リスナーは、完成したばかりの描画要素のタイプを返します。

    google.maps.event.addDomListener(drawingManager, 'polylinecomplete', function(line) {
        path = line.getPath();
        document.getElementById("action").value += "#polyline\n";
        for(var i = 0; i < path.length; i++) {
          document.getElementById("action").value += path.getAt(i) + "\n";
        }
    });

座標を共有テキストエリアに直接配置していますが、代わりに、ポリゴン用の変数、ポリライン用の変数、およびマーカー用の変数を使用して、配列変数の配列に配置する必要があります。

これらの内部変数から読み取る場合、Google マップの LatLngs を KML 形式の経度、緯度、高度に変換します。各要素の名前と説明を工夫する必要があります。

最後に、KML が要求されると、マーカー、ライン、およびポリゴン変数をループして、次のような KML 形式の要素を生成します。Point-coordinates, LineString, and Polygon-outerBoundaryIs

于 2012-05-19T14:55:06.297 に答える