GeoServerEclipse搭建矢量数据库搭建安装数据库sudoapt-getinstallpostgresqlpostgresql-contribpostgispostgresql-9.1-postgis安装完毕,我们需要更改postgres用户的密码,否则我们就没法使用这个数据库服务器。以postgres这个系统用户的身份运行psql命令,在终端中输入如下:sudosupostgres-cpsqltemplate1这时候会出现新的提示符,输入下面两个命令,用新密码替换***password***:ALTERUSERpostgresWITHPASSWORD'***password***';b)创建用户及数据库postgres#CREATEUSERzuefirWITHPASSWORD'xxxx';postgres#CREATEDATABASEosm;postgres#GRANTALLPRIVILEGESONDATABASEosmtozuefir;c)为数据库添加空间扩展CREATEEXTENSIONpostgis;--EnableTopologyCREATEEXTENSIONpostgis_topology;--fuzzymatchingneededforTigerCREATEEXTENSIONfuzzystrmatch;--地理编码CREATEEXTENSIONpostgis_tiger_geocoder;--用于存储属性tags,key-valueCREATEEXTENSIONhstore;修改PostgreSQL数据库的默认用户postgres的密码2.PostgreSQL登录(使用psql客户端登录)root@server2-virtual-machine:~#sudo-upostgrespsql//其中,sudo-upostgres是使用postgres用户登录的意思//PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,所以这里//设定为'postgres'3.修改PostgreSQL登录密码:postgres=#ALTERUSERpostgresWITHPASSWORD'postgres';//postgres=#为PostgreSQL下的命令提示符4.退出PostgreSQLpsql客户端postgres=#\q[代码说明]‘#’和’#'之前的字符是系统提示符,’postgres=#’是psql客户端的提示符,红色字符为输入命令(本文其它部分亦如此);[功能说明]PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,我人需要修改为指定的密码,这里设定为’postgres’修改linux系统的postgres用户的密码1.删除PostgreSQL用户密码root@server2-virtual-machine:~#sudopasswd-dpostgrespasswd:passwordexpiryinformationchanged.//passwd-d是清空指定用户密码的意思2.设置PostgreSQL用户密码PostgreSQL数据默认会创建一个linux用户postgres,通过上面的代码修改密码为'postgres’(这取决于第二步中的密码,只要与其相同即可)。现在,我们就可以在数据库服务器上用postgres帐号通过psql或者pgAdmin等等客户端操作数据库了。root@server2-virtual-machine:~#sudo-upostgrespasswd输入新的UNIX密码:重新输入新的UNIX密码:passwd:已成功更新密码修改PostgresSQL数据库配置实现远程访问root@server2-virtual-machine:~#vi/etc/postgresql/9.1/main/postgresql.conf1.监听任何地址访问,修改连接权限#listen_addresses=‘localhost’改为listen_addresses=‘*’2.启用密码验证#password_encryption=on改为password_encryption=on3.可访问的用户ip段root@server2-virtual-machine:~#vi/etc/postgresql/9.1/main/pg_hba.conf,并在文档末尾加上以下内容#toallowyourclientvisitingpostgresqlserverhostallall0.0.0.00.0.0.0md54.重启PostgreSQL数据库root@server2-virtual-machine:~#/etc/init.d/postgresqlrestart管理PostgreSQL用户和数据库1.登录postgreSQL数据库root@server2-virtual-machine:~#psql-Upostgres-h127.0.0.12.创建新用户zhaofeng,但不给建数据库的权限postgres=#createuser“zhaofeng”withpassword‘123456’nocreatedb;//注意用户名要用双引号,以区分大小写,密码不用3.建立数据库,并指定所有者postgres=#createdatabase“testdb”withowner=”zhaofeng”;4.在外部命令行的管理命令root@server2-virtual-machine:~#-upostgrescreateuser-D-Ptest1//-D该用户没有创建数据库的权利,-P提示输入密码,选择管理类型y/nroot@server2-virtual-machine:~#-upostgrescreatedb-Otest1db1//-O设定所有者为test1安装postgresql数据库pgAdmin3客户端管理程序root@server2-virtual-machine:~#apt-getinstallpgadmin3添加PostGIS功能到数据库,执行如下命令psql-Upostgres-dosm-f“你PostgreSQL安装路径/share/contrib/postgis-2.1/postgis.sql”添加EPSG:900913支持psql-Upostgres-dosm-f“本地的文件路径/900913.sql”900913.sql没有可以在osm2pgsql的github中下载到添加OSM数据到数据库下载github上的osm2pgsql中的default.style文件并拷贝到本地osm2pgsql的x64目录中,把下载的chain.osm.bz2文件解压得到的chain.osm文件也拷贝到osm2pgsql的x64目录中。新打开一个命令行进入osm2pgsql的x64目录中,执行如下命令:osm2pgsql-Upostgres-dosm-s-S./default.style./china.osm一般情况下会报一个”Errorreadingstylefileline151(fields=4)flag‘phstore’isinvalidinnon-hstoremode“的错误,这说明确实hstore表示所以我们需要添加这个标识。点击pgAdminIII工具栏中的SQL标识在弹出的SQL编辑器中输入:createextensionhstore;命令点击顶部工具栏中的这时还需要为命令添加一个“–hstore“选项完整的执行命令是:“osm2pgsql-Upostgres-dosm–hstore-s-S./default.style./china.osm“这样就正确了。后面导入可以不添加S./default.styleGeoServer导入eclipse下载GeoServer源码进入src目录mvncleaninstall成功之后生成导入eclipse的文件mvneclipse:eclipseGeoServer二次开发GeoServer相关概念的介绍Geoserver是一个功能齐全,遵循OGC开放标准的开源WFS-T和WMS服务器。利用Geoserver可以把数据作为maps/images来发布(利用WMS来实现)也可以直接发布实际的数据(利用WFS来实现),同时也提供了修改,删除和新增的功能(利用WFS-T)。GeoServer,顾名思义,是一个Server.它是开源的,允许用户查看和编辑地理数据。这是地理信息系统(GIS)领域。GeoServer是符合OGC规范的一个全功能的WFS-T和WMSserver。GeoServer能够发布的数据类型:l地图或影象——应用WMS,l实时数据——应用WFS,l用户更新、删除和编辑的数据——应用WFS-T。相关概念的:WMS:WebMapService(Web地图服务)l利用具有地理空间位置信息的数据制作地图。其中将地图定义为地理数据可视的表现。这个规范定义了三个操作:nGetCapabitities返回服务级元数据,它是对服务信息内容和要求参数的一种描述;nGetMap返回一个地图影像,其地理空间参考和大小参数是明确定义了的;nGetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息WFS:WebFeatureService(Web要素服务)lWeb地图服务返回的是图层级的地图影像,lWeb要素服务(WFS)返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。OGCWeb要素服务允许客户端从多个Web要素服务中取得使用地理标记语言(GML)编码的地理空间数据,定义了五个操作:nGetCapabilites返回Web要素服务性能描述文档(用XML描述);nDescribeFeatureType返回描述可以提供服务的任何要素结构的XML文档;nGetFeature一个获取要素实例的请求提供服务;nTransaction为事务请求提供服务;nLockFeature处理在一个事务期间对一个或多个要素类型实例上锁的请求。WFS-T:WebMapService-Transactional.允许用户以可传输的块编辑地理数据。WCS:WebCoverageService(Web覆盖服务)Web覆盖服务(WCS)面向空间影像数据,它将包含地理位置值的地理空间数据作为“覆盖(Coverage)”在网上相互交换。l网络覆盖服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType:nGetCapabilities操作返回描述服务和数据集的XML文档。nGetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。nDescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。GML:GeographyMarkupLanguage.一种用于描述地理数据的XML。OGC——OpenGeospatialConsortium——开放地理信息联盟总之,GeoServer是您需要显示地图在网页的那些工具的当中一个,用户可以缩放并且移动。可以与一些客户端联合使用,比如:MapBuilder(forwebpages),UDig,GVSig,等等。对标准的使用允许信息从GeoServer到其它地理信息可以很容易地被结合。如果你对GeoServer发出一个WMS请求,你就可能得到如下的一张图:查看Demo在welcome界面中单击demopage链接,进入页面后单击WFS-T链接就可以启动一个名叫MapBuilder的基于Javascript的地图地图编辑器。启动MapBuilder后我们可以看到一