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

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. 在linux下的apache配置https协议,开启ssl连接

    环境:linux 配置https协议,需要2大步骤: 一.生成服务器证书 1.安装openssl软件 yum install -y openssl mod_ssl 2.生成服务器私匙,生成server ...

  2. 【HDOJ】2255 奔小康赚大钱

    最大二分图匹配,O(n^3). /* 2255 */ #include <iostream> #include <algorithm> #include <cstdio& ...

  3. 2016年QS亚洲大学排行榜

    2016年QS亚洲大学排行榜 人民网北京6月14日电 (记者 郝孟佳)今天,全球高等教育分析机构QS全球教育集团发布了2016年QS亚洲大学排名.清华大学在亚洲20强大学中进步最大,比去年提升6名,上 ...

  4. Solr -- Solr Facet 2

    solr将以导航为目的的查询结果称为facet. 它并不会修改查询结果信息, 只是在查询结果上根据分类添加了count信息, 然后用户根据count信息做进一步的查询, 比如淘宝的查询列表中, 上面会 ...

  5. [Exchange2013] 无法正常发送存入草稿箱 或者 只能发不能收

    可能是由于你的域控的DNS设置导致: 1.那么首先我们添加一个EX的记录在域控的DNS里面 2.登录exchange的控制台,设置DNS Server

  6. [转载] cookie、JS记录及跳转到页面原来的位置

    额....如下 <!-- 定位页面的 Cookie function SetCookie(sName, sValue) { date = new Date(); s = date.getDate ...

  7. [转+整理]LINUX学习笔记(1):磁盘结构及分区

    整理自: http://vbird.dic.ksu.edu.tw/linux_basic/0130designlinux_2.php http://lengjianxxxx.blog.163.com/ ...

  8. zabbix oracle监控插件orabbix部署安装

    1,下载orabbix插件包(插件包同时满足在大部分POSIX-linux及unix和大部分版本的windows下运行,玩转类似但不等同于Tomcat) wget http://www.smartma ...

  9. God of War - HDU 2809(状态压缩+模拟)

    题目大意:貌似是一个游戏,首先给出卢布的攻击,防御,还有血量,再给出每升一级增加的攻击防御还有血量,然后又N个敌人,杀死每个敌人都会得到一些经验,求杀死完所有敌人时剩余的最大血量. 分析:因为敌人比较 ...

  10. hdoj 1950 Bridging signals【二分求最大上升子序列长度】【LIS】

    Bridging signals Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...