当前位置: 首页 > news >正文

php开源订单管理系统杭州seo薪资水平

php开源订单管理系统,杭州seo薪资水平,wordpress返现,wordpress过FTP更新项目快要上线了#xff0c;出乎意料的有些空闲时间。想着就把其他公司开发的一期代码里面#xff0c;把关于地图方面的代码给优化一下。试运行的时候#xff0c;客户说控制台有很多飘红的报错#xff0c;他们很在意#xff0c;虽然很不情愿#xff0c;但能改的就给改了吧…项目快要上线了出乎意料的有些空闲时间。想着就把其他公司开发的一期代码里面把关于地图方面的代码给优化一下。试运行的时候客户说控制台有很多飘红的报错他们很在意虽然很不情愿但能改的就给改了吧。 代码框架 使用的是VUE框架 vue 2.x 版本的使用vue-cli脚手架进行搭建的。在package.json中arcgis的版本为arcgis/core: ^4.23.1 使用到的第三方库  dependencies: {arcgis/core: ^4.23.1,axios: 0.18.1,core-js: 3.6.5,echarts: ^4.5.0,echarts-gl: 1.0.0-beta.6,echarts-liquidfill: ^2.0.6,element-ui: 2.15.7,events: ^3.3.0,js-cookie: 2.2.0,lodash: ^4.17.21,moment: ^2.29.1,normalize.css: 7.0.0,nprogress: 0.2.0,path-to-regexp: 2.4.0,qrcodejs2: ^0.0.2,screenfull: ^4.2.1,vue: 2.6.10,vue-i18n: ^8.18.2,vue-router: 3.0.6,vuex: 3.1.0},devDependencies: {vue/cli-plugin-babel: 4.4.4,vue/cli-plugin-eslint: 4.4.4,vue/cli-service: 4.4.4,autoprefixer: 9.5.1,babel-eslint: 10.1.0,babel-plugin-dynamic-import-node: 2.3.3,chalk: 2.4.2,connect: 3.6.6,eslint: 6.7.2,eslint-plugin-vue: 6.2.2,html-webpack-plugin: 3.2.0,mockjs: 1.0.1-beta3,runjs: 4.3.2,sass: 1.26.8,sass-loader: 8.0.2,script-ext-html-webpack-plugin: 2.1.3,serve-static: 1.13.2,svg-sprite-loader: 4.1.3,svgo: 1.2.2,vue-template-compiler: 2.6.10} 地图封装 将ArcGIS封装成一个组件专门用来加载地图一些事件分发处理。 DOM  templatediv stylewidth:100%;height:100%div idmap :stylesty/div/div /template Style #map {height: calc(100vh); } 事件注册 在main.js中需要进行一个事件总线的注册 Vue.prototype.$mapEventBus new Vue() 然后在utils文件夹中创建一个文件专门放置一些用得到的事件。比如这个文件名称为mapEvent.js export default {cleanOverlay: cleanOverlay,hideDike: hideDike,showDikes: showDikes,showBillboard: showBillboard,/** 改变图层可见性 */changeLayerVisible: changeLayerVisible } 这里面就是一些事件类型比如清除隐藏堤坝显示堤坝显示广告牌改变图层可见性等等。 然后在封装的时候引入这个文件。 import mapEvent from /utils/mapEvent 当后续想添加事件统一名称就行不用来回在用到的地方去改字符串了。最好能从名称看出用途。随后就是对事件总线进行事件注册和监听。 this.$mapEventBus.$on(mapEvent.cleanOverlay, (data) {// 执行某些方法})this.$mapEventBus.$on(mapEvent.hideDike, (data) {// 执行某些方法})this.$mapEventBus.$on(mapEvent.showDikes, (data) {// 执行某些方法})this.$mapEventBus.$on(mapEvent.showBillboard, (data) {// 执行某些方法}) 当这些注册好之后只要有其他页面使用emit进行事件发送那么就能拿到传递的data参数再去执行对应的代码逻辑。某个页面触发hideDike和showBillboard为例。 this.$mapEventBus.$emit(mapEvent.hideDike) this.$mapEventBus.$emit(mapEvent.showBillboard, [layer, 78, rain]) 场景View 地图该有的事件总线注册完毕之后就可以开始创建地图了首先引入Map对象创建一个地图对象。再根据需要的场景创建对应的视图View平面2D和立体3D是有不同的View对象的。 import Map from arcgis/core/Map import SceneView from arcgis/core/views/SceneView; import MapView from arcgis/core/views/MapView;const m new Map({ground: world-elevation,basemap: topo-vector })// 3D场景的话使用SceneViewscene new SceneView({container: map,map: m,zoom: 9,center: [中心坐标值, 中心坐标值],})// 普通地图场景的话使用MapViewview new MapView({container: map,map: m,zoom: 10,center: [中心坐标值, 中心坐标值],}) 图层加载 地图map创建好之后开始为地图设置对应显示的layer。这里以天地图为例图层类型有很多种很多配置都是相同唯独一些type值不同因此封装成一个方法function。下面的示例是加载WebTileLayer的一些简易封装配置将其写在tdt.js中。wkid为参考坐标系ArcGIS的官网有对这个值的解释有特殊坐标系的场景或者百度坐标系高德坐标系这些值可能都需要更改。 切片信息可以单独写在一个js文件中tdtconfig.js与tdt.js同级目录 export default {tileInfo: {rows: 256,cols: 256,origin: {x: -20037508.342787,y: 20037508.342787,},compressionQuality: 0,spatialReference: {wkid: 102113},lods: [{endTileCol: 31,endTileRow: 31,level: 5,resolution: 4891.96981024998,scale: 18489297.737236,startTileCol: 0,startTileRow: 0,},{endTileCol: 63,endTileRow: 63,level: 6,resolution: 2445.98490512499,scale: 9244648.868618,startTileCol: 0,startTileRow: 0,},{endTileCol: 127,endTileRow: 127,level: 7,resolution: 1222.992452562495,scale: 4622324.434309,startTileCol: 0,startTileRow: 0,},{endTileCol: 255,endTileRow: 255,level: 8,resolution: 611.4962262812475,scale: 2311162.2171545,startTileCol: 0,startTileRow: 0,},{endTileCol: 511,endTileRow: 511,level: 9,resolution: 305.74811314062373,scale: 1155581.10857725,startTileCol: 0,startTileRow: 0,},{endTileCol: 1023,endTileRow: 1023,level: 10,resolution: 152.87405657031186,scale: 577790.554288625,startTileCol: 0,startTileRow: 0,},{endTileCol: 2047,endTileRow: 2047,level: 11,resolution: 76.43702828515593,scale: 288895.2771443125,startTileCol: 0,startTileRow: 0,},{endTileCol: 4095,endTileRow: 4095,level: 12,resolution: 38.218514142577966,scale: 144447.63857215625,startTileCol: 0,startTileRow: 0,},{endTileCol: 8191,endTileRow: 8191,level: 13,resolution: 19.109257071288983,scale: 72223.81928607813,startTileCol: 0,startTileRow: 0,},{endTileCol: 16383,endTileRow: 16383,level: 14,resolution: 9.554628535644492,scale: 36111.909643039064,startTileCol: 0,startTileRow: 0,},{endTileCol: 32767,endTileRow: 32767,level: 15,resolution: 4.777314267822246,scale: 18055.954821519532,startTileCol: 0,startTileRow: 0,},{endTileCol: 65534,endTileRow: 65534,level: 16,resolution: 2.388657133911123,scale: 9027.977410759766,startTileCol: 0,startTileRow: 0,},{endTileCol: 131069,endTileRow: 131069,level: 17,resolution: 1.1943285669555614,scale: 4513.988705379883,startTileCol: 0,startTileRow: 0,},{endTileCol: 262138,endTileRow: 262138,level: 18,resolution: 0.5971642834777807,scale: 2256.9943526899415,startTileCol: 0,startTileRow: 0,}]}, } 然后在tdt.js中引入这个切片信息配置。  import WebTileLayer from arcgis/core/layers/WebTileLayer; import SpatialReference from arcgis/core/geometry/SpatialReference; import Extent from arcgis/core/geometry/Extent; import tileInfo from ./tdtconfig;function tdtLayer(type,visible){const url http://t0.tianditu.gov.cn/${type}_w/wmts?SERVICEWMTSREQUESTGetTileVERSION1.0.0LAYER${type}STYLEdefaultTILEMATRIXSETwTILEMATRIX{level}TileRow{row}TileCol{col}formattilestk${天地图的token};const tiledLayer new WebTileLayer({urlTemplate: url,subDomains: [t0, t1, t2, t3, t4, t5, t6, t7],spatialReference: new SpatialReference({wkid: 102113,}),fullExtent: new Extent({xmax: 20038088.3427892,xmin: -20038088.3427892,ymax: 20038088.3427892,ymin: -20038088.3427892,spatialReference: {wkid: 102113}}),initialExtent: new Extent({xmax: 13211664.142019678,xmin: 13077211.409266088,ymax: 2843822.418908416,ymin: 2810801.622689228,spatialReference: {wkid: 102113}}),tileInfo: tileInfo.tileInfo,visible});return tiledLayer; }export {tdtLayer, } 在正式使用的时候引入这个tdt.js文件使用其中的tdtLayer方法。可以通过传递不同的字符串去加载不同类型的图层。比如vec,cva,img,cia,ter,cta。通过visible的布尔类型值控制加载时的显示与隐藏。还可以考虑增加一个参数来控制是否需要设置透明度opacity。 在原先他们一期的项目中是没有多加visible的他们在创建完成之后手动设置layer.visible的值为false。其实这个可以在创建layer的时候就指定好。他们甚至还主动设置对应的layer.id值我看了一下ArcGIS的官网其实应该可以通过title来设置id值的我还没主动尝试过。 这些图层通过tdtLayer创建完成后便可以通过之前的地图对象m来进行批量添加了。 const layer1 tdtLayer(vec); const layer2 tdtLayer(cva); const layer3 tdtLayer(img); const layer4 tdtLayer(cia); const layer5 tdtLayer(ter); const layer6 tdtLayer(cta); m.layers.addMany([layer3, layer4]) m.layers.addMany([layer1, layer2, layer5, layer6])
http://www.yayakq.cn/news/2299/

