Страница 1 из 1
Описание геометрии в PostGis
Добавлено: 02 сен 2011, 08:43
dobeer
При загрузке шейпа в БД PostGis, в таблице имеется поле "the_geom" с описанием геометрии. Значение ячеек имеют вид типа: "01030000000100000005000000BDF489CEF8854F41D54253C22E615F41CE202BD33D864F4117856B4C1D615F4196CA5B4034864F410D24DB8F13615F413DBBFD9EEE854F41BCBE0FCE24615F41BDF489CEF8854F41D54253C22E615F41". Объекты имеют тип полигонов. Как имея эту строку с описанием геометрии нарисовать вектором этот самый полигон в OpenLayers?
Re: Описание геометрии в PostGis
Добавлено: 02 сен 2011, 10:06
Mavka
Если есть возможность преобразовать в WKT, то элементарно:
Код: Выделить всё
var layer1 = new OpenLayers.Layer.Vector();
layer1.addFeatures([
new OpenLayers.Feature.Vector(
OpenLayers.Geometry.fromWKT("LINESTRING(0 0, 10 10, 20 20, 30 30)")
)
]);
Формат WKB в OpenLayers отсутствует. Можно попробовать
JSTS Topology Suite, по аналогии с JTS там должен быть WKBReader.
Re: Описание геометрии в PostGis
Добавлено: 02 сен 2011, 12:22
Mavka
Не увидел шапку топика. Раз уж PostGIS то делайте ST_AsText(geometry)
Converting WKB to WKT
Re: Описание геометрии в PostGis
Добавлено: 02 сен 2011, 15:11
dobeer
У меня PostGIS стоит на ПК. Я просто в него загоняю шейпы чтоб вытащить координаты охвата объектов, путем изменения типа с geometry на box2d. Но сейчас потребовалось рисовать на карте вектор по объекту. По ссылкам непонял что к чему))) Мнеб просто взять строку (или все сразу) и переконвертировать в WKT, можно и на ПК не обязательно на сайте скриптами.
Re: Описание геометрии в PostGis
Добавлено: 02 сен 2011, 15:52
Mavka
Так устроит?
Код: Выделить всё
SELECT ST_AsText(the_geom) as geometry FROM mytable
Или написать php-скрипт который делает запрос в БД и возвращает WKT?
Можно и локально с помощью ogr2ogr:
Код: Выделить всё
ogr2ogr.exe ^
-f "GeoJSON" output.json ^
PG:"host='localhost' port='5432' dbname='postgis' user='x' password='y'" mytable
Дальше см. "
OpenLayers: создание векторного слоя из локального файл"