0

我试图让我的应用程序上的用户定义一个“领土”(作为一个多边形)。然后其他人可以查询一个点(经纬度),以确定该点落入谁的领土。我从 GeoAlchemy2 的文档中确定,这可能是这项工作的好工具(我的应用程序目前在开发中,所以我对其他建议持开放态度。我在开发中使用烧瓶、flask-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 回答