mb_metadata

Hallo Liste,

leider habe ich immer noch das Problem das ich kein WMS in Mapbender laden kann. Ich nutze Mapbender 2.7.2 und postgre 8.4.11 mit postgis 2.0 sowie geoserver . Möchte ich ein WMS in Mapbender laden, erhalte ich als Antwort file:meine getCapabilities anfrage.
In der mapbender errorlog steht:
2012.06.12, 10:43:46,ERROR: Error while executing prepared statement in /var/www/mapbender/http/javascripts/map.php: Sql: SELECT metadata_id, link, linktype, md_format FROM mb_metadata INNER JOIN (SELECT * from ows_relation_metadata WHERE fkey_layer_id = $1) as relation ON mb_metadata.metadata_id = relation.fkey_metadata_id AND mb_metadata.origin = ‘capabilities’, Error: FEHLER: unbenannte vorbereitete Anweisung existiert nicht
2012.06.12, 10:43:46,ERROR: Error while preparing statement in /var/www/mapbender/http/javascripts/map.php: Sql: SELECT metadata_id, link, linktype, md_format FROM mb_metadata INNER JOIN (SELECT * from ows_relation_metadata WHERE fkey_layer_id = $1) as relation ON mb_metadata.metadata_id = relation.fkey_metadata_id AND mb_metadata.origin = ‘capabilities’, Error: FEHLER: Relation »mb_metadata« existiert nicht
ZEILE 1: …ELECT metadata_id, link, linktype, md_format FROM mb_metadat…

In der geoserver error log steht:
192.168.2.113 - - [12/Jun/2012:08:42:59 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:08:49:20 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:08:58:44 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:08:59:17 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:08:59:50 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:00:22 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:00:54 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:01:26 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:01:58 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:02:31 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:03:04 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:03:37 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
192.168.2.113 - - [12/Jun/2012:09:04:10 +0000] “GET /geoserver/nurc/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 HTTP/1.0” 200 149844
Aufgrund der error log vom mapbender denke ich das ich eine mb_metadata tabelle in der mapbenderdatenbank benötige. Hierfür hab ich auch schon einen befehl gefunden:
CREATE TABLE mb_metadata
(
metadata_id serial NOT NULL, --mapbender
uuid character varying(100), --mapbender/orig
origin character varying(100), --mapbender - capabilities, metador, external
includeincaps BOOLEAN DEFAULT TRUE, --mapbender include this metadataUrl in new capabilities
“schema” character varying(32), --mapbender/orig/ see geonetwork - maybe iso19139
createdate timestamp, --metadata
changedate timestamp, --metadata
lastchanged timestamp NOT NULL DEFAULT now(), --mapbender
data text, --metadata
link character varying(250), --link from capabilities/registry/metador
linktype character varying(100), – from ows caps - metadataUrl type attribute
md_format character varying(100), – from ows caps - metadataUrl format tag
title character varying(250), --metadata
abstract text, --metadata
searchtext text, --concatenate search strings
status character varying(50), --metadator
“type” character varying(50), --from iso19115 - service/dataset/application …
harvestresult integer, --when getting information from caps
harvestexception text, --if mimetype from link result is not the expected format
tmp_reference_1 timestamp, --metadata
tmp_reference_2 timestamp, --metadata
spatial_res_type integer, --metadata
spatial_res_value character varying(20), --metadata
ref_system character varying(20), --metadata
format character varying(100), --metadata
inspire_charset character varying(10), --metadata
inspire_top_consistence boolean, --metadata
fkey_mb_user_id integer NOT NULL DEFAULT 1, – from metador
responsible_party integer, --what is this? --fkey_mb_group_id will be better
individual_name integer, --what is this?
visibility character varying(12), --from metador
locked boolean DEFAULT false, --from metador
copyof character varying(100),–from metador
– fkey_metadata_id integer,
– fkey_layer_id integer,
– fkey_featuretype_id integer,
– mb_user_mb_group integer,
– mb_user_mb_group_type integer,
“constraints” text, --metadata/metador?
fees character varying(2500), --metadata/metador?
classification character varying(100), --metadata/metador?
browse_graphic character varying(255), --metadata/metador?
inspire_conformance boolean, --metadata/metador?
preview_image text, --metadata/metador?
the_geom geometry, --metador
CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = ‘MULTIPOLYGON’::text OR the_geom IS NULL),
CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4326),
CONSTRAINT metadata_pkey PRIMARY KEY (metadata_id)
– CONSTRAINT metadata_uuid_key UNIQUE (uuid) – not used cause this could happen!
);
ALTER TABLE mb_metadata OWNER TO postgres;


– Table: ows_relation_metadata

– DROP TABLE ows_relation_metadata;

CREATE TABLE ows_relation_metadata
(
fkey_metadata_id integer NOT NULL,
fkey_layer_id integer,
fkey_featuretype_id integer,
CONSTRAINT ows_relation_metadata_fkey_featuretype_id_fkey FOREIGN KEY (fkey_featuretype_id)
REFERENCES wfs_featuretype (featuretype_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT ows_relation_metadata_fkey_layer_id_fkey FOREIGN KEY (fkey_layer_id)
REFERENCES layer (layer_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT ows_relation_metadata_fkey_metadata_id_fkey FOREIGN KEY (fkey_metadata_id)
REFERENCES mb_metadata (metadata_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
);
ALTER TABLE ows_relation_metadata OWNER TO postgres;



CREATE OR REPLACE FUNCTION update_lastchanged_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.lastchanged = now();
RETURN NEW;
END;
$$ language ‘plpgsql’;

CREATE TRIGGER update_mb_metadata_lastchanged BEFORE UPDATE
ON mb_metadata FOR EACH ROW EXECUTE PROCEDURE
update_lastchanged_column();


Wenn ich diesen SQL Befehl eingebe erscheint folgendes:
SQL-Fehler:

FEHLER: Funktion ndims(geometry) existiert nicht
HINT: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
Weiß damit jemand etwas anzufangen? Meine mapbender Datenbank hat insgesammt 15 Mb, stimmt die göße (habe nur die postgis erweiterung drin)?
Leider komme ich nicht weiter und wäre über jede Hilfe dankbar (auch über eine richtig gute/vollständige Installationsanweisung für ein WebGIS).

Die Funktion ndims heißt jetzt st_ndims. Das wurde im Laufe der Zeit an die SQL-Standards angepasst und bei PostGIS 2.0 sind wohl einige alte Funkionen rausgeflogen. Du kannst das SQL der st_ndims Funktion nehmen und mit dem geänderten Namen ausführen. Oder du passt das SQL entsprechend an.

Gruß Uwe