Руководство пользователя для разработчиков

Руководство пользователя для разработчиков

Обработка геопространственных данных

Обработка геопространственных данных через SQL API легка. По умолчанию the_geom возвращается прямо из базы данных в формате, называемом Well-Known Binary. Существует несколько способов преобразования ваших геометрий в более полезные форматы.

Первый способ - использовать метод format=GeoJSON, описанный выше. Другие можно обработать непосредственно с помощью SQL-запросов. Например, заключение the_geom в функцию, называемую ST_AsGeoJSON, позволит использовать JSON для ваших данных, но строку GeoJSON только для столбца геометрии. В качестве альтернативы, использование функции ST_AsText вернет вашу геометрию в виде Well-Known Text.

ST_AsGeoJSON
Вызов
https://maps.epsilonmetrics.ru/user/{user}/api/v2/sql?q=SELECT cartodb_id,ST_AsGeoJSON(the_geom) as the_geom FROM {table_name} LIMIT 1
Результат
{
  time: 0.003,
  total_rows: 1,
  rows: [
    {
      cartodb_id: 1,
      the_geom: "{"type":"Point","coordinates":[-97.3349,35.4979]}"
    }
  ]
}
ST_AsText
Вызов
https://maps.epsilonmetrics.ru/user/{user}/api/v2/sql?q=SELECT cartodb_id,ST_AsText(the_geom) FROM {table_name} LIMIT 1
Результат
{
  time: 0.003,
  total_rows: 1,
  rows: [
    {
      cartodb_id: 1,
      the_geom: "POINT(-74.0004162 40.6920918)",
    }
  ]
}

В библиотеке PostGIS существуют более продвинутые методы для извлечения значимых данных из вашей геометрии. Изучите документацию PostGIS и ознакомьтесь с такими функциями, как ST_XMin, ST_XMax, ST_AsText и так далее.

Все данные, возвращаемые из столбца the_geom, находятся в WGS 84 (EPSG:4326). Вы можете быстро изменить это на лету с помощью SQL. Например, если вы предпочитаете геометрии, использующие проекцию Hanoi 1972 (EPSG:4147), используйте ST_Transform.

ST_Transform
https://maps.epsilonmetrics.ru/user/{user}/api/v2/sql?q=SELECT ST_Transform(the_geom,4147) FROM {table_name} LIMIT 1

Epsilon Metrics также хранит второй столбец геометрии, the_geom_webmercator. Мы используем его внутренне для создания ваших картографических тайлов максимально быстро. В пользовательском интерфейсе он скрыт, но виден и доступен для использования. В этом столбце мы храним перепроецированную версию всех ваших геометрий с использованием Web Mercator (EPSG:3857).