0

アプリのユーザーが「領域」を (ポリゴンとして) 定義できるようにしようとしています。次に、他の人がポイント (緯度と経度) を照会して、そのポイントが誰の領域にあるかを判断できます。GeoAlchemy2 のドキュメントから、これは仕事に適したツールである可能性が高いと判断しました (私のアプリは現在開発中なので、私は他の提案を受け入れます.私は開発でフラスコ、フラスコ-sqlalchemy、およびSqliteを使用しています...製品でPostgresを計画しています.フロントエンド用のAngularJS)。

検索の結果、ng-map、特にここに表示されている描画マネージャー ディレクティブにたどり着きました。https://ngmap.github.io/#/!drawing-manager.html . この例を変更すると、Google の onMapOverlayCompleted オブジェクトにアクセスできます。そこに latLng オブジェクトが表示されますが、それをデータベースに保持できるものに変換する方法がわかりません。これをJSで行うと仮定すると、JSONにダンプしてFlask APIに送信できますか?

これを行う方法について誰かが私を正しい方向に向けることができますか? より良いアイデアを喜んで聞きます。

ありがとう。

その例のコードを次に示します。

var app = angular.module('myapp', ['ngMap']);
app.controller('DrawingManagerCtrl', function() {
  var vm = this;
  vm.onMapOverlayCompleted = function(e){
    console.log(e);
  };
});

「e」からポリゴンを取得するにはどうすればよいですか?

4

1 に答える 1

0

ポイントの配列を取得する方法については、この回答https://stackoverflow.com/a/38827199/785985を確認できます。それはこのコードです:

e.overlay.getPath().getArray();

次に、配列を反復処理して、各アイテムの緯度と経度を取得できます。したがって、コードは次のようになります。

vm.onMapOverlayCompleted = function(e){
  console.log(e);
  e.overlay.getPath().getArray().forEach(function (position) {
    console.log('lat', position.lat());
    console.log('lng', position.lng());
  });
}
于 2017-01-04T12:56:59.723 に答える