PostGIS+Mapserver: не могу соединить точки ST_MakeLine
Добавлено: 06 дек 2011, 11:08
Подскажите:
Дано: таблица в PostgreSQL, в ней поля gid, id, the_geom (point) ... записей в таблице около 200 000
Задача: вывести два слоя, в одном просто точки, во втором соединить точки в линию
Первый слой для вывода точек прекрасно работает вот он:
А вот второй слой в котором я пытаюсь соединить точки в линию, упорно выводит ошибки в запросе:
Ошибка :
Самое интересно, что если выполнить этот запрос в менеджере БД то он что то даже выводит (если только убрать "USING UNIQUE gid" а то на эту запись ругаеться)

Дано: таблица в PostgreSQL, в ней поля gid, id, the_geom (point) ... записей в таблице около 200 000
Задача: вывести два слоя, в одном просто точки, во втором соединить точки в линию
Первый слой для вывода точек прекрасно работает вот он:
Код: Выделить всё
LAYER
NAME "veget"
CONNECTIONTYPE postgis
CONNECTION "user=postgres password= dbname=postgres host=localhost"
PROCESSING "CLOSE_CONNECTION=DEFER"
DATA 'the_geom FROM ( SELECT the_geom, speed, gid, satelites FROM track) AS geom using unique gid using srid=4326'
FILTER "satelites>3"
STATUS ON
TYPE POINT
CLASS
NAME "Bad"
EXPRESSION ([speed]>32)
STYLE
SYMBOL "circlef"
COLOR 255 0 0
SIZE 4
GAP 1
END
END
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "world"
wms_abstract "world test"
wms_srs "epsg:4326"
wms_include_items "all"
END
END
Код: Выделить всё
LAYER
NAME "veget2"
CONNECTIONTYPE postgis
CONNECTION "user=postgres password= dbname=postgres host=localhost"
PROCESSING "CLOSE_CONNECTION=DEFER"
DATA 'ST_MakeLine(the_geom) AS the_geoms, id FROM (SELECT the_geom, id, gid FROM track ) AS the_geoms2 USING UNIQUE gid GROUP BY id;'
STATUS ON
TYPE LINE
CLASS
NAME "Rast"
STYLE
SYMBOL "circlef"
COLOR 50 205 50
SIZE 4
GAP 1
END
END
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "world"
wms_abstract "world test"
wms_srs "epsg:4326"
wms_include_items "all"
END
END
Код: Выделить всё
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd">
<ServiceExceptionReport version="1.1.1">
<ServiceException>
msDrawMap(): Image handling error. Failed to draw layer named 'veget2'.
msPostGISLayerWhichShapes(): Query error. Error (ERROR: syntax error at or near "AS"
LINE 1: ...ROM track ) the_geoms where ST_MakeLine(the_geom) AS the_geo...
^
) executing query: select encode(AsBinary(force_collection(force_2d("ST_MakeLine(the_geom) AS the_geom, id")),'NDR'),'hex') as geom,"gid" from (SELECT the_geom, id, gid FROM track ) the_geoms where ST_MakeLine(the_geom) AS the_geom, id && GeomFromText('POLYGON((31.9921875 49.3823727870096,31.9921875 49.6107099380742,32.34375 49.6107099380742,32.34375 49.3823727870096,31.9921875 49.3823727870096))',find_srid('','track','ST_MakeLine(the_geom) AS the_geom, id'))
</ServiceException>
</ServiceExceptionReport>
