@beduin01

Я неправильно формирую JSON объект?

var y = 
{
  "type":"Point","coordinates":[31.5,42.2],"bbox":[31.5,42.2,31.5,42.2]
}
L.geoJSON(y).addTo(Window.map);


Данный код работает нормально. Но стоит мне попробовать сделать:

var x = JSON.stringify(geojson);
L.geoJSON(x).addTo(Window.map);


как у меня вылетает ошибка: "Invalid GeoJSON object".
Однако я если вывести в консоль браузера x, то я увижу то же самое содержимое, которое у меня сейчас в переменной y.

выглядит все так: e4c4beb397d64d32ae1198c77aba812d.png

В чем я ошибаюсь?
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
JSON.strinfigy сериализует JavaScript-объект в строку. Например для передачи куда-то.
geoJSON(x) в свою очередь хочет в качестве аргумента получить как раз JavaScript-объект, а не его строковое представление, которое вы ему подсовываете.
Поэтому первый вариант у вас работает, потому что y это не JSON-объект, это JavaScript Object. JSON-объектом он станет только тогда, когда вы его сериализуете через JSON.stringify
Поэтому первый вариант у вас работает - вы скармливаете JS-объект.
А второй не работает - вы зачем-то JS-объект превращаете в строку и скармливаете уже строку, хотя надо сам этот geojson
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы