特注:不做详解,说明网上资源很多,找一篇,照着走一遍即可。

1.数据源要满足开源、Free且地理信息要完善

几经周折,选择了OSM,具体信息可以去其官方查看(它竟然把中国一分为二,大陆、台湾,坑爹!!!);

下载源:

http://download.geofabrik.de/asia.html(China  TaiWan);

http://osm2vectortiles.org/downloads/

http://download.bbbike.org/osm/bbbike/

我选择了shp格式的数据源,当然你也可以选择osm,然后通过postGIS导入数据库中(postgreSQL、Oracle、DB2等),此处不做详解(http://blog.csdn.net/bobantangzlt/article/details/16992585);

2.部署geoserver (http://www.cnblogs.com/ada-zheng/archive/2013/07/16/3192921.html)(不做详解)

下载地址:http://geoserver.org/download/

具体的时候使用说明,参照官网即可;

部署后,需要用户登录(账号:admin;密码:geoserver).

具体的发布操作(不做详解),官网上有具体说明(shp、tif、osm等数据格式)

3.给每个图层加样式(sld)这个可以通过udig工具去做,所见即所得,非常便捷,况且还有些主题样式可供选择(切记:地理数据过大时,不要用table去做加载文件内的数据,程序会假死或崩掉)

4.待数据完整发布之后,该考虑用户体验啦,比较地图数据量比较大,吃内存,如果是动态提供服务的话,CPU也是很紧俏的

网上提出了很好的解决办法 :geoserver通过内置的geowebcache对发布的wms服务进行切图处理,然后通过gwc进行访问过滤,若请求的已存在(Tile)则直接返回该静态图片,若请求的不存在,则提交给geoserver重新生成图片即可

好了,重头戏来了!!!

如何实现OL3-->GWC-->GeoServer过程呢?

第一步:在geoserver\WEB-INF\web.xml文件操作如下:

此处做的修改的意义何在呢?字面上看,一目了然就是缓存的路径,不改默认是在C盘的位置,不过,实践过程中会发现,切片会比较占空间的。

第二步:在geoserver/data/gwc/geowebcache.xml

第三步:通过GWC把geoserver服务发布的地图切片(此处比较吃CPU、内存)

第四步:OL3(前)端的设置代码如下:

<pre name="code" class="html"><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="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; }
</style>
<script type="text/javascript" src="OpenLayers.js"></script>
<script type="text/javascript" src="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')}));
// map.events.register("zoomend", this, function (e) {
// if (map.getZoom() > 10)
// {
// map.setCenter(map.getCenter(),10);
// }
// if (map.getZoom() < 4)
// {
// map.setCenter(map.getCenter(),4);
// }
// }); demolayer = new OpenLayers.Layer.WMS(
"china","http://192.168.0.110:8080/geoserver/gwc/service/wms",
{layers: 'china:ChinaMap', format: 'image/png' },
{ tileSize: new OpenLayers.Size(256,256)}
);
map.addLayer(demolayer);
map.zoomToExtent(new OpenLayers.Bounds(73.45100463600005, 18.16324718800007,
134.976797647, 53.53194315200005)
); }
</script>
</head>
<body onLoad="init()">
<div id="map"></div>
</body>
</html>

至此思路已基本理清,期间收获还需亲自体察。。。

