PostGIS
PostGIS добавляет в Postgres типы geometry и geography, операторы для пространственных запросов, индексы. ide99 рендерит геометрию на карте, помогает с SRID и проекциями.
Активация
CREATE EXTENSION postgis;
После этого ide99 распознаёт geometry/geography-колонки и подключает Power Pack.
Что показывает
В Schema Browser у таблиц с геометрией появляется:
- Map View — таб с реальной картой
- SRID converter — UI для смены проекции
- Drawing tools — нарисовать геометрию мышкой и получить WKT
Map View
Открывается в новой вкладке: правый клик на geometry-колонку → Open in map.
Слева — карта (Leaflet с OpenStreetMap-тайлами по умолчанию). Справа — таблица строк. Hover на точку — подсветит соответствующую строку, и наоборот.
Поддерживаемые типы
- Point — маркер
- LineString — линия
- Polygon — область с заливкой
- MultiPoint, MultiLineString, MultiPolygon — то же, нескольких объектов
- GeometryCollection — смешанные коллекции
Геометрии в проекции отличной от WGS84 (SRID=4326) ide99 преобразует на лету через ST_Transform. Для производительности на больших слоях используйте ST_AsGeoJSON(ST_Transform(geom, 4326)) в самом запросе.
Стили
- Color by column — раскрасить точки/области по значению другой колонки (numeric или enum)
- Size by column — размер маркера по числовой колонке
- Cluster — группировать близкие маркеры в кластеры (для тысяч точек)
Bounds и navigation
- Pan / zoom — обычные карта-жесты
- Кнопка Fit to data — подогнать viewport под все точки в результате
- Кнопка Lock to bounds — после Fit зафиксировать рамки, не сдвигать при перерисовке
SRID converter
Postgres хранит геометрии в конкретной проекции (SRID). Самые частые:
| SRID |
Что |
| 4326 |
WGS84 (lat/lon в градусах) — для GPS |
| 3857 |
Web Mercator — для веб-карт (Google Maps, OpenStreetMap) |
| 2154 |
Lambert-93 — для Франции |
| 3035 |
LAEA Europe — для Eurostat |
| 104001 |
EPSG-внутренние |
В таблице ваши данные могут быть в любой проекции. Чтобы конвертировать:
Правый клик на колонку → Convert SRID:
На больших таблицах операция дорогая — ide99 предупредит.
Drawing tools
В Map View — панель инструментов слева:
- Point — кликнуть на карту, получить
POINT(lon lat) в WKT
- Line — кликнуть несколько точек, замкнуть double-click →
LINESTRING(...)
- Polygon — то же, для замкнутой области
- Rectangle — drag, получит
POLYGON(...) прямоугольника
После создания геометрии — кнопка Copy as WKT копирует в буфер. Можно использовать прямо в SQL:
SELECT * FROM places
WHERE ST_Within(
geom,
ST_GeomFromText('POLYGON((37.5 55.6, 37.7 55.6, 37.7 55.8, 37.5 55.8, 37.5 55.6))', 4326)
);
Spatial indexes
Без индекса ST_Within, ST_DWithin, ST_Intersects — Seq Scan. С GIST-индексом — быстро:
CREATE INDEX idx_places_geom
ON places USING gist (geom);
В Health screen → секция Foreign keys без индекса появятся пространственные колонки, которые используются в запросах без индекса.
Совет: типичный workflow
- Загрузить данные с координатами (CSV → COPY → таблица с
lon, lat).
- Добавить geometry-колонку:
ALTER TABLE places ADD COLUMN geom geometry(Point, 4326);
UPDATE places SET geom = ST_MakePoint(lon, lat);
CREATE INDEX idx_places_geom ON places USING gist (geom);
- Открыть Map View — увидеть точки на карте.
- Использовать Drawing → Rectangle для bbox-фильтра.
Что дальше