赞
踩
首先,下载geotiff数据
下载方法使用全能电子地图下载器(很好用) 下载地图切片(建议不下载1,2层级)
将下载下来的数据使用导航栏的工具拼接成tiff格式
使用geoserver进行发布
发布成功之后使用geoserver去数据进行切片
提交之后切片成功图片路径GeoServer 2.14.2\data_dir\gwc 将所有切片拷贝到一个切片目录下
查看图层
至此geoserver切片tiff数据完成
注(以上至geoserver自带jetty启动)
如果tomcat下启动geoserver 注意配置切片路径:
注意:1.默认的切片目录GEOSERVER_DATA_DIR是:
C:\Users\主机名\AppData\Local\Temp\geowebcache,因此需要在web.xml中对其进行定义。
在web.xml中添加如下配置重启:
<context-param>
<param-name>GEOWEBCACHE_CACHE_DIR</param-name>
<param-value>D:/apache-tomcat-7.0.52-windows-x64/webapps/geoserver/data/data/Tile</param-value>
</context-param>
再次进行seed/trunctate的时候就会将切片生成在该目录下面
openlayer加载就比较简单了直接上代码(使用vue):
- this.vectorxx9 = new TileLayer({
- source: new TileWMS({
- url: 'http://localhost:8089/geoserver/gwc/service/wms',
- params: {'LAYERS': 'shp:h8', 'VERSION': '1.1.1', 'FORMAT': "image/png", tiled: true, STYLES: '',},
- }),
全部代码如下
- <template>
- <div id="map">
- <input @click="fitToChengdu" value="显示成都" type="button"/>
- <input @click="toline" value="加载图层" type="button"/>
- <input @click="deleteline" value="删除图层" type="button"/>
- <div><span>当前层级:</span><span id="zoom"></span><span>分辨率:</span><span id="resolution"></span></div>
- <!-- <div id="anchor"><img src="../png/test.png" alt="示例锚点" v-on:click="testvalue"/></div>-->
- </div>
- </template>
- <script>
- import "ol/ol.css";
- import {Map, View, Overlay, Feature} from "ol";
- import TileLayer from "ol/layer/Tile";
- import {Image, Vector} from "ol/layer";
- import GeoJSON from "ol/format/GeoJSON";
- import {Style, Stroke, Icon} from "ol/style";
- import VectorLayer from "ol/layer/Vector";
- import OSM from "ol/source/OSM";
- import XYZ from "ol/source/XYZ";
- import Point from "ol/geom/Point";
- import VectorSource from "ol/source/Vector";
- import ImageWMS from "ol/source/ImageWMS";
- import TileDebug from "ol/source/TileDebug";
- import page from "../png/定点.png";
- import TileWMS from "ol/source/TileWMS"
-
- export default {
- data() {
- return {
- websocket: null,
- centers: [-73.99710639567148, 40.742270050255556],
- map: null,
- anchor: 'testS',
- offlineMapLayer: null,
- baseLayer: null,
- vectorxx0: null,
- vectorxx1: null,
- vectorxx2: null,
- vectorxx3: null,
- vectorxx4: null,
- vectorxx5: null,
- vectorxx6: null,
- vectorxx7: null,
- vectorxx8: null,
- vectorxx9: null,
- vectorxxre: null,
- wmsSource: null,
- wmsSources: null,
- openStreetMapLayer: null,
- line: null,
- wmsLayer: null,
- extent: [108.06 - 550 * 1000 / 200000, 30.67 - 344 * 1000 / 200000, 108.06 + 550 * 1000 / 200000, 30.67 + 344 * 1000 / 200000],
- maps: new OSM(),
- layer: new VectorLayer({source: new VectorSource()}),
- styleicon: ""
- };
- },
- created() {
- //页面刚进入时开启长连接
- this.initWebSocket()
- },
- destroyed() {
- //页面销毁时关闭长连接
- this.websocketclose();
- },
- mounted() {
- this.openStreetMapLayer = new TileLayer({
- source: new OSM()
-
- });
-
-
- this.vectorxx1 = new TileLayer({
- source: new TileWMS({
- // format: new GeoJSON(),
- url: 'http://10.4.4.160:8080/geoserver/china/wms',
- params: {'LAYERS': 'china:china', 'VERSION': '1.1.0'},
- }),
-
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- }),
- this.vectorxx2 = new TileLayer({
- source: new TileWMS({
- // format: new GeoJSON(),
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'shp:google1', 'VERSION': '1.1.0'},
-
- }),
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- });
- this.vectorxx7 = new TileLayer({
- source: new TileWMS({
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'shp:google6', 'VERSION': '1.1.0'},
- }),
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- });
- this.vectorxx8 = new TileLayer({
- source: new TileWMS({
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'shp:china8'},
- }),
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- }); this.vectorxx9 = new TileLayer({
- source: new TileWMS({
- url: 'http://localhost:8089/geoserver/gwc/service/wms',
- params: {'LAYERS': 'shp:h8', 'VERSION': '1.1.1', 'FORMAT': "image/png", tiled: true, STYLES: '',},
- }),
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- });
- this.vectorxx3 = new TileLayer({
- source: new TileWMS({
- // format: new GeoJSON(),
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'shp:google2', 'VERSION': '1.1.0'},
-
- }),
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- });
- this.vectorxx5 = new TileLayer({
- source: new TileWMS({
- // format: new GeoJSON(),
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'shp:google4', 'VERSION': '1.1.0'},
-
- }),
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- }),
- this.vectorxx4 = new TileLayer({
- source: new TileWMS({
- // format: new GeoJSON(),
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'shp:google3', 'VERSION': '1.1.0'},
-
- }),
-
- // style: function(feature, resolution) {
- // return new Style({
- // stroke: new Stroke({
- // color: 'blue',
- // width: 1
- // })
- // });
- // }
- });
- this.vectorxx6 = new TileLayer({
- source: new TileWMS({
- // format: new GeoJSON(),
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'shp:google5', 'VERSION': '1.1.0'},
-
- }),
- style: {
- stroke: new Stroke({
- color: 'blue',
- width: 1
-
- })
- }
- });
- // this.anchor = new Feature({
- // geometry: new Point([104, 30])
- // });
- // console.log(this.anchor);
- // this.anchor.setStyle(new Style({
- // image: new Icon({
- // src: page,
- // anchor: [0.5, 1]
- // })
- // }));
- // this.layer.getSource().addFeature(this.anchor);
- // this.offlineMapLayer =new Image({
- // // source: new OSM()
- // source: new ImageStatic({
- // url: page, // 熊猫基地地图
- // imageExtent: this.extent // 映射到地图的范围
- // })
- // })
- this.vectorxx0 = new Vector({
- source: new VectorSource({
- format: new GeoJSON({
- geometryName: 'SHAPE'
- }),
- url: 'http://localhost:8089/geoserver/wordtest/wms?service=WMS&version=1.1.0&request=GetMap&layers=wordtest%3At_pots&bbox=103.07%2C29.67%2C105.07%2C31.67&width=768&height=768&srs=EPSG%3A404000&format=application/openlayers'
- }),
- style: function (feature, resolution) {
- return new Style({
- stroke: new Stroke({
- color: 'red',
- width: 1
- })
- });
- }
- });
- // this.map.addLayer(this.vectorxx0);
- /* 有关html运用*/
- // this.anchor = new Overlay({
- // element: document.getElementById('anchor')
- // });
- // // 关键的一点,需要设置附加到地图上的位置
- // this.anchor.setPosition([104, 30]);
- // this.map.addOverlay(this.anchor);
-
- this.map = new Map({
- target: "map",
- // logo: {src: '..\\png\\test.png'},
- layers: [
- // new TileLayer({
- // source: this.maps
- // }),
- // new TileLayer({
- // source: new TileDebug({
- // projection: 'EPSG:4326',
- // tileGrid: this.maps.getTileGrid()
- // })
- // })
- // this.layer
- // this.vectorxx1,
- // this.vectorxx2,
- // this.vectorxx3,
- // this.vectorxx4,
- // this.vectorxx5,
-
- ],
-
-
- view: new View({
- projection: "EPSG:4326", //使用这个坐标系
- // extent: [102, 29, 104, 31],
- // center: this.centers, //成都
- center: [104.06, 30.67],
- zoom: 6,
- minZoom: 4,
- maxZoom: 8,
- }),
-
- });
- this.wmsSource = new ImageWMS({
- crossOrigin: 'anonymous',
- params: {
- 'LAYERS': 'mysqlworkspace:city', //图层
- 'VERSION': '1.1.0',
- },
- serverType: 'geoserver',
- url: 'http://localhost:8089/geoserver/wms'
- });
- this.wmsLayer = new Image({
- source: this.wmsSource
- })
-
- // this.map.addLayer(this.vectorxx2)
- // this.map.addLayer(this.vectorxx3)
- // this.map.addLayer(this.vectorxx4)
- // this.map.addLayer(this.vectorxx5)
- // this.map.addLayer(this.vectorxx6)
- //
- // this.map.addLayer(this.vectorxx1)
- // this.map.addLayer(this.vectorxx7)
- // this.map.addLayer(this.vectorxx8)
- this.map.addLayer(this.vectorxx9)
- // this.map.addLayer(this.wmsLayer)
- // this.map.addLayer(this.openStreetMapLayer)
- },
- watch: {
- "map": function () {
- this.map.getView().on('change:resolution', function () {
- document.getElementById('zoom').innerHTML = this.getZoom() + ',';
- document.getElementById('resolution').innerHTML = this.getResolution();
- if(this.getZoom()==3){
- this.map.addLayer(this.vectorxx2)
- }
- // console.log(this.anchor);
- // this.styleicon = this.anchor.getStyle();
- //
- // // 重新设置图标的缩放率,基于层级10来做缩放
- // this.styleicon.getImage().setScale(this.getZoom() / 10);
- // this.anchor.setStyle(style);
- })
- },
-
-
- },
-
- methods: {
- deleteline() {
- // this.map.removeLayer(this.vectorxx5)
- console.log(this.map.getLayers())
- this.map.removeLayer(this.map.getLayers().item(4))
- console.log(this.map.getLayers())
- },
- toline() {
- this.getJson()
- console.log(this.map.getLayers())
- },
- fitToChengdu() {
- this.map.getView().fit([104, 30.6, 104.12, 30.74], this.map.getSize());
- },
- testvalue() {
- document.getElementById('anchor').innerHTML = "3"
- },
-
- //初始化weosocket
- initWebSocket() {
- const wsuri = "ws://localhost:8888/websocket";//ws地址
- this.websocket = new WebSocket(wsuri);
- this.websocket.onopen = this.websocketonopen;
- this.websocket.onerror = this.websocketonerror;
- this.websocket.onmessage = this.websocketonmessage;
- this.websocket.onclose = this.websocketclose;
- },
-
- websocketonerror() {
- console.log("WebSocket连接发生错误");
- },
- //连接成功建立的回调方法
- websocketonopen() {
- console.log("open");
- },
- //接收到消息的回调方法
- websocketonmessage(e) {
- //注意:长连接我们是后台直接1秒推送一条数据,
- //但是点击某个列表时,会发送给后台一个标识,后台根据此标识返回相对应的数据,
- //这个时候数据就只能从一个出口出,所以让后台加了一个键,例如键为1时,是每隔1秒推送的数据,为2时是发送标识后再推送的数据,以作区分
- console.log(e.data + " 00000000000000000000000000");
- // this.toline()
- this.getJsons()
-
- },
- getJson() {
- this.map.removeLayer(this.map.getLayers().item(4))
- // this.map.getView().setZoom(4)
-
- /* this.vectorxxre = new Image({
- source: new ImageWMS({
- format: new GeoJSON(),
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'mysqlworkspace:city10', 'VERSION': '1.1.0'},
- }),
- })*/
- this.baseLayer = new TileWMS({
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'mysqlworkspace:sqlpot', 'VERSION': '1.1.0'},
- serverType: 'geoserver'
- });
-
- this.vectorxxre = new TileLayer({
- source: this.baseLayer
- });
- console.log(this.vectorxxre + ".......................")
- this.map.addLayer(this.vectorxxre)
-
- },
- getJsons() {
- // window.location.reload();
- // this.map.removeLayer(this.map.getLayers().item(5))
- // this.map.removeLayer(this.map.getLayers().item(4))
- // this.line = new Image({
- // source: new ImageWMS({
- // crossOrigin: 'anonymous',
- // url: 'http://localhost:8089/geoserver/wms',
- // params: {'LAYERS': 'mysqlworkspace:line', 'VERSION': '1.1.0'},
- //
- // }),
- // // style: function(feature, resolution) {
- // // return new Style({
- // // stroke: new Stroke({
- // // color: 'blue',
- // // width: 1
- // // })
- // // });
- // // }
- // });
- // this.baseLayer = new TileWMS({
- // url: 'http://localhost:8089/geoserver/wms',
- // params: {'LAYERS': 'mysqlworkspace:sqlpot', 'VERSION': '1.1.0'},
- // serverType: 'geoserver'
- // });
- //
- // this.vectorxxre = new TileLayer({
- // source: this.baseLayer
- // });
- //
- // console.log(this.vectorxxre + ".......................")
- // this.map.addLayer(this.vectorxxre)
- // this.map.addLayer(this.line)
- this.wmsSources = new ImageWMS({
- crossOrigin: 'anonymous',
- params: {
- LAYERS: 'mysqlworkspace:sqlpot',
- 'VERSION': '1.1.0',
- },
- serverType: 'geoserver',
- url: 'http://localhost:8089/geoserver/wms'
- });
- this.wmsLayer.setSource(this.wmsSource);
- this.map.getView().setResolution(this.map.getView().getResolution() + Math.random() * 0.00000009);//随机数缩放实现刷新
-
- /* console.log(this.vectorxxre + ".......................")
- console.log(this.vectorxx5 + ".......................")
- /!* this.vectorxxre = new Image({
- source: new ImageWMS({
- format: new GeoJSON(),
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'mysqlworkspace:city10', 'VERSION': '1.1.0'},
- }),
- })*!/
- this.baseLayer = new TileWMS({
- url: 'http://localhost:8089/geoserver/wms',
- params: {'LAYERS': 'mysqlworkspace:sqlpot', 'VERSION': '1.1.0'},
- serverType: 'geoserver'
- });
- this.vectorxxre = new TileLayer({
- source: this.baseLayer
- });
- console.log(this.vectorxxre + ".......................")
- this.map.addLayer(this.vectorxxre)*/
- },
-
-
- websocketsend(agentData) {//数据发送
- this.websocket.send(agentData);
- },
- websocketclose(e) { //关闭
- console.log("connection closed (" + e.code + ")");
- },
-
- }
- }
- </script>
- <style>
- #map {
- height: 100%;
- }
-
- /*隐藏ol的一些自带元素*/
- .ol-attribution, .ol-zoom {
- display: none;
- }
-
- /*@keyframes zoom*/
- /*{*/
- /*from {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*50% {top: -16px; left: -16px; width: 64px; height: 64px;}*/
- /*to {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*}*/
-
- /*@-moz-keyframes zoom !* Firefox *!*/
- /*{*/
- /*from {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*50% {top: -16px; left: -16px; width: 64px; height: 64px;}*/
- /*to {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*}*/
-
- /*@-webkit-keyframes zoom !* Safari 和 Chrome *!*/
- /*{*/
- /*from {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*50% {top: -16px; left: -16px; width: 64px; height: 64px;}*/
- /*to {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*}*/
-
- /*@-o-keyframes zoom !* Opera *!*/
- /*{*/
- /*from {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*50% {top: -16px; left: -16px; width: 64px; height: 64px;}*/
- /*to {top: 0; left: 0; width: 32px; height: 32px;}*/
- /*}*/
-
- /*!* 应用css动画到图标元素上 *!*/
- /*#anchor*/
- /*{*/
- /*display: block;*/
- /*position: absolute;*/
- /*animation: zoom 5s;*/
- /*animation-iteration-count: infinite; !* 一直重复动画 *!*/
- /*-moz-animation: zoom 5s; !* Firefox *!*/
- /*-moz-animation-iteration-count: infinite; !* 一直重复动画 *!*/
- /*-webkit-animation: zoom 5s; !* Safari 和 Chrome *!*/
- /*-webkit-animation-iteration-count: infinite; !* 一直重复动画 *!*/
- /*-o-animation: zoom 5s; !* Opera *!*/
- /*-o-animation-iteration-count: infinite; !* 一直重复动画 *!*/
- /*}*/
- input {
- float: left;
- color: red;
- }
-
- span {
- float: left;
- font-size: 15px;
- color: red;
- }
-
- div {
-
-
- }
- </style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。