相关文章:

  • 中山市建设局安全监督站网站江苏建设人才无纸化考核网站
  • 做任务反佣金的网站wordpress 仿简书
  • 网站没被收录上海做建材上什么网站好
  • 公司营业执照可以做几个网站wordpress 忘记用户名密码
  • 网站由什么构成游戏app软件开发多少钱
  • 网站建设运维合同怎么做网页作业
  • 马鞍山专业网站制作大连网页设计培训学校
  • 做外贸兼职的网站设计软件开发工程师的就业前景
  • 深圳网站营销推广公司营销型网站重要性
  • 网站开发文档范例国信网络模版网站建设方案相关
  • 网站报错401校园风景网页设计图片
  • 龙岗附近网站建设东莞app开发商
  • 百度建网站要多少钱自己做的网站谁来维护
  • 英文购物网站模板珠海网站建设怎么样
  • 网站开发技术服务费合同范本目前最新的营销模式有哪些
  • 大型网站 解决方案 技术注册公司的条件和费用
  • 程序员做游戏还是做网站好互联网门户网站
  • 1688做网站多少钱做网站软件 手机
  • 湖南省工程建设信息官方网站胶州网站建设平台
  • 微信公众号可以做微网站商城网站建设4262
  • 网站移动端优化工具乐清柳市阿里巴巴做网站的
  • 克隆网站模板重庆网站建设公司招聘
  • 免费下载建设银行官方网站下载做标签这个网站刷单安全吗
  • 简单免费自建网站365网站建设
  • 门户建设网站多少钱酒店网站如何做
  • 做产品网站信息网站制作
  • 厦门制作企业网站哈尔滨 网站建设公司
  • 做外贸网站哪家效果好wordpress当中加入论坛
  • 上海网站推广找哪家手车做网课网站多少
  • 免费网站模板软件如何寻找客户