如何在ngx-leaflet-draw中获取多边形的位置坐标?
How get the location coordinates of polygon in ngx-leaflet-draw?
我为我的 angular6 集成了 ngx-leaflet-draw project.I 可以在 map.But 上绘制多边形 我不知道如何获取多边形位置 coordinates.I 想显示多边形内的用户通过执行数据库 search.I 浏览了官方文档,但对我没有帮助。
我的app.component.ts文件如下
import { Component } from '@angular/core';
import {tileLayer,latLng, marker, Marker} from 'leaflet';
import * as L from 'leaflet';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'map';
options = {
layers: [
tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png')
],
zoom: 15,
center: latLng(8.524139,76.936638)
};
drawOptions = {
position: 'topright',
draw: {
marker: {
icon: L.icon({
iconSize: [ 25, 41 ],
iconAnchor: [ 13, 41 ],
iconUrl: '../../assets/marker-icon.png',
shadowUrl: '../../assets/marker-shadow.png'
})
},
polyline: false,
circle: {
shapeOptions: {
color: '#aaaaaa'
}
}
}
};
ngOnInit(){
}
sample(e) {
console.log(e);
}
}
我的 app.component.html 文件为:
<div leaflet style="height: 400px;"
leafletDraw
[leafletOptions]="options"
[leafletDrawOptions]="drawOptions"
(leafletDrawReady)="sample($event)"
>
</div>
第一次使用传单地图
请帮我找到解决办法。
您需要监听 onMapReady 事件,获取对地图的引用并执行您在普通 Leaflet 库中执行的操作:
模板:
<div leaflet style="height: 400px;"
leafletDraw
[leafletOptions]="options"
[leafletDrawOptions]="drawOptions"
(leafletMapReady)="onMapReady($event)">
</div>
组件:
onMapReady(map: Map) {
map.on(L.Draw.Event.CREATED, function (e) {
// const type = (e as L.DrawEvents.Created).layerType,
// layer = (e as L.DrawEvents.Created).layer;
const type = (e as any).layerType,
layer = (e as any).layer
if (type === 'polygon') {
// here you got the polygon coordinates
const polygonCoordinates = layer._latlngs;
console.log(polygonCoordinates);
}
});
}
我为我的 angular6 集成了 ngx-leaflet-draw project.I 可以在 map.But 上绘制多边形 我不知道如何获取多边形位置 coordinates.I 想显示多边形内的用户通过执行数据库 search.I 浏览了官方文档,但对我没有帮助。
我的app.component.ts文件如下
import { Component } from '@angular/core';
import {tileLayer,latLng, marker, Marker} from 'leaflet';
import * as L from 'leaflet';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'map';
options = {
layers: [
tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png')
],
zoom: 15,
center: latLng(8.524139,76.936638)
};
drawOptions = {
position: 'topright',
draw: {
marker: {
icon: L.icon({
iconSize: [ 25, 41 ],
iconAnchor: [ 13, 41 ],
iconUrl: '../../assets/marker-icon.png',
shadowUrl: '../../assets/marker-shadow.png'
})
},
polyline: false,
circle: {
shapeOptions: {
color: '#aaaaaa'
}
}
}
};
ngOnInit(){
}
sample(e) {
console.log(e);
}
}
我的 app.component.html 文件为:
<div leaflet style="height: 400px;"
leafletDraw
[leafletOptions]="options"
[leafletDrawOptions]="drawOptions"
(leafletDrawReady)="sample($event)"
>
</div>
第一次使用传单地图
请帮我找到解决办法。
您需要监听 onMapReady 事件,获取对地图的引用并执行您在普通 Leaflet 库中执行的操作:
模板:
<div leaflet style="height: 400px;"
leafletDraw
[leafletOptions]="options"
[leafletDrawOptions]="drawOptions"
(leafletMapReady)="onMapReady($event)">
</div>
组件:
onMapReady(map: Map) {
map.on(L.Draw.Event.CREATED, function (e) {
// const type = (e as L.DrawEvents.Created).layerType,
// layer = (e as L.DrawEvents.Created).layer;
const type = (e as any).layerType,
layer = (e as any).layer
if (type === 'polygon') {
// here you got the polygon coordinates
const polygonCoordinates = layer._latlngs;
console.log(polygonCoordinates);
}
});
}