我有以下代码:
function addData() {
var arrayData = [];
if (response != null) {
for (i = 0; i < response.results.features.length; i++) {
arrayData.push(response.results.features[i]);
}
}
return arrayData;
}
var arrayDataOP = addData();
function splitLines(arrayDataOP) {
var arrayPOINTjson = [];
for (var i = 0; i < arrayDataOP.length; i++) {
console.log(arrayData[i].geometry);
if (arrayDataOP[i].geometry.type == "LineString") {
for (key in arrayDataOP[i].geometry.coordinates.length) {
arrayPOINTjson.push({
"type": "Feature",
"properties": {
"wheelchair": "yes",
},
"geometry": {
"type": "Point",
"coordinates": arrayData[i].geometry.coordinates[key]
}
});
}
}
}
console.log(arrayPOINTjson);
return arrayPOINTjson;
}
addData();
splitLines(arrayDataOP);
它会引发错误:
Uncaught TypeError: Cannot read property 'geometry' of undefined
我不知道为什么如果我console.log(arrayData[i].geometry);
然后我看到了结果。
但那只是一个错误
我的观点是,我想将我的geoJSON文件中的LineString
拆分为点,如下所示:
{
"type":"Feature",
"properties":{
"wheelchair":"yes",
},
"geometry":{
"type":"Point",
"coordinates":arrayData[i].geometry.coordinates[key]
}
}
我的geoSJON文件示例:
{
"type": "FeatureCollection",
"generator": "JOSM",
"bbox": [
23.4668,
58.9198,
23.6412,
58.974
],
"features": [
{
"type": "Feature",
"properties": {
"wheelchair": "yes",
"smoothness": "intermediate",
"highway": "footway"
},
"geometry": {
"type": "LineString",
"coordinates": [
[],
[
23.5410936,
58.9408252
],
[
23.541092,
58.9408358
],
[
23.5410706,
58.9410896
],
[
23.5410448,
58.9412609
],
[
23.541028,
58.9413309
],
[
23.5409993,
58.9414512
],
[
23.5408984,
58.9416477
],
[
23.5408677,
58.9416962
],
[
23.5407571,
58.9418706
],
[
23.5405886,
58.9421204
],
[
23.5405302,
58.9422071
],
[
23.5403894,
58.9423888
],
[
23.5401636,
58.9426413
],
[
23.5400953,
58.9426593
],
[
23.5399336,
58.9428447
],
[
23.5399287,
58.9428504
],
[
23.5399434,
58.9428895
],
[
23.5394702,
58.9434341
],
[
23.5394296,
58.943468
],
[
23.5389324,
58.9439879
],
[
23.5384256,
58.9445103
],
[
23.5381597,
58.9447992
],
[
23.5377425,
58.9452314
],
[
23.5375449,
58.9454551
]
]
}
},
{
"type": "Feature",
"properties": {
"wheelchair": "yes",
"highway": "footway"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
23.5408677,
58.9416962
],
[
23.541045,
58.9417267
],
[
23.5412157,
58.9417564
]
]
}
}
]
}
但我希望我的代码最终输出是geoJSON对象的数组
所有LineString
都会被拆分为point
。