Php PostgreSQL数据库似乎无法与GeoServer配合使用

Php PostgreSQL数据库似乎无法与GeoServer配合使用,php,postgresql,postgis,geoserver,pgadmin,Php,Postgresql,Postgis,Geoserver,Pgadmin,我从互联网上下载了一个项目,该项目可以让我在地图上绘制一些多边形、点等,然后将其保存在PostgreSQL数据库中。您还可以上传KML文件来显示已经绘制的点、多边形等,但这并不适用 该项目正在使用PostGis+GeoServer 问题是,我不知道如何启用其中的数据库来保存坐标 到目前为止,我做到了: 1安装PostgreSQL 2安装PostGis 3安装地理服务器 4安装WAMP 5创建名为“停车场”的数据库 6在“停车场”中,我运行了如下SQL查询: -- After creating d

我从互联网上下载了一个项目,该项目可以让我在地图上绘制一些多边形、点等,然后将其保存在PostgreSQL数据库中。您还可以上传KML文件来显示已经绘制的点、多边形等,但这并不适用

该项目正在使用PostGis+GeoServer

问题是,我不知道如何启用其中的数据库来保存坐标

到目前为止,我做到了: 1安装PostgreSQL 2安装PostGis 3安装地理服务器 4安装WAMP 5创建名为“停车场”的数据库 6在“停车场”中,我运行了如下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对图层的完全写入权限?

继上述共享链接之后,以下是确保配置正常工作的一般步骤:

确保WAMP已成功安装并正常工作。 PostgreSQL已成功安装,您可以使用管理界面运行查询。 创建一个不一定是超级用户的新用户:

为数据库中的此新用户授予选择、插入、更新和删除权限:

针对此特定问题,请为应用程序添加服务级别安全性:

确保您具有层的写访问权限。松散地说,数据库中每个表的Geoservices中必须有一个层:

最后,在尝试调用对服务的WFS调用时,必须按照以下链接中所述设置jQuery中的参数:


希望对您有所帮助。

通过上面的命令,它不会显示为您已将几何图形列添加到几何图形列表中-请使用


下一步要尝试的是完成。您能够运行PHP代码了吗?请检查,你好,是的,我能做到。我通过/www中的localhost/GEO文件夹访问它,我已经可以在地图上画图了,但是重新加载后,所有内容都消失了,我认为坐标没有保存到数据库中。好的,谢谢确认。你提到代码是从某处下载的。是否根据DB用户访问权限的凭据进行了配置?很难猜测,但是,如果尚未配置,那么它可能位于项目中的config文件夹或类似名称的文件中?嗯,我似乎在代码中的任何地方都找不到数据库凭据。这个项目有database文件夹和database.sql文件,php文件夹和kml.php文件,我想它是用来上传kml文件,css文件夹和.css文件,js文件夹和jquery,openlayer和主脚本,在主脚本中我找不到任何数据库的引用,但代码很复杂,我可能不知怎么错过了它。您想上传这些文件吗?在您下载代码的源代码上找到任何配置说明吗?代码包中有自述文件吗?您的应用程序需要知道它驻留在哪里,以及使用什么凭据才能访问数据库。另外,请尝试在表中手动插入数据,并运行SELECT查询,以确保您的数据库实际工作?您能使用phpPgAdmin吗?如果没有,请参见第一条评论中的第二个链接中的答案: