(转)PostGIS+QGIS+GeoServer+OpenLayers实现数据的存储、服务的发布以及地图的显示...
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路径:
- </pre><pre name="code" class="plain">cd C:\Program Files (x86)\PostgreSQL\8.4\bin>
将shp数据转换为SQL语句:
- shp2pgsql D:\data\wgs84\mcounty.shp mcounty > D:\data\wgs84\mcounty.sql
新建table并将数据导入:
- psql -d opengis -f D:\data\wgs84\mcounty.sql postgres
比较:
第一种操作比较简单,但是,操作步骤比较多,但是第一种操作在导入POLYGON的时候会存在MULTIPOLYGON或者POLYGON的转化的不一致的问题,导致数据导入的不成功。
接着,在Geoserver中发布。
1、新建数据存储
在Geoserver中新建POSTGIS的数据存储
然后发布图层:
图层发布完成之后转到图层预览,以openlayers的方式打开:
当你看到这个图的时候,就说明你的服务已经发布成功了!
接下来就是用Openlayers调用显示,
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>china EPSG:4326 image/png</title>
- <link rel="stylesheet" type="text/css" href="http://200.200.200.223/OpenLayers-2.12/theme/default/style.css"/>
- <style type="text/css">
- body { font-family: sans-serif; font-weight: bold; font-size: .8em; }
- body { border: 0px; margin: 0px; padding: 0px; }
- #map { width: 100%; height: 100%; border: 0px; padding: 0px; }
- #nodelist{
- position:absolute;
- right:10px;
- top:10px;
- background:#FFF;
- border:#06F solid 2px;
- padding:5px;
- }
- </style>
- <script type="text/javascript" src="http://200.200.200.223/OpenLayers-2.12/OpenLayers.js"></script>
- <script type="text/javascript" src="http://200.200.200.223/OpenLayers-2.12/lib/OpenLayers/Lang/zh-CN.js"></script>
- <script type="text/javascript">
- var map, demolayer;
- OpenLayers.DOTS_PER_INCH = 90.71428571428572;
- OpenLayers.Util.onImageLoadErrorColor = 'transparent';
- function init(){
- var mapOptions = {
- resolutions: [0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625,
- 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125E-4,
- 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5, 4.291534423828125E-5,
- 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6, 2.682209014892578E-6,
- 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7
- ],
- projection: new OpenLayers.Projection('EPSG:4326'),
- maxExtent: new OpenLayers.Bounds(-180.0,-90.0,180.0,90.0),
- units: "degrees",
- controls: []
- };
- map = new OpenLayers.Map('map', mapOptions );
- map.addControl(new OpenLayers.Control.PanZoomBar({
- position: new OpenLayers.Pixel(2, 15)
- }));
- map.addControl(new OpenLayers.Control.Navigation());
- map.addControl(new OpenLayers.Control.Scale($('scale')));
- map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));
- var wms = new OpenLayers.Layer.WMS(
- "lake",
- "http://200.200.200.223:8888/geoserver/wms",
- {
- LAYERS: "mpro",
- transparent:true
- },
- {
- singleTile: false,
- ratio: 1,
- isBaseLayer: false,
- visibility:true,
- yx : {'EPSG:4326' : true}
- }
- );
- map.addLayer(wms);
- map.zoomToExtent(new OpenLayers.Bounds(73.45100463600005, 18.16324718800007,
- 134.976797647, 53.53194315200005)
- );
- map.events.register('click', map, function (e) {
- console.log(e);
- });
- }
- </script>
- </head>
- <body onLoad="init()">
- <div id="map"></div>
- </body>
- </html>
转载于:https://www.cnblogs.com/telwanggs/p/6973024.html
(转)PostGIS+QGIS+GeoServer+OpenLayers实现数据的存储、服务的发布以及地图的显示...相关推荐
- 【2022分布式存储峰会】腾讯云存储为您带来:云原生时代下的数据湖存储服务
大会时间:今日15:00-15:30 大会主题:云原生时代下的数据湖存储服务 2022年4月14日,由百易传媒 (DOIT) 与厦门大学信息学院联合主办的"2022分布式存储论坛峰会&quo ...
- GeoServer基础教程(三):部署发布Shapefile地图数据
转载:http://blog.csdn.net/mingzai624. 这是GeoServer官方网站提供的一份Shapefile测试数据 nyc_roads.zip ,包含了部分纽约的道路信息,我们 ...
- 《水经注地图服务》发布的卫星影像数据在OpenLayers中调用
(本文首发于"水经注GIS"公号,关注公号免费领取地图数据) OpenLayers是一个用于开发WebGIS客户端的JavaScript包. OpenLayers 支持的地图来源包 ...
- 玩家角色信息是保存在服务器上吗,Reworld使用存储服务存储玩家的数据
存储服务用于存储玩家的数据,在玩家下次进游戏时可以读取这些数据 使用存储服务做一个登录次数的提示,步骤如下: 第一步: 在界面初始化中创建2D界面容器,并在容器下创建文本控件和一个按钮控件,调整控件的 ...
- postgis+geoserver+openlayers最短路径分析-学习记录bug
学习postgis+geoserver+openlayers最短路径分析,记录遇到的奇奇怪怪的问题. 主要参考: https://www.cnblogs.com/giser-s/p/11599562. ...
- 【使用QGIS入库将shp数据导入postgis、postgres数据库】
使用QGIS入库将shp数据导入postgis.postgres数据库 第一步,安装并打开QGIS软件 第二步,连接PostGIS数据库 在弹出的连接信息界面中配置数据库连接参数 输入数据库连接参数后 ...
- QGIS + GEOSERVER 图层符号化(根据表数据自定义图层样式)
QGIS + GEOSERVER 图层符号化 图层服务自定义符号化,根据数据进行图层样式的编辑. 1.QGIS 加载数据并配置样式 QGIS 添加PostgreSql 的表数据 输入密码 选择要符号化 ...
- QGIS 3.14|地震数据动画效果实战(二)动画设置篇
01 设置图层Temporal属性 在QGIS 3.14中,图层的属性对话框首次加入了 Temporal标签页,提供图层的时间设置. 右键点击[图层]面板中的"quake2020" ...
- GIS开发:使用QGIS下载osm开放数据
使用QGIS下载osm开放数据 QGIS(原称Quantum GIS)是一个开源的用户界面友好.跨平台的GIS软件(桌面地理信息系统),可运行在Linux.Unix.Mac OS X和Windows等 ...
最新文章
- 多版本python共存,安装三方库到指定python版本 多Python版本和虚拟环境
- 面试鹅厂,我三面被虐的体无完肤。。。
- moment.js相关知识总结
- 【《Objective-C基础教程 》笔记】(八)OC的基本事实和OC杂七杂八的疑问
- Oracle获取最近执行的SQL语句
- 迁移 Spring Boot 到函数计算
- jzoj_3385_黑魔法师之门
- Notification大图标修改问题种种
- 【Java多线程】并发容器CopyOnWriteArrayList
- CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告
- [转] STL中map用法详解
- 图像处理与图像识别笔记(六)图像增强3
- mlock家族:锁定物理内存
- mysql5.6.27安装_mysql-5.6.27源码安装及错误解决办法
- Linux修改用户名(主机名)
- Java常用集合框架源码解析合集
- Java 中的十大排序算法
- 最好用的启动管理软件推荐-点评-对比-分析-下载:
- 传智杯第四届初赛 B小卡与质数2
- 零售航母沃尔玛公布业绩:喜忧参半
热门文章
- PowerPC E500 MMU详解
- window 环境下搭建多个git项目
- (53)Xilinx时钟原语-BUG与IBUFG(第11天)
- (68)FPGA模块调用(Verilog调用VHDL)
- python字符串说法错误的是_【单选题】关于Python字符串的表示方法,下列说法错误的是:
A. 字符串是字符的序列表示,只能由...
- python计算机图形学_图形图像学习随笔:计算机图形学的一些基本概念
- 【好文链接】什么是光流
- STM32 ADC模数转换
- 数据结构之栈的应用(语法匹配)
- linux路由内核实现分析(四)---路由缓存机制(1)