PostgreSQL 数据库似乎不适用于 GeoServer
PostgreSQL database doesn't seem to work with GeoServer
我从网上下载了一个工程,可以让我在地图上画一些多边形、点等,然后保存在PostgreSQL数据库中。您还可以上传 KML 文件以显示已绘制的点、多边形等 - 但效果不佳。
该项目正在使用 PostGis + GeoServer。
问题是,我不知道如何启用其中的数据库来保存坐标。
到目前为止我做了:
1) 安装 PostgreSQL
2)安装PostGis
3)安装地理服务器
4)安装WAMP
5) 创建名为 'parking' 的数据库
6) 在 'parking' 中,我有 运行 SQL 这样的查询:
-- After creating database
CREATE EXTENSION postgis;
-- CREATE SEQUENCE FOR TABLE parking_spaces
CREATE SEQUENCE public.sq_parking_spaces
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
-- TABLE parking_spaces
CREATE TABLE public.parking_spaces
(
id integer NOT NULL DEFAULT nextval('sq_parking_spaces'::regclass),
name character varying(80),
paid boolean,
spaces integer,
geometry geometry(Polygon,3857),
CONSTRAINT parking_spaces_pkey PRIMARY KEY (id)
)
-- CREATE SEQUENCE FOR TABLE parking_meters
CREATE SEQUENCE public.sq_parking_meters
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
-- TABLE parking_meter
CREATE TABLE public.parking_meters
(
id integer NOT NULL DEFAULT nextval('sq_parking_meters'::regclass),
name character varying(80),
geometry geometry(Point,3857),
CONSTRAINT parking_meters_pkey PRIMARY KEY (id)
)
我的下一个目标应该是什么?如何使用 PgAdmin 检查表格?
编辑:
问题是如何将 PostgreSQL 数据库正确连接到 GeoServer?以及如何赋予 GeoServer 对图层的完全写入权限?
作为上面分享的 link 的延续,以下是确保配置正常运行的通用步骤:
- 确保 WAMP 安装成功并正常工作。
- PostgreSQL 安装成功,您可以运行 使用管理界面进行查询。
创建一个新用户(不一定是超级用户):
https://www.postgresql.org/docs/9.1/static/app-createuser.html
GRANT
SELECT
、INSERT
、UPDATE
和 DELETE
对您数据库中的这个新用户的权限:https://www.postgresql.org/docs/9.0/static/sql-grant.html
在这个特定问题的上下文中,为应用程序添加服务级别安全性:http://docs.geoserver.org/stable/en/user/security/service.html
确保您拥有图层的写入权限。简而言之,数据库中每个 table 的 Geoservices 中必须有一层:http://docs.geoserver.org/stable/en/user/security/layer.html
最后,当尝试调用服务的 WFS 调用时,您 jQuery 中的参数必须按照以下 link 所述进行设置:https://gis.stackexchange.com/questions/21251/how-to-initialize-a-wfs-layer
希望对您有所帮助。
根据您上面的命令,您似乎没有将几何列添加到 geometry_columns
table - 使用 AddGeometryColumn
statement 来执行此操作。
接下来要尝试的是完成 GeoServer tutorial on PostGIS。
我从网上下载了一个工程,可以让我在地图上画一些多边形、点等,然后保存在PostgreSQL数据库中。您还可以上传 KML 文件以显示已绘制的点、多边形等 - 但效果不佳。
该项目正在使用 PostGis + GeoServer。
问题是,我不知道如何启用其中的数据库来保存坐标。
到目前为止我做了: 1) 安装 PostgreSQL 2)安装PostGis 3)安装地理服务器 4)安装WAMP 5) 创建名为 'parking' 的数据库 6) 在 'parking' 中,我有 运行 SQL 这样的查询:
-- After creating database
CREATE EXTENSION postgis;
-- CREATE SEQUENCE FOR TABLE parking_spaces
CREATE SEQUENCE public.sq_parking_spaces
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
-- TABLE parking_spaces
CREATE TABLE public.parking_spaces
(
id integer NOT NULL DEFAULT nextval('sq_parking_spaces'::regclass),
name character varying(80),
paid boolean,
spaces integer,
geometry geometry(Polygon,3857),
CONSTRAINT parking_spaces_pkey PRIMARY KEY (id)
)
-- CREATE SEQUENCE FOR TABLE parking_meters
CREATE SEQUENCE public.sq_parking_meters
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
-- TABLE parking_meter
CREATE TABLE public.parking_meters
(
id integer NOT NULL DEFAULT nextval('sq_parking_meters'::regclass),
name character varying(80),
geometry geometry(Point,3857),
CONSTRAINT parking_meters_pkey PRIMARY KEY (id)
)
我的下一个目标应该是什么?如何使用 PgAdmin 检查表格?
编辑:
问题是如何将 PostgreSQL 数据库正确连接到 GeoServer?以及如何赋予 GeoServer 对图层的完全写入权限?
作为上面分享的 link 的延续,以下是确保配置正常运行的通用步骤:
- 确保 WAMP 安装成功并正常工作。
- PostgreSQL 安装成功,您可以运行 使用管理界面进行查询。
创建一个新用户(不一定是超级用户): https://www.postgresql.org/docs/9.1/static/app-createuser.html
GRANT
SELECT
、INSERT
、UPDATE
和DELETE
对您数据库中的这个新用户的权限:https://www.postgresql.org/docs/9.0/static/sql-grant.html在这个特定问题的上下文中,为应用程序添加服务级别安全性:http://docs.geoserver.org/stable/en/user/security/service.html
确保您拥有图层的写入权限。简而言之,数据库中每个 table 的 Geoservices 中必须有一层:http://docs.geoserver.org/stable/en/user/security/layer.html
最后,当尝试调用服务的 WFS 调用时,您 jQuery 中的参数必须按照以下 link 所述进行设置:https://gis.stackexchange.com/questions/21251/how-to-initialize-a-wfs-layer
希望对您有所帮助。
根据您上面的命令,您似乎没有将几何列添加到 geometry_columns
table - 使用 AddGeometryColumn
statement 来执行此操作。
接下来要尝试的是完成 GeoServer tutorial on PostGIS。