2

技術者以外のユーザーから個々のマップされたポリゴンのデータを収集する最も軽量な方法を見つけようとしています。最終的なビジョンは次のとおりです。ユーザーが Web フォームに入力し、図形を描画すると、書式設定されたデータを私や同僚に簡単に電子メールで送信できます (電子メールのアイデアはおそらく読者をぞっとさせるかもしれませんが、私は私の制御を超えた多くの制限的なパラメータ.電子メールは既知の量です.)

geojson.io のようなものや、leaflet.draw を使用した単なるリーフレット マップを取り除き、結果の座標を電子メールで送信できるテキストに渡す方法はありますか?

繰り返しますが、私のニーズは基本的なものです。一度に 1 つのシェイプがマップされます。視覚的なオプションとコントロールが少ないほど良いです。私の聴衆はほとんどが技術に詳しくありません。

このユーザーは同じ質問をしようとしたようですが、うまくいきませんでした。

ありがとう!

4

2 に答える 2

2

Leaflet.draw の例からコードを適応させた概念の簡単な証明:

var drawControl = new L.Control.Draw({
  edit: {
    featureGroup: drawnItems
  }
});
map.addControl(drawControl);

map.on('draw:created', function(e) {
  var layer = e.layer,
      popupContent = layer.toGeoJSON ?
        JSON.stringify(layer.toGeoJSON()) : "(no data)";

  drawnItems.addLayer(layer);

  layer.bindPopup(popupContent).openPopup();
});

これにより、描画されたアイテムが GeoJSON 文字列に変換され、アイテムにバインドされたポップアップに表示されます。

デモ: https://jsfiddle.net/3v7hd2vx/75/

于 2016-09-13T13:40:58.063 に答える
1

hereで説明されているように、geojson データを直接送信することはできませんが、ブラウザーで事前設定されたデータを使用してメール クライアントを開くことができます。

  var text=JSON.stringify(drawnItems.toGeoJSON());
  window.open('mailto:test@example.com?subject=subject&body=' + text);

ここに完全な例があります

于 2016-09-13T15:29:55.667 に答える