# #google-bigquery #gis #apache-superset
Вопрос:
у меня есть набор данных, которые должны быть в строчной последовательности только перед преобразованием в geojson, попытался использовать st_dump для преобразования части кода st_makeline, которая отлично работает, но затем у меня возникла проблема с преобразованием его обратно в geojson, вот код «ограничен для выбора только в этом наборе данных».
select geo from (
SELECT
routeID , json_extract(st_asgeojson(st_makeline(array_agg(st_geogpoint(locs.lon,
locs.lat) order by locs.date))),'$.coordinates' )as geo,
FROM
howardcounty.routebatches
cross join UNNEST(locations) as locs
where locs.date between {{start_date}} and {{end_date}}
group by routeID
order by routeID
limit 100
)where length(geo) -length(replace(geo,"[","")) > 1 2
это ошибка при вставке st_dump
json_extract(st_asgeojson(st_dump(st_makeline(array_agg(st_geogpoint(locs.lon, locs.lat) order by locs.date)))),'$.coordinates' )as geo,
Ответ №1:
ST_Dump
возвращает массив GEOGRAPHY
объектов, в то время ST_AsGeoJson
как преобразует один GEOGRAPHY
объект в строку. Если желаемая форма вывода для каждой строки в многострочном наборе должна находиться в отдельной строке, запрос должен сгладить этот массив с помощью UNNEST
, аналогично тому, как UNNEST
здесь указаны местоположения.
Комментарии:
1. Я использую deck.gl диаграмма путей в надмножестве многострочные строки имеют формат, который не распознан, поэтому мне нужно изменить его на linestring или любой другой метод, который будет работать, включил снимок экрана с результатами приведенного выше запроса, красная стрелка-это многострочная строка, которая вызывает проблему
2. Строки и многострочные строки-это разные типы, невозможно «изменить» многострочную строку на строку. Что вы можете сделать, так это представить многострочную цепочку в виде нескольких строк (см. Мой ответ выше) и нарисовать каждую строку отдельно.
3. Хорошо, я попробовал отменить, но получаю ошибки, не могли бы вы показать мне в коде, как отменить st_dump, а затем преобразовать его в geojson? как я уже говорил, я ограничен только выбором