[英]How to get paths of polygon when DragEnd in Sebm Google Maps? Angular 2
每当我在编辑时尝试获取新的多边形,无论是通过dragend还是click,我总是得到变量的初始路径。
我初始化我的路径变量:
paths: Array<LatLngLiteral> = [{lat: -12.052224, lng: -77.050342}, {lat: -12.064306, lng: -77.031790}, {lat: -12.075951, lng: -77.054554}, {lat: -12.063236, lng: -77.072506}, {lat: -12.052224, lng: -77.050342}];
无论我做什么,都不要更新路径变量。
我失败了什么? 为什么我无法获得具有相应路径的最终多边形并始终获得初始? 或者获取新多边形的正确方法是什么?
这是我的组成部分:
<sebm-google-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">
<sebm-map-polygon [paths]="paths" [editable]="true" [polyDraggable]="true" [strokeColor]="'#c60331'" (polyDragEnd)="onDragEnd($event, paths)">
</sebm-map-polygon>
</sebm-google-map>
迟到但我认为像我这样的人可能会得到一些帮助,所以添加答案。
当前版本不支持它,因此您需要对当前node_module进行一些更改。 看到这个网址:
https://github.com/SebastianM/angular-google-maps/pull/991
willshowell解释了需要做什么。
脚步:
对节点模块进行更改后,可以在PolyGon的鼠标注册事件中使用以下代码: @ViewChildren(AgmPolygon) polygonData: QueryList<AgmPolygon>; polyMouseUp($event: any, index:number, polygon: any) { var i =0; this.polygonData.forEach( x =>{ if(i==index){ x.getPath().then((y: any[]) => { console.log('-'); y.forEach(z => console.log(z.lat(), z.lng())); }); } i++; } ); }
@ViewChildren(AgmPolygon) polygonData: QueryList<AgmPolygon>; polyMouseUp($event: any, index:number, polygon: any) { var i =0; this.polygonData.forEach( x =>{ if(i==index){ x.getPath().then((y: any[]) => { console.log('-'); y.forEach(z => console.log(z.lat(), z.lng())); }); } i++; } ); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.