ngmap - 绘制动态多边形

时间:2015-10-09 08:55:47

标签: javascript angularjs google-maps google-maps-api-3

我在使用ngmap绘制动态多边形时遇到问题。基本上我有一个点击事件的地图如下

<map center="<% latitude %>, <% longitude %>" zoom="2" on-click="placeMarker()">

和“placeMarker”方法在我的控制器内。现在,以下代码将正确地将标记放置在地图上,并在放置第4个标记时将其转换为多边形...

$scope.placeMarker = function(e) 
{
    var marker = new google.maps.Marker({position: e.latLng, map: $scope.map});

    $scope.coordinates.push( [Number(e.latLng.J),Number(e.latLng.M)] );

    if( $scope.coordinates.length == 4 )
    {
        $scope.createPolygon();
    } 


}

$scope.createPolygon = function()
{
    $scope.GoogleMap.polygons.push( $scope.coordinates );
    $scope.coordinates = [];
}

...但是当我尝试重构代码以在用户点击第一个标记时构建多边形时,他们没有发生任何事情。触发事件监听器,逻辑显示正常但多边形永远不会出现

$scope.placeMarker = function(e) 
{
    var marker = new google.maps.Marker({position: e.latLng, map: $scope.map});
    $scope.coordinates.push( [Number(e.latLng.J),Number(e.latLng.M)] );

    if( $scope.coordinates.length == 1 )
    {
        google.maps.event.addListener(marker, 'click', function () {

            $scope.createPolygon();
        });            
    } 
}

$scope.createPolygon = function()
{
    $scope.GoogleMap.polygons.push( $scope.coordinates );
    $scope.coordinates = [];
}

我确信这可能是我的通用JS知识的限制。这让我很难过。请问有人可以提供建议吗?

0 个答案:

没有答案