2017-03-16 120 views
4

如何从Google地图中使用绘图管理器移除绘制的圆形或多边形。如何使用绘图管理器从谷歌地图中删除绘制的圆形或多边形 - ng2-map

组件:

import {Ng2MapComponent, DrawingManager, Polygon} from 'ng2-map'; 

export class CreateAlertComponent implements OnInit { 
    @ViewChild(Ng2MapComponent) mapObj: Ng2MapComponent; 
    @ViewChild(DrawingManager) drawingManager: DrawingManager; 

    polygonCompleteFunction(e) { 
     console.log(this.mapObj); 
    }; 

}); 

HTML:

<ng2-map [zoom]="mapOptions.zoom" [minZoom]="mapOptions.minZoom" [center]="mapOptions.center" clickable="false" (click)="mapClick($event)"> 
        <drawing-manager *ngIf = "selectedJurisdictions.length > 0" 
         [drawingMode]="'null'" 
         [drawingControl]="true" 
         [drawingControlOptions]="{ 
         position: 2, 
         drawingModes: ['circle', 'polygon'] 
         }" 
         [circleOptions]="{ 
         fillColor: 'red', 
         fillOpacity: 0.3, 
         strokeColor: 'black', 
         strokeWeight: 2, 
         editable: true, 
         draggable: true, 
         zIndex: 1 
         }" 
         [polygonOptions]="{ 
         fillColor: 'red', 
         fillOpacity: 0.3, 
         strokeColor: 'black', 
         strokeWeight: 2, 
         editable: true, 
         draggable: true, 
         zIndex: 1 
         }" 
         (polygoncomplete)="polygonCompleteFunction($event)" 
         (circlecomplete)="circleCompleteFunction($event)"> 
        </drawing-manager> 
</ng2-map> 

但在多边形功能齐全或圆形完整,我无法从地图对象

+0

请参阅此链接,它肯定会帮助你。 [点击](http://stackoverflow.com/a/12006751/5725745) – 2017-03-27 06:15:33

+0

请参阅此链接,它一定会帮助你。 [点击这里](http://stackoverflow.com/a/12006751/5725745) – 2017-03-27 06:16:48

回答

1

你得到绘制的多边形可以从CircleComplete/中找到绘制的多边形或圆形事件的参数。或者通过event.overlay从OverlayComplete事件的参数中找到目标。 获取目标对象后,您可以将它保留在某处以将其删除。

polygonCompleteFunction(e) { 
    console.log(e); // this is the drawn Polygon you are looking for, and same for the circleComplete event 
}; 

overlayComplete(e) { 
    console.log(e.overlay); // here can also find the drawn shape(Polygon/Circle/Polyline/Rectangle) 
} 

虽然删除目标多边形或圆形,参照实例之前一直将其删除。

target.setMap(null); 

这里是关于OverlayComplete活动GooleMapApi文档:

google.maps.event.addListener(DrawingManager会, 'circlecomplete',函数(圆形) { 变种半径= circle.getRadius( ); });

google.maps.event.addListener(DrawingManager会, 'overlaycomplete',功能(事件) { 如果(event.type == '圆'){ VAR半径= event.overlay.getRadius(); } });

以下是GoogleMapApi文档中的link

希望它有帮助。这里是你可以参考的plunker

+0

它的工作.... :) –