2016-06-28 58 views
0

我想讓我的應用程序中的用戶定義一個「領域」(作爲一個多邊形)。然後其他人可以查詢一個點(經緯度和長度),以確定哪個點屬於哪個區域。我已經從GeoAlchemy2的文檔中確定,這可能是該工作的一個好工具(我的應用程序正在開發中,所以我接受其他建議,我正在使用flask,flask-sqlalchemy和Sqlite在開發者平臺上安裝Postgres,AngularJS for frontend)。ng-map圖形管理器到GeoAlchemy

我的搜索引導我到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」多邊形?

+0

請讓你知道這個錯誤? Uncaught TypeError:無法讀取未定義的屬性'onMapOverlayCompleted' –

回答

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()); 
    }); 
} 
+0

請讓您知道這個錯誤? Uncaught TypeError:無法讀取未定義的屬性'onMapOverlayCompleted' –

+0

@Llg您是否將我的函數與GMarsh的代碼一起使用?你必須象他那樣定義'vm'變量:'var vm = this;'。 –