【问题标题】:How to get field from GeoJSON using Javascript如何使用 Javascript 从 GeoJSON 获取字段
【发布时间】:2019-03-26 08:24:44
【问题描述】:

我从我的服务器获得以下 GeoJSON:

[{"st_asgeojson":"{\"type\":\"Point\",\"coordinates\":[-180081.82,5279725.36]}"}]

如何获取坐标字段?我将 GeoJSON 存储在 geovar 变量中

我尝试使用geovar["st_asgeojson"].coordinatesgeovar[0]["st_asgeojson"].coordinatesgeovar[0]["st_asgeojson"]["coordinates"],但它们似乎未定义。

有什么想法吗?我知道这很简单,但我坚持下去。谢谢。

【问题讨论】:

  • 首先你必须解析 JSON 字符串
  • var 是 javascript 中的保留字,请为变量使用其他名称

标签: javascript json parsing geojson


【解决方案1】:

"st_asgeojson" 的值现在是一个字符串。您需要在访问它之前将其解析为 JSON。使用map循环解析"st_asgeojson"JSON.parse的值

const geovar = [{"st_asgeojson":"{\"type\":\"Point\",\"coordinates\":[-180081.82,5279725.36]}"}]

const rs = geovar.map(e => {
 e["st_asgeojson"] = JSON.parse(e["st_asgeojson"])
 return e
})

console.log(rs[0]["st_asgeojson"]["coordinates"])
console.log(rs)

【讨论】:

    【解决方案2】:

    好的,我终于这样解决了:

    [{"st_asgeojson":"{\"type\":\"Point\",\"coordinates\":[-180081.82,5279725.36]}"}]

    是一个带有 GeoJSON 的 JSON。在解析 GeoJSON 之前,我必须从已解析的 JSON 中获取 GeoJSON 字符串。唯一需要的说明是:

    var obj = JSON.parse(geovar[0]["st_asgeojson"]);
    var coordinates = obj.coordinates;
    

    【讨论】:

      【解决方案3】:

      您从服务器获取的是 JSON 字符串数据。如果您想解析,那么首先使用 JSON.stringify() 函数制作 JSON。希望这能解决您的问题。之后,您可以轻松地根据需要解析数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        • 2012-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-22
        • 1970-01-01
        相关资源
        最近更新 更多