繁体   English   中英

如何在Sebm谷歌地图中的DragEnd中获取多边形的路径? Angular 2

[英]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解释了需要做什么。

脚步:

  1. 将sebm更新为agm(截至目前的当前版本)
  2. 其次,将角度更新为至少2.3,因为它不适用于2.0。
  3. 在上面的链接中,他已将各种文件提交给分支。 他已经完成了什么,已经在这个问题中解释过了。
  4. 简短说明:他已将Array更改为MVCArray,因此您可以获得谷歌用于其地图路径的确切数据类型,添加了getPath()和getPaths()函数。 我为Polygons做了同样的事情,你可以在这里下载这些文件,看看我需要改变什么才能获得新的多边形路径, 以便在@agm模块中更改文件的 DragEnd Dropbox链接

对节点模块进行更改后,可以在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM