如何从 GeoJSON 对象中获取特定值

时间:2021-06-04 10:50:36

标签: javascript json geojson

我有以下发布的 GeoJSON 点数组。我希望能够分别访问 GeoJSON 数组中每个值的属性。例如,对于索引 3 的项目,我想得到

"{\"type\":\"Point\",\"coordinates\":6.7368576747845,51.1141914104954]}",

我在下面发布了我的尝试,但它不起作用并返回 undefined。 请让我知道如何分别访问数组的每个元素,以便我可以获取 coordinatestype 的值。

GeoJSON 点数组

[
    "{\"type\":\"Point\",\"coordinates\":[6.73648711211944,51.1144539430392]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73628689838002,51.1141803601161]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73648765865954,51.1141088970156]}",
    "{\"type\":\"Point\",\"coordinates\":[6.7368576747845,51.1141914104954]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73641043458919,51.1141123530415]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73655920234526,51.1144536412875]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73614395402386,51.1142745754592]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73642965248497,51.1141830888474]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73641750225145,51.1144305273589]}",
    "{\"type\":\"Point\",\"coordinates\":[6.73671503777408,51.1141886499952]}"
]

代码

console.log("this.centerPointsAsGeoJSONArray[0].coordinates: ",this.centerPointsAsGeoJSONArray[0].type);

console.log("this.centerPointsAsGeoJSONArray[0].coordinates: ",this.centerPointsAsGeoJSONArray[0]['coordinates']);

console.log("this.centerPointsAsGeoJSONArray[0].coordinates: ",this.centerPointsAsGeoJSONArray[0]["coordinates"]);

1 个答案:

答案 0 :(得分:0)

看起来好像您的 GeoJSON 点是一个字符串数组,而不是一个对象数组。我建议首先将字符串解析为 JSON,使用: JSON.parse(this.centerPointsAsGeoJSONArray[0]) 转换为对象,然后访问所需的属性。

编辑 - 基于@Chris-G 评论,使用 this.centerPointsAsGeoJSONArray.map(JSON.parse) 是一种更优雅的方法,除非需要保留原始数据格式作为对象的字符串。