将绘图管理器映射到GeoAlchemy



我试图让用户在我的应用程序上定义一个"领土"(作为一个多边形)。然后其他人可以查询一个点(长点和长点),以确定该点落在谁的领土上。我已经从GeoAlchemy2的文档中确定,这可能是一个很好的工具(我的应用程序目前正在开发中,所以我愿意接受其他建议)。我在开发中使用flask, flask-sqlalchemy和Sqlite…Postgres计划在prod. AngularJS的前端)。

我的搜索引导我到ng-map,特别是这里看到的绘图管理器指令。https://ngmap.github.io//! drawing-manager.html。在修改示例时,我可以得到google onMapOverlayCompleted对象。在那里,我看到一个延迟对象,但不确定如何将其转换为我可以在数据库中持久化的东西。假设我在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'得到多边形?

关于如何获得点数组,您可以查看此答案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());
  });
}

最新更新