Как получить поле из GeoJSON, используя Javascript - PullRequest
0 голосов
/ 26 марта 2019

Я получаю следующий GeoJSON с моего сервера:

[{ "st_asgeojson": "{\" типа \ ": \" Точка \ "\ "координаты \": [- 180081.82,5279725.36]}"}]

Как я могу получить поле координат? Я храню GeoJSON в переменной geovar

Я пробовал с geovar["st_asgeojson"].coordinates, geovar[0]["st_asgeojson"].coordinates, geovar[0]["st_asgeojson"]["coordinates"], но они, похоже, не определены.

Есть идеи? Я знаю, что это довольно просто, но я застрял с этим. Спасибо.

Ответы [ 3 ]

0 голосов
/ 26 марта 2019

Значение "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)
0 голосов
/ 26 марта 2019

Хорошо, я наконец-то решил так:

[{ "st_asgeojson": "{\" типа \ ": \" Точка \ "\ "координаты \": [- 180081.82,5279725.36]}"}]

- это JSON с GeoJSON внутри. Перед разбором GeoJSON мне пришлось получить строку GeoJSON из уже проанализированного JSON. Единственными необходимыми инструкциями были:

var obj = JSON.parse(geovar[0]["st_asgeojson"]);
var coordinates = obj.coordinates;
0 голосов
/ 26 марта 2019

Что вы получаете от своего сервера, который является данными JSON String. Если вы хотите проанализировать, то сначала создайте JSON с помощью функции JSON.stringify (). Надеюсь, что это решит вашу проблему. После этого вы можете легко анализировать данные по своему усмотрению.

...