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路径:

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

将shp数据转换为SQL语句:

[plain] view plaincopy print?
  1. shp2pgsql D:\data\wgs84\mcounty.shp mcounty > D:\data\wgs84\mcounty.sql

新建table并将数据导入:

[plain] view plaincopy print?
  1. psql -d opengis -f D:\data\wgs84\mcounty.sql postgres

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

接着,在Geoserver中发布。

1、新建数据存储

在Geoserver中新建POSTGIS的数据存储

然后发布图层:


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

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

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

[html] view plaincopy print?
  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>

转载于:https://www.cnblogs.com/telwanggs/p/6973024.html

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

  1. 【2022分布式存储峰会】腾讯云存储为您带来:云原生时代下的数据湖存储服务

    大会时间:今日15:00-15:30 大会主题:云原生时代下的数据湖存储服务 2022年4月14日,由百易传媒 (DOIT) 与厦门大学信息学院联合主办的"2022分布式存储论坛峰会&quo ...

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

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

  3. 《水经注地图服务》发布的卫星影像数据在OpenLayers中调用

    (本文首发于"水经注GIS"公号,关注公号免费领取地图数据) OpenLayers是一个用于开发WebGIS客户端的JavaScript包. OpenLayers 支持的地图来源包 ...

  4. 玩家角色信息是保存在服务器上吗,Reworld使用存储服务存储玩家的数据

    存储服务用于存储玩家的数据,在玩家下次进游戏时可以读取这些数据 使用存储服务做一个登录次数的提示,步骤如下: 第一步: 在界面初始化中创建2D界面容器,并在容器下创建文本控件和一个按钮控件,调整控件的 ...

  5. postgis+geoserver+openlayers最短路径分析-学习记录bug

    学习postgis+geoserver+openlayers最短路径分析,记录遇到的奇奇怪怪的问题. 主要参考: https://www.cnblogs.com/giser-s/p/11599562. ...

  6. 【使用QGIS入库将shp数据导入postgis、postgres数据库】

    使用QGIS入库将shp数据导入postgis.postgres数据库 第一步,安装并打开QGIS软件 第二步,连接PostGIS数据库 在弹出的连接信息界面中配置数据库连接参数 输入数据库连接参数后 ...

  7. QGIS + GEOSERVER 图层符号化(根据表数据自定义图层样式)

    QGIS + GEOSERVER 图层符号化 图层服务自定义符号化,根据数据进行图层样式的编辑. 1.QGIS 加载数据并配置样式 QGIS 添加PostgreSql 的表数据 输入密码 选择要符号化 ...

  8. QGIS 3.14|地震数据动画效果实战(二)动画设置篇

     01 设置图层Temporal属性 在QGIS 3.14中,图层的属性对话框首次加入了 Temporal标签页,提供图层的时间设置. 右键点击[图层]面板中的"quake2020" ...

  9. GIS开发:使用QGIS下载osm开放数据

    使用QGIS下载osm开放数据 QGIS(原称Quantum GIS)是一个开源的用户界面友好.跨平台的GIS软件(桌面地理信息系统),可运行在Linux.Unix.Mac OS X和Windows等 ...

最新文章

  1. 多版本python共存,安装三方库到指定python版本 多Python版本和虚拟环境
  2. 面试鹅厂,我三面被虐的体无完肤。。。
  3. moment.js相关知识总结
  4. 【《Objective-C基础教程 》笔记】(八)OC的基本事实和OC杂七杂八的疑问
  5. Oracle获取最近执行的SQL语句
  6. 迁移 Spring Boot 到函数计算
  7. jzoj_3385_黑魔法师之门
  8. Notification大图标修改问题种种
  9. 【Java多线程】并发容器CopyOnWriteArrayList
  10. CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告
  11. [转] STL中map用法详解
  12. 图像处理与图像识别笔记(六)图像增强3
  13. mlock家族:锁定物理内存
  14. mysql5.6.27安装_mysql-5.6.27源码安装及错误解决办法
  15. Linux修改用户名(主机名)
  16. Java常用集合框架源码解析合集
  17. Java 中的十大排序算法
  18. 最好用的启动管理软件推荐-点评-对比-分析-下载:
  19. 传智杯第四届初赛 B小卡与质数2
  20. 零售航母沃尔玛公布业绩:喜忧参半

热门文章

  1. PowerPC E500 MMU详解
  2. window 环境下搭建多个git项目
  3. (53)Xilinx时钟原语-BUG与IBUFG(第11天)
  4. (68)FPGA模块调用(Verilog调用VHDL)
  5. python字符串说法错误的是_【单选题】关于Python字符串的表示方法,下列说法错误的是: A. 字符串是字符的序列表示,只能由...
  6. python计算机图形学_图形图像学习随笔:计算机图形学的一些基本概念
  7. 【好文链接】什么是光流
  8. STM32 ADC模数转换
  9. 数据结构之栈的应用(语法匹配)
  10. linux路由内核实现分析(四)---路由缓存机制(1)