http://blog.csdn.net/gisshixisheng/article/details/41575833

标题比较长,主要呢是实现以下几点:

1、将shp数据导入到PostGIS中;

2、Geoserver发布WMS服务;

3、Openlayers调用Wms服务

首先,下载安装软件。

为方便大家下载,我将所有软件上传的百度网盘里了,有需要的可以上网盘直接下载,地址为:http://pan.baidu.com/s/1ntJrf8P,此外,openlayers的下载地址为:http://pan.baidu.com/s/1kTBTCX5。

软件下载完成以后安装,如何安装在此就不做详述了,不过注意:postgresql-8.4.14-1-windows安装完成之后,Stack Builder直接取消,下载太慢,安装postgis-pg84-setup-2.0.3-1即可。

接着,将shp数据导入到PostGIS中。

将shp数据导入到PostGIS有两种方式:1、通过QGIS的辅助工具;2、通过cmd命令行。

1、通过Qgis辅助工具

打开QGIS——》打开辅助工具Import ShapeFiles to PostgreSQL

——》新建PostGIS连接

——》添加shp数据

注意:Schema类型选择public。

2、通过cmd命令行

通过cmd的方式比较简单,首先,进入命令窗口,切换到PostgreSql的bin路径:

  1. </pre><pre name="code" class="plain">cd C:\Program Files (x86)\PostgreSQL\8.4\bin>

将shp数据转换为SQL语句:

  1. shp2pgsql D:\data\wgs84\mcounty.shp mcounty > D:\data\wgs84\mcounty.sql

新建table并将数据导入:

  1. psql -d opengis -f D:\data\wgs84\mcounty.sql postgres

比较:
第一种操作比较简单,但是,操作步骤比较多,但是第一种操作在导入POLYGON的时候会存在MULTIPOLYGON或者POLYGON的转化的不一致的问题,导致数据导入的不成功。

接着,在Geoserver中发布。

1、新建数据存储

在Geoserver中新建POSTGIS的数据存储

然后发布图层:


图层发布完成之后转到图层预览,以openlayers的方式打开:

当你看到这个图的时候,就说明你的服务已经发布成功了!

接下来就是用Openlayers调用显示,

    1. <html xmlns="http://www.w3.org/1999/xhtml">
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    4. <title>china EPSG:4326 image/png</title>
    5. <link rel="stylesheet" type="text/css" href="http://200.200.200.223/OpenLayers-2.12/theme/default/style.css"/>
    6. <style type="text/css">
    7. body { font-family: sans-serif; font-weight: bold; font-size: .8em; }
    8. body { border: 0px; margin: 0px; padding: 0px; }
    9. #map { width: 100%; height: 100%; border: 0px; padding: 0px; }
    10. #nodelist{
    11. position:absolute;
    12. right:10px;
    13. top:10px;
    14. background:#FFF;
    15. border:#06F solid 2px;
    16. padding:5px;
    17. }
    18. </style>
    19. <script type="text/javascript" src="http://200.200.200.223/OpenLayers-2.12/OpenLayers.js"></script>
    20. <script type="text/javascript" src="http://200.200.200.223/OpenLayers-2.12/lib/OpenLayers/Lang/zh-CN.js"></script>
    21. <script type="text/javascript">
    22. var map, demolayer;
    23. OpenLayers.DOTS_PER_INCH = 90.71428571428572;
    24. OpenLayers.Util.onImageLoadErrorColor = 'transparent';
    25. function init(){
    26. var mapOptions = {
    27. resolutions: [0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625,
    28. 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125E-4,
    29. 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5, 4.291534423828125E-5,
    30. 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6, 2.682209014892578E-6,
    31. 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7
    32. ],
    33. projection: new OpenLayers.Projection('EPSG:4326'),
    34. maxExtent: new OpenLayers.Bounds(-180.0,-90.0,180.0,90.0),
    35. units: "degrees",
    36. controls: []
    37. };
    38. map = new OpenLayers.Map('map', mapOptions );
    39. map.addControl(new OpenLayers.Control.PanZoomBar({
    40. position: new OpenLayers.Pixel(2, 15)
    41. }));
    42. map.addControl(new OpenLayers.Control.Navigation());
    43. map.addControl(new OpenLayers.Control.Scale($('scale')));
    44. map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));
    45. var wms = new OpenLayers.Layer.WMS(
    46. "lake",
    47. "http://200.200.200.223:8888/geoserver/wms",
    48. {
    49. LAYERS: "mpro",
    50. transparent:true
    51. },
    52. {
    53. singleTile: false,
    54. ratio: 1,
    55. isBaseLayer: false,
    56. visibility:true,
    57. yx : {'EPSG:4326' : true}
    58. }
    59. );
    60. map.addLayer(wms);
    61. map.zoomToExtent(new OpenLayers.Bounds(73.45100463600005, 18.16324718800007,
    62. 134.976797647, 53.53194315200005)
    63. );
    64. map.events.register('click', map, function (e) {
    65. console.log(e);
    66. });
    67. }
    68. </script>
    69. </head>
    70. <body onLoad="init()">
    71. <div id="map"></div>
    72. </body>
    73. </html>

