最開始使用webpack進行cesium 集成, 出现了问题一大堆,最后只好选择传统的方法直接引入了,具体操作如下

一、安装cesium

首选创建一个测试项目 vue create vue-join-cesium

然后直接cd 到项目目录 ,使用npm 直接拉取cesium

$ npm install cesium --save

安装成功后会在 node_modules 下 看见一个cesium的目录

二、项目引用

1、切换到 node_modules/cesium/Build/ 目录

2、将Cesium拷贝到项目中的 public 目录下

3、在index.html引入 js 与css

4、修改HelloWorld.vue

export default {

data () {

return {

viewer :'',

tileset: '',

}

},

mounted (){

//103.37324413479338, 29.544684360197113

var initialLon = 103.37324413479338;

var lat = 29.544684360197113;

var height = 10.0;

// // 创建viewer实例

this.viewer = new Cesium.Viewer('cesiumContainer', {

// 需要进行可视化的数据源的集合

animation: false, // 是否显示动画控件

shouldAnimate: true,

homeButton: false, // 是否显示Home按钮

fullscreenButton: false, // 是否显示全屏按钮

baseLayerPicker: true, // 是否显示图层选择控件

geocoder: false, // 是否显示地名查找控件

timeline: false, // 是否显示时间线控件

sceneModePicker: true, // 是否显示投影方式控件

navigationHelpButton: false, // 是否显示帮助信息控件

infoBox: false, // 是否显示点击要素之后显示的信息

requestRenderMode: true, // 启用请求渲染模式

scene3DOnly: false, // 每个几何实例将只能以3D渲染以节省GPU内存

sceneMode: 3, // 初始场景模式 1 2D模式 2 2D循环模式 3 3D模式 Cesium.SceneMode

fullscreenElement: document.body, // 全屏时渲染的HTML元素 暂时没发现用处

})

// 去除版权信息

this.viewer._cesiumWidget._creditContainer.style.display = 'none'

// 将经纬度转换为世界坐标

var target = Cesium.Cartesian3.fromDegrees(initialLon, lat, height);

var offset = new Cesium.Cartesian3(-70.06, -68.64, 6.0908)

this.viewer .scene.camera.lookAt(target, offset);

}

}

.test-cesium{

width: 100%;

height: 100%;

}

5、修改 package.json

如果使用了eslint 会提示 Cesium 未定义,需要修改 package.json,设置no-undef

6、现在运行看看效果

三、使用Geoserve 发布地图服务

上面虽然加载cesium成功了,但是我们最终是为了加载一个本地的切片,所以还需要借助Geoserve

然后点击 geoserver-2.3.2.exe 进行安装

安装成功后,在如下目录启动Geoserver

然后浏览器 输入http://localhost:28080/geoserver/web ,输入安装时的用户名和密码登录

有关shpe 文件的发布请参考 https://blog.csdn.net/sharetm/article/details/54931096 ,这里主要讲一下发布 arcgis 切片

将上面 云盘 下载的 geowebcache.rar 解压到 webapps目录下

然后在 geowebcache 目录下创建一个 arcgis 用来缓存 arcgis相关切片

同时找到 web.xml

打开 web.xml 在 下增加如下代码

GEOWEBCACHE_CACHE_DIR

D:\develop\GeoServer 2.3.2\webapps\geowebcache\arcgis

然后重启 geoserver 会发现 刚才创建的 arcgis 下多了好几个文件

然后打开这 geowebcache.xml 文件 在 ... 之间新增 arcgis 切片的目录如下

.... 省略其他的

fsRoads

D:\YLKJPro\testSource\leshan_ArcGis\conf.xml

D:\YLKJPro\testSource\leshan_ArcGis\_alllayers

false

fsRoads为服务名,GeoWebCache服务页面中可看到改名字,这里随便起的。conf.xml就是ArcGIS Server发布服务设置缓存后生成的配置文件,该目录就是瓦片所在目录,是不是很眼熟?

然后录入 localhost:28080/geowebcache/home 会看将如下页面,

再点击 红箭头的地方, 会进入第二个页面,看如下红箭头的地方就是fsRoads 这里配置的

然后我们点击红框的 [png] 会进入如下的页面,这个就是我们服务发布的地址了

切记 不能直接拷贝这个网页上的url作为 cesium 调用服务的地址

如:

var layers = this.viewer.scene.imageryLayers;

let arcgis_layer = new Cesium.WebMapTileServiceImageryProvider({

url: 'http://localhost:28080/geowebcache/demo/fsRoads',

layer : 'EPSG:4326_fsRoads',

style : 'default',

tileMatrixSetID : 'fsRoads',

format : 'image/png'

});

layers.addImageryProvider(arcgis_layer);

这样不管怎么搞都访问不到滴,

其实真实的服务地址在 wmts-getcapabilities.xml 中,根据如下步骤下载 该xml文件打开,在脚底就是所需服务地址(当初因为不明白这个,自己搞了好几个小时都没对,)

根据如上图我们获得了服务地址和参数,所以将调用方法修改如下

var layers = this.viewer.scene.imageryLayers;

let arcgis_layer = new Cesium.WebMapServiceImageryProvider({

url: "http://localhost:28080/geowebcache/service/wms",

layers: 'EPSG:4326_fsRoads',

parameters: {

'LAYERS': 'fsRoads',

'FORMAT': 'image/png',

'SRS': 'EPSG:4326',

'VERSION': '1.1.1'

}

});

layers.addImageryProvider(arcgis_layer);

这里还需要注意 跨域 问题 ,根据下面的操作解决跨域问题

四、 解决cesium加载资源不允许跨越问题

1、将cors-filter-2.4.jar和java-property-utils-1.9.1.jar,两个jar包文件放入geoserver目录下webapps\geoserver\web-inf\lib中。

2、打开geoserver目录下webapps\geoserver\web-inf中的web.xml

3、添加过滤器代码:

CORS

com.thetransactioncompany.cors.CORSFilter

4、添加过滤器路由代码:

CORS

/*

5、添加完毕后,重启geoserver

6、如果目录中存在maven,需要在pom.xml中,添加

com.thetransactioncompany

cors-filter

[ version ]

注意 geowebcache 也需要进行如上几步配置 如图

五、最终效果呈现

另外使用 tomcat + GeoServer War包 和 GeoWebCache War包 来发布 服务其实步骤差不多,在官网下载war 放到webapps中重新运行tomcat,然后根据如上配置步骤配置即可;也可以参考https://blog.csdn.net/lynchee/article/details/87978099

官网地址

geoserver war http://geoserver.org/release/2.14.2/

geowebcache war https://sourceforge.net/projects/geowebcache/files/geowebcache/1.16.1/

arcgis xml 下载 切片_vue/cli3整合Cesium,加载离线arcgis 切片相关推荐

  1. cesium加载离线tms切片

    1.软件环境:太乐地图下载器4.9破解版:Cesium-1.44 2.太乐地图下载器上下载切片,范围是-180,180,-90,90,导出选择 瓦片:TMS,图片格式选择png 3.修改tile.xm ...

  2. Cesium加载离线地图

    Cesium加载离线地图 一.下载地图并导出为tms格式 二.安装nginx并配置静态文件服务路径 一.下载地图并导出为tms格式 利用地图下载器下载相关范围的地图,然后导出为tms格式的地图切片 二 ...

  3. Cesium加载离线地图和离线地形

    文章目录 前言 一.Cesium加载离线地图 1.1 下载数据 2.2 数据处理 2.3 地图发布 2.4下载速度改进 二.Cesium加载离线地形 2.1 下载数据 2.2 数据处理 2.3 地形发 ...

  4. Cesium 加载离线地图服务

    Cesium 可以加载自定义的地图服务,一般在私有云上应用比较广. 原始地图数据有很多地方都可以下载.比如常用的下载工具,付费的有水经注.91助手等,还有国家空间地理服务的官网上也有可用的数据.假设你 ...

  5. Cesium 加载 离线的天地图影像瓦片

    Cesium 加载 离线的天地图影像瓦片 一.下载 天地图影像 通过水经注软件下载天地图影像(也许有其他下载方式). 1.下载 水经注软件 链接:http://www.rivermap.cn/down ...

  6. cesium加载离线地形图和瓦片图

    瓦片的离线数据找了好久,才找到这个宝藏下载器. 地形数据参考文章,地形数据地理,下载完成需要用cisuimlab进行切片转换. https://blog.csdn.net/zhh763984017/a ...

  7. Openlayers加载离线地图Arcgis瓦片

    文章目录 一.介绍 二.快速入门 一.下载地图瓦片 二.OpenLayers加载离线Arcgis瓦片 一.介绍 OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类 ...

  8. Cesium加载ArcGIS的PBF矢量切片服务

    Cesium 加载 ArcGIS 的 PBF 矢量切片服务 矢量切片(Vector Tiles) 在 Cesium 中,我们使用的地图服务均为传统的栅格切片服务.即在服务端渲染好图片并进行切片,客户端 ...

  9. Cesium加载模型两种方式

    Cesium加载模型两种方式 代码如下 <!DOCTYPE html> <html><head><meta charset="UTF-8" ...

最新文章

  1. ORB_SLAM2 定位模式
  2. laravel5.5的定时任务详解(demo)
  3. 最常见的读入数据方法集锦
  4. UmiJS CDN 部署之 publicPath
  5. [bzoj3625][Codeforces Round #250]小朋友和二叉树 (生成函数)
  6. Paypal 在线支付接口应用从零开始,第2节,[支付API原理及流程]
  7. 软件测试知识产权保护,一种软件测试方法及软件测试系统专利_专利申请于2017-09-07_专利查询 - 天眼查...
  8. 95-241-100-源码-Flink语义-Flink的exectly-once系列之两阶段提交概述
  9. 【Java】springboot的学习第二天
  10. Android自定义ScrollBar,android自定义View之垂直的滚动条
  11. SchoolTool:先进的学院管理和信息系统
  12. 如何将安卓数据同步到Mac电脑上
  13. docker 下使用 Hyperf(win10)
  14. 不平衡数据集_我们的不平衡数据集
  15. 步进电机正反转实验_电机正反转控制电路图原理图解
  16. 在线图片尺寸怎么修改?图片在线修改尺寸大小方法
  17. Spatiotemporal Multi-Graph Convolution Network for Ride-Hailing Demand Forecasting
  18. 形而上者谓之道,形而下者谓之器(java 多态、泛型)
  19. 关闭Windows Defender Service工具
  20. Android应用生命周期实现简单的秒表App

热门文章

  1. Python 标准库之 fcntl
  2. Git常见问题解决方案指北
  3. 二元学习法3.0:三把学习大剑,打通学习的底层密码_学习方法
  4. tf.reduce_sum()函数
  5. 适用于Windows和Linux的Yolo-v3和Yolo-v2(上)
  6. Android系统的启动过程
  7. CapsuleNet(了解)
  8. java gui 案例_JavaGui入门—布局的嵌套使用附实例
  9. C++ 字符串字母大小写转换
  10. Ubuntu 系统安装.deb安装包