webGIS(离线版)研究路线归总的更多相关文章

  1. 离线版centos8安装docker笔记

    嗨嗨哈哈,已经很久没有坐下来胡编乱造一点笔记了,平时云服务器搞惯了,一个命令就安装好了docker了的,但这次生不逢时的新机房就没那么幸运了,有多不逢时超乎想象,不仅仅服务器没有外网,就连周围方圆一公 ...

  2. [No00006D]下载离线版的github for windows【以Github for Windows 3.0.110.为例】

    目录 先上地址后讲原理: 原理: 11个目录的文件怎么一口气下载呢? 最后,把下好的文件批量名,同时将GitHub.exe.manifest也放到软件根目录下(与GitHub.exe同级): 今后的猜 ...

  3. Chrome Restful Api 测试工具 Postman-REST-Client离线安装包下载,Axure RP Extension for Chrome离线版下载

    [Postman for Chrome 离线下载] Postman-REST-Client离线安装包,可直接在Chrome浏览器本地安装使用,可模拟各种http请求,Restful Api测试, CS ...

  4. W3Cschool菜鸟教程离线版下载链接

    请在电脑上打开以下链接进行下载w3cschool 离线版(chm):http://pan.baidu.com/s/1bniwRCV(最新,2014年10月21日更新)w3cschool 离线版(htm ...

  5. 搭建Mono for Android开发环境(用离线版)

    上面为我现在的离线版的安装包内容(不知道为什么上传的图名字显示不出来,郁闷),这些文件可以到http://pan.baidu.com/s/1ntM8U4T这里去下载: 安装步骤如下: 1)jdk-6u ...

  6. Unity 3D 文件导入出错误解决方法以及unity圣典离线版下载地址

    1.安装unity 时我选择了free版的,打开已有项目时出现如下错误提示. 解决方法:先把要导入的文件先拷贝到unity3d安装目录下对应的文件夹内,之后再返回unity3d软件,右键选择“导入”. ...

  7. Chrome小技巧:如何下载离线版安装文件

    每当chrome有更新之后,都有不少用户想要下载离线版的安装文件,但苦于找不到下载地址而发愁,其实这个问题很简单,下面我来分享一下方法(仅针对Windows操作系统): 对于稳定版(正式版)Chrom ...

  8. visual studio 2015离线版msdn下载和安装

    2014年11月13日,微软发布了Visual Studio 2015 Preview,但是Visual Studio 2015 的msdn该如何安装呢?下面脚本之家就为大家分享一篇visual st ...

  9. VS Code C# 插件离线版 1.6.2

    VS Code C# 插件离线版,目前最新稳定版为:1.6.2 . 由于在扩展中下载C#插件总是缓慢,或者容易出现错误,特制作离线版本共享出来. 本离线版本为Windows版本,其他系统请在扩展中下载 ...

随机推荐

  1. 深入了解一下PYTHON中关于SOCKETSERVER的模块-C

    同时处理多个客户端请求,并且为不同的CLIENT开不同的线程处理. 这个东东,就显然实用性稍强了一些.(FORK和THREAD方式均可,但各有应用) #!/usr/bin/env python fro ...

  2. 使用mysql-proxy代理实现msyql数据库读写分离

    要实现读写分离,可以先看看如何实现mysql数据库主从:http://www.cnblogs.com/sustudy/p/4174189.html mysql-proxy下载地址(要看好对应版本):h ...

  3. rspec学习01

    1.安装rspec 2.基本构造 rspec用关键字describe和it,所以我们可以象正常会话一样去表达一个想法. describe方法创建了一个用例组,在describe所在的代码块里,你可以用 ...

  4. jQuery、实例大全

    文章出处 http://www.cnblogs.com/suoning/p/5683047.html 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: ...

  5. c语言 快速排序---归并排序----堆排序

    //快速排序: #include <stdio.h> #define MAX 500000 int s[MAX]; void Q_Sort(int start,int end) { int ...

  6. win7 变WIFI热点 & 在线Linux 内核代码

    https://daniel.haxx.se/docs/sshproxy.html netsh wlan set hostednetwork mode=allow ssid=mywifi  key=1 ...

  7. Django中的CSRF

    CSRF(Cross Site Request Forgery, 跨站域请求伪造) CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的 ...

  8. Google表单

    本博文的主要内容有 .Google表单的介绍 https://www.google.com/intl/zh-CN/forms/about/ 自行去注册Google账号,不多,赘述.

  9. hpuoj 1706: 牛B【正向拓扑】【建图】

    1706: 牛B 时间限制: 1 Sec  内存限制: 128 MB提交: 22  解决: 6[提交][状态][讨论版] 题目描述 一群来自日本恐怖分子带着AK47,火箭弹,开着坦克,带着飞机,强行洗 ...

  10. poj 1659 Frogs' Neighborhood (贪心 + 判断度数序列是否可图)

    Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 6076   Accepted: 26 ...