如何从坐标列表中获取 'edge' 点(最远的边缘坐标)
How can I get 'edge' points (furthest edge coordinates) from a list of coordinates
我是 mapbox 的新手,在使用地图方面经验不足,我正在尝试从我拥有的坐标列表中绘制多边形。到目前为止,这是我的代码;
const accessToken = <myTokenHere>;
const center = [36.813288, -1.2813976];
const mycords = [
[36.88888, -1.3008283333333335 ],
[ 36.88977666666666,-1.30097 ],
[36.88977666666666, -1.30097],
[36.88977666666666, -1.30097 ],
//...
];
mapboxgl.accessToken = accessToken;
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v9',
center,
zoom: 7
});
map.on('load', () => {
map.addLayer({
'id': 'vendors',
'type': 'fill',
'source': {
'type': 'geojson',
'data': {
'type': 'Feature',
'geometry': {
'type': 'Polygon',
'coordinates': [mycords]
}
}
},
'layout': {},
'paint': {
'fill-color': '#181A4A',
'fill-opacity': 0.6
}
});
});
上面的代码绘制了一个多边形,如下图所示。
我的意图是根据我的坐标绘制如下所示的多边形;
我想我需要获取 "edges" 以便我能够将这些坐标传递给图层。我的问题是如何实现这一目标?我检查了 mapboxes API documentation 但我还没有设法找到执行此操作的方法。
按照设计,Mapbox GL 不提供很多数据处理工具。为此,我们建议使用 Turf。我很难准确地说出您拥有什么以及您正在尝试做什么,但看起来您可能正在寻找以下方法之一:
我是 mapbox 的新手,在使用地图方面经验不足,我正在尝试从我拥有的坐标列表中绘制多边形。到目前为止,这是我的代码;
const accessToken = <myTokenHere>;
const center = [36.813288, -1.2813976];
const mycords = [
[36.88888, -1.3008283333333335 ],
[ 36.88977666666666,-1.30097 ],
[36.88977666666666, -1.30097],
[36.88977666666666, -1.30097 ],
//...
];
mapboxgl.accessToken = accessToken;
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v9',
center,
zoom: 7
});
map.on('load', () => {
map.addLayer({
'id': 'vendors',
'type': 'fill',
'source': {
'type': 'geojson',
'data': {
'type': 'Feature',
'geometry': {
'type': 'Polygon',
'coordinates': [mycords]
}
}
},
'layout': {},
'paint': {
'fill-color': '#181A4A',
'fill-opacity': 0.6
}
});
});
上面的代码绘制了一个多边形,如下图所示。
我的意图是根据我的坐标绘制如下所示的多边形;
我想我需要获取 "edges" 以便我能够将这些坐标传递给图层。我的问题是如何实现这一目标?我检查了 mapboxes API documentation 但我还没有设法找到执行此操作的方法。
按照设计,Mapbox GL 不提供很多数据处理工具。为此,我们建议使用 Turf。我很难准确地说出您拥有什么以及您正在尝试做什么,但看起来您可能正在寻找以下方法之一: