我有一系列的轮廓和要点。对于大纲,调用outline.geometry.coordinates
会生成一个多维坐标数组:
[[[-72.68639118392117,41.66733032827929],[-72.68630366033922,41.667449647115724], ...]]
对于一个点,调用point.geometry.coordinates
产生一个一维坐标数组:
[-72.78630766033722,41.767349642115724]
点和轮廓线都保存在一个数组中。我最终希望最终得到所有坐标对的数组,例如:
[[[-72.68639118392117,41.66733032827929],[-72.68630366033922,41.667449647115724],[-72.78630766033722,41.767349642115724], ...]]
我尝试过的
首先,我尝试获取所有坐标,geometries
轮廓和点的数组在哪里:
var coordinates = geometries.map(function(outline) {return outline.geometry.coordinates});
毫不奇怪,这将创建以下数组:
[[[[-72.68639118392117,41.66733032827929],[-72.68630366033922,41.667449647115724], ...]], [-72.78630766033722,41.767349642115724]]
展平此数组将导致配对的坐标对丢失,因此我不确定如何进行此操作。有任何想法吗?
这个怎么样?
var geometries = [
// point
{
geometry: {
coordinates: [1, 2],
},
},
// outline
{
geometry: {
coordinates: [
[
[3, 4],
[5, 6],
],
],
},
},
];
var coordinates = geometries.map(function(outline) {
var coords = outline.geometry.coordinates;
if (typeof coords[0] === 'number') {
return [coords];
} else {
return coords[0];
}
}).reduce(function (prev, next) {
return prev.concat(next);
}, []);
console.log(coordinates);
// Output:
// [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句