(转)PostGIS+QGIS+GeoServer+OpenLayers实现数据的存储、服务的发布以及地图的显示的更多相关文章

  1. GeoServer基础教程(三):部署发布Shapefile地图数据

    转载:http://blog.csdn.net/mingzai624. 这是GeoServer官方网站提供的一份Shapefile测试数据 nyc_roads.zip ,包含了部分纽约的道路信息,我们 ...

  2. RN 数据持久化存储服务API

    一些数据信息需要存储在手机内存中,比如用户的登录名密码 token啥的,所以这就需要了来存这些信息 在RN中 采用了AsyncStorage是一个简单的.异步的.持久化的Key-Value存储系统,它 ...

  3. Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像)

    Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像) 一.geoserver+openlayers+mysql主要设计思想 1.1 Geo ...

  4. shp格式数据发布服务:postGIS + postgresql + geoserver

    主要流程: ①使用postgresql创建数据库 ②下载安装postgis插件 ③在创建的数据库中使用postgis插件,执行下列语句 CREATE EXTENSION postgis; CREATE ...

  5. 使用GeoServer+OpenLayers发布和调用WMTS、Vector Tile矢量切片服务 | Publishing and Calling WMTS, Vector Tile Service Using GeoServer + OpenLayers

    Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...

  6. 路径分析—PostgreSQL+GeoServer+Openlayers(二)

    路径分析-QGIS+PostgreSQL+PostGIS+pgRouting(一) 路径分析-PostgreSQL+GeoServer+Openlayers(二) 前言 上一篇文章中实现数据库层面的路 ...

  7. 使用GeoServer发布shp数据为WMS服务和WFS服务

    使用GeoServer发布shp数据为WMS服务和WFS服务 1安装GeoServer 2使用GeoServer上传数据 3使用GeoServer发布数据为WMS和WFS 看完本教程,你将学会安装Ge ...

  8. 使用openlayers 3 在线加载天地图及GeoServer发布的地图

    使用openlayers3来加载天地图卫星图和标注图层,GeoServer发布地图,一并用openlayers测试加载出来,顺便实现了7种地图控件.下面直接贴代码: <!DOCTYPE html ...

  9. geoserver 添加图层数据

    1.添加shapefile文件 首先到http://www2.census.gov/geo/tiger/TIGER2011/CONCITY/上下载名称为tl_2011_47_concity的shape ...

随机推荐

  1. Java基础学习总结(73)——Java最新面试题汇总

    1.super()与this()的区别? this():当前类的对象,super父类对象. super():在子类访问父类的成员和行为,必须受类继承规则的约束 而this他代表当前对象,当然所有的资源 ...

  2. [luoguP2870] [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(后缀数组)

    传送门 数据小的话贪心就行. 可以把这个串翻转再接到后面,再求后缀数组,求出 rank 数组就很简单了. ——代码 #include <cstdio> #include <iostr ...

  3. [PWA] Show Notifications when a Service Worker is Installed or Updated

    Service Workers get installed and activated in the background, but until we reload the page they don ...

  4. 技术总结--android篇(四)--工具类总结

    StringUtil(视个人须要进行加入) public class StringUtil { public static boolean isMail(String string) { if (nu ...

  5. OC基础回想(十二)协议

    在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...

  6. UVA10254 - The Priest Mathematician(找规律)

    UVA10254 - The Priest Mathematician(找规律) 题目链接 题目大意:4根柱子的汉诺塔. 解题思路:题目里面有提示,先借助四个柱子移走k个,然后在借助三个柱子移走剩余的 ...

  7. 【字符串处理】关于KMP算法输出的是什么&代码

    输入: ABCDABTBD_TISABCDABCABCDABC q为当前nxt处理的模版文本串下标: k为“失配时去哪里”,详情请看注释. --------------我是求完nxt的分界线----- ...

  8. bzoj 4025 二分图 分治+并查集/LCT

    bzoj 4025 二分图 [题目大意] 有n个点m条边,边会在start时刻出现在end时刻消失,求对于每一段时间,该图是不是一个二分图. 判断二分图的一个简单的方法:是否存在奇环 若存在奇环,就不 ...

  9. elasticsearch 索引搜索和索引性能优化配置——思路:去掉不必要的数据,减小数据的磁盘空间占用,同时提升性能

    压缩配置: index.codec: best_compression 合并索引: curl –XPOST localhost:9200/hec_test3/_forcemerge’ 配置mappin ...

  10. 欧拉函数&&欧拉定理

    定义和简单性质 欧拉函数在OI中是个非常重要的东西,不知道的话会吃大亏的. 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1 ...