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

学网站建设课程贵阳做网站的大公司

学网站建设课程,贵阳做网站的大公司,太原手机微网站建设,crm免费客户管理系统概述 质量不够#xff0c;数量来凑#xff0c;没错#xff0c;本文就是来凑数的。前面的几篇文章实现了楼栋与楼层单体化的展示、室内地图的展示#xff0c;本文结合前面的几篇文章#xff0c;做一个综合的展示效果。 实现效果 实现 1. 数据处理 要实现上图所示的效果…概述 质量不够数量来凑没错本文就是来凑数的。前面的几篇文章实现了楼栋与楼层单体化的展示、室内地图的展示本文结合前面的几篇文章做一个综合的展示效果。 实现效果 实现 1. 数据处理 要实现上图所示的效果核心是结合框架的使用对数据进行处理。 定义楼层数、楼层高度、楼顶高度 const floorNums 10, floorHeight 20, floorTop 2楼栋的数据需要处理楼层和楼顶 // 楼栋的边界数据 const coords [ [ [ 113.885632905452397, 22.552818892926712 ], [ 113.885771878698918, 22.553046303693751 ], [ 113.886302503822009, 22.553484279985827 ], [ 113.887106864127674, 22.554212836702447 ], [ 113.887443768967728, 22.554246527186454 ], [ 113.888075465542826, 22.55364430978485 ], [ 113.888214438789362, 22.553412687707311 ], [ 113.890008457062649, 22.551715529575528 ], [ 113.889991611820648, 22.55150075273999 ], [ 113.88778909642879, 22.549538282046655 ], [ 113.88754484041975, 22.549454055836641 ], [ 113.887182667716687, 22.549407731421134 ], [ 113.886353039548055, 22.54956776122016 ], [ 113.885784512630451, 22.549727791019198 ], [ 113.88556552448442, 22.550098386343258 ], [ 113.885632905452397, 22.552818892926712 ] ] ] // 楼梯要素集包括楼层和楼顶 let features [] for (let i 0; i floorNums; i) {const baseH i * floorHeight,topH baseH floorHeight,h topH - floorTop// 楼层数据features.push({type: Feature,properties: {height: h, baseHeight: baseH, type: building, floor: i},geometry: { type: Polygon, coordinates: coords }})// 楼顶数据features.push({type: Feature,properties: {height: topH, baseHeight: h, type: top, floor: i},geometry: { type: Polygon, coordinates: coords }}) }弹出楼层的数据处理 // 楼里商户的数据 let coordsRooms [[ [ [ 113.88576766738845, 22.55132808900947 ], [ 113.88689629860265, 22.55132808900947 ], [ 113.888041775058838, 22.550081541101257 ], [ 113.887629066629771, 22.549550915978166 ], [ 113.887283739168709, 22.549525648115164 ], [ 113.886070881744502, 22.549727791019198 ], [ 113.885708709041452, 22.550089963722261 ], [ 113.88576766738845, 22.55132808900947 ] ] ],[ [ [ 113.888269185825877, 22.550536362635334 ], [ 113.888134423889866, 22.550511094772332 ], [ 113.887805941670806, 22.550789041265379 ], [ 113.887014215296674, 22.55160603550252 ], [ 113.886129840091513, 22.551597612881515 ], [ 113.885936119808491, 22.551841868890559 ], [ 113.885986655534495, 22.552692553611703 ], [ 113.886331982995557, 22.552540946433677 ], [ 113.887090018885687, 22.552321958287639 ], [ 113.887511149935747, 22.551892404616567 ], [ 113.887991239332834, 22.551437583082489 ], [ 113.888505019213923, 22.550949071064405 ], [ 113.888715584738961, 22.550957493685406 ], [ 113.888724007359954, 22.55067954719236 ], [ 113.8883871025199, 22.550452136425321 ], [ 113.888269185825877, 22.550536362635334 ] ] ],[ [ [ 113.886171953196524, 22.55290311913674 ], [ 113.887014215296674, 22.553736958615882 ], [ 113.887300584410724, 22.553602196679858 ], [ 113.887595376145768, 22.55366115502687 ], [ 113.889541001597095, 22.551791333164548 ], [ 113.889322013451064, 22.551504964050501 ], [ 113.88943150752408, 22.551353356872475 ], [ 113.889119870547034, 22.551142791347438 ], [ 113.888841924053978, 22.551125946105437 ], [ 113.887704870218784, 22.552246154698626 ], [ 113.887755405944802, 22.552473565465665 ], [ 113.887477459451745, 22.552642017885695 ], [ 113.886972102191663, 22.552515678570675 ], [ 113.886281447269539, 22.552768357200716 ], [ 113.886171953196524, 22.55290311913674 ] ] ] ] // 计算偏移量对楼体数据和商户数据进行处理 let lon [] coords[0].forEach(([x, y]) {lon.push(x) }) lon lon.sort((a, b) a - b) const deltX lon[lon.length - 1] - lon[0] const coordsHighlight [coords[0].map(([x, y]) [x - deltX, y]) ] coordsRooms coordsRooms.map(coordsRoom {return coordsRoom.map(_coords {return _coords.map(_coord {const [x, y] _coordreturn [x - deltX, y]})}) }) // 弹出楼层要素集 let featuresH [] for (let i 0; i floorNums; i) {const baseH i * floorHeight,topH baseH floorHeight,h topH - floorTop// 楼层底部const feature {type: Feature,properties: {height: baseH floorTop, baseHeight: baseH, floor: i, type: -1},geometry: { type: Polygon, coordinates: coordsHighlight }}featuresH.push(feature)// 楼的墙const featureWall turf.difference(turf.buffer(feature, 0.001), feature)featureWall.properties {height: h, baseHeight: baseH, floor: i, type: -1}featuresH.push(featureWall)// 商户coordsRooms.forEach((coordsRoom, index) {featuresH.push({type: Feature,properties: {height: h, baseHeight: baseH floorTop, floor: i, type: index, id: floor i index},geometry: { type: Polygon, coordinates: coordsRoom }})}) }2. 添加source和layer // 楼栋 map.addSource(building, {type: geojson,data: {type: FeatureCollection,features: features} }); // 弹出楼 map.addSource(building-hightlight, {type: geojson,data: {type: FeatureCollection,features: featuresH} }); map.loadImage(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAMAAACDi47UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODEwRDA1MjcyOUQxMTFFRTkxMjdDMDAyNjdBOUYwNjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODEwRDA1MjgyOUQxMTFFRTkxMjdDMDAyNjdBOUYwNjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MTBEMDUyNTI5RDExMUVFOTEyN0MwMDI2N0E5RjA2NCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4MTBEMDUyNjI5RDExMUVFOTEyN0MwMDI2N0E5RjA2NCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhZsMswAAAI0UExURbWggqmWf7CbgLWfgLSghLSega2XepuMeLCafpKCb7CafMWukZ6PerWhgayUd6yUeK2Xe7kg66afLmjg7ulg7WdgbnibaegbSghayZfcq1l8u2lsSqirSegq2Yfcizla2Zf8ewjqybg7WggMSsiq2ZfrWghLWihpGDc8OqjK6bf7OegLCehraef7OegYl2Y6dgrKdhJqJdq2bg458aMOpicClgrqkio9/a6qXfaeWfrejh7qnjLOcfbOaeamVfrGbfbSfhaKQebCaerGcgWVdVbKbf8uzkMmykaSTeMWujsiykqqUdsevjLihgqeVgqiUg6uTdbOce8OriVBLRllSS8ixlK6Xeq6ZgMCoh8WvkbSafcivirahgqmXgMKskbehhKdgbWiib2nhr6nhqmXgayVdqZgaafbiig7ehgbaggKeUfrGdgK2ZfLSff6ubh6yYfrSgg7WhiZmHdcSrjJiKdrOfgYV1Y76lgbKcf7KghLKegLCbg9jAnLGgidW8mLCafcGqiaqYgcCsirqjhrCZeaficqzl7yjgr6oibahhqCQfLqkh7Gdf7efgKaOc7Seg62VeKGQerqkhcSrjcOqiZiHcrSggaWUe6CPfKqahYJyYpGCcJ6PfMCnhbGafebNqYt6aayTds66nrKdgq6Ye8SqiL6mg6aSer6niLaig5qJdbahhLGafMStjqyXeHFnW66YepPe8GujZWEb5GCbJGAbKOPebeli5WDb7ukgqliIEAAADgSURBVHjaANIALf8AVHgoMnR2Cay2nbovt5e1NDicolUAQn6KGyG0Y0d1SE2nllNkeSSFXEkAmlYYYFgqDWlnmJStsFFAsgjFJkAB0s3PLlzRIEGLhNrbz2GFxCQgowABxpiJwQZIFtDHS0BSOuEo4VXwkADKRhADBoXQOPi6YAAAKgZgSSapMAnh8CfSZBO20KenyrA0YGCAVMu14As4gle3GlkSseDo1OCghSV25yhDoAOaFaShYLryk1EZUcNlmJn6iqgHcARSxsUJt/h3A/AWUzIoNPAam4MbECDAD9/kTiL2dgUgAAAABJRU5ErkJggg, function (error, image) {if (error) throw error;map.addImage(building-wl, image);// 楼栋map.addLayer({id: 3d-buildings,source: building,type: fill-extrusion,filter: [, [get, type], building],paint: {fill-extrusion-color: #ffffff,fill-extrusion-pattern: building-wl,fill-extrusion-height: [get, height],fill-extrusion-base: [get, baseHeight],fill-extrusion-opacity: 1}});// 楼顶map.addLayer({id: 3d-buildings-top,source: building,type: fill-extrusion,filter: [, [get, type], top],paint: {fill-extrusion-color: [match,[get, floor],floorNums, #bbb4ab,#ffffff],fill-extrusion-height: [get, height],fill-extrusion-base: [get, baseHeight],fill-extrusion-opacity: 1}});// 弹出楼map.addLayer({id: 3d-buildings-highlight,source: building-hightlight,type: fill-extrusion,filter: [, [get, floor], -1],paint: {fill-extrusion-color: [match,[get, type],0, #f00,1, #0f0,2, #00f,#bbb4ab],fill-extrusion-height: [get, height],fill-extrusion-base: [get, baseHeight],fill-extrusion-opacity: 0.5}});// 点击高亮商户map.addLayer({id: 3d-buildings-highlight-click,source: building-hightlight,type: fill-extrusion,filter: [, [get, id], ],paint: {fill-extrusion-color: #0ff,fill-extrusion-height: [get, height],fill-extrusion-base: [get, baseHeight],fill-extrusion-opacity: 1}});// 楼底map.addLayer({id: 3d-buildings-highlight-bottom,source: building-hightlight,type: fill-extrusion,filter: [, [get, floor], -1],paint: {fill-extrusion-color: [match,[get, type],-1, #bbb4ab,#0f0,],fill-extrusion-height: [get, height],fill-extrusion-base: [get, baseHeight],fill-extrusion-opacity: 1}}); })3. 添加交互 map.on(click, e {const features map.queryRenderedFeatures(e.point);if(features.length 0) {map.setFilter(3d-buildings, [!, [get, floor], -1])map.setFilter(3d-buildings-highlight, [, [get, floor], -1])map.setFilter(3d-buildings-highlight-bottom, [, [get, floor], -1])} }) map.on(click, 3d-buildings-highlight, e {const { properties } e.features[0]if(properties.type ! -1) {map.setFilter(3d-buildings-highlight-click, [, [get, id], properties.id])let html for (const propertiesKey in properties) {html divb${propertiesKey}:/b${properties[propertiesKey]}/div}const popup new mapboxgl.Popup().setLngLat(e.lngLat).setHTML(html).addTo(map);popup.on(close, () {map.setFilter(3d-buildings-highlight-click, [, [get, id], ])})} }) map.on(click, 3d-buildings, e {const { properties } e.features[0]map.setFilter(3d-buildings, [!, [get, floor], properties.floor])map.setFilter(3d-buildings-highlight, [all, [, [get, floor], properties.floor], [!, [get, type], -1]])map.setFilter(3d-buildings-highlight-bottom, [all, [, [get, floor], properties.floor], [, [get, type], -1]]) })
文章转载自:
http://www.morning.rjxwq.cn.gov.cn.rjxwq.cn
http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn
http://www.morning.leboju.com.gov.cn.leboju.com
http://www.morning.fyglr.cn.gov.cn.fyglr.cn
http://www.morning.gtqx.cn.gov.cn.gtqx.cn
http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn
http://www.morning.srsln.cn.gov.cn.srsln.cn
http://www.morning.syxmx.cn.gov.cn.syxmx.cn
http://www.morning.tpnch.cn.gov.cn.tpnch.cn
http://www.morning.newfeiya.com.cn.gov.cn.newfeiya.com.cn
http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn
http://www.morning.lqklf.cn.gov.cn.lqklf.cn
http://www.morning.dpgdj.cn.gov.cn.dpgdj.cn
http://www.morning.rwrn.cn.gov.cn.rwrn.cn
http://www.morning.nlgmr.cn.gov.cn.nlgmr.cn
http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn
http://www.morning.zrgdd.cn.gov.cn.zrgdd.cn
http://www.morning.rhjsx.cn.gov.cn.rhjsx.cn
http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn
http://www.morning.tymwx.cn.gov.cn.tymwx.cn
http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn
http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn
http://www.morning.phtqr.cn.gov.cn.phtqr.cn
http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn
http://www.morning.bqwnp.cn.gov.cn.bqwnp.cn
http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn
http://www.morning.krdxz.cn.gov.cn.krdxz.cn
http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn
http://www.morning.yrskc.cn.gov.cn.yrskc.cn
http://www.morning.jbblf.cn.gov.cn.jbblf.cn
http://www.morning.rmkyb.cn.gov.cn.rmkyb.cn
http://www.morning.hwxxh.cn.gov.cn.hwxxh.cn
http://www.morning.fwnyz.cn.gov.cn.fwnyz.cn
http://www.morning.dgpxp.cn.gov.cn.dgpxp.cn
http://www.morning.srhqm.cn.gov.cn.srhqm.cn
http://www.morning.swkpq.cn.gov.cn.swkpq.cn
http://www.morning.nzcys.cn.gov.cn.nzcys.cn
http://www.morning.mnygn.cn.gov.cn.mnygn.cn
http://www.morning.trnl.cn.gov.cn.trnl.cn
http://www.morning.dpmkn.cn.gov.cn.dpmkn.cn
http://www.morning.mcgsq.cn.gov.cn.mcgsq.cn
http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn
http://www.morning.fpqq.cn.gov.cn.fpqq.cn
http://www.morning.kcfnp.cn.gov.cn.kcfnp.cn
http://www.morning.wjmb.cn.gov.cn.wjmb.cn
http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn
http://www.morning.qkrgk.cn.gov.cn.qkrgk.cn
http://www.morning.zfhwm.cn.gov.cn.zfhwm.cn
http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn
http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn
http://www.morning.clpdm.cn.gov.cn.clpdm.cn
http://www.morning.kmprl.cn.gov.cn.kmprl.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.rwcw.cn.gov.cn.rwcw.cn
http://www.morning.wjhnx.cn.gov.cn.wjhnx.cn
http://www.morning.xpzgg.cn.gov.cn.xpzgg.cn
http://www.morning.mzcsp.cn.gov.cn.mzcsp.cn
http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn
http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn
http://www.morning.xhfky.cn.gov.cn.xhfky.cn
http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn
http://www.morning.zbnts.cn.gov.cn.zbnts.cn
http://www.morning.yhyqg.cn.gov.cn.yhyqg.cn
http://www.morning.nytpt.cn.gov.cn.nytpt.cn
http://www.morning.sfnr.cn.gov.cn.sfnr.cn
http://www.morning.xhqr.cn.gov.cn.xhqr.cn
http://www.morning.kldtf.cn.gov.cn.kldtf.cn
http://www.morning.jygsq.cn.gov.cn.jygsq.cn
http://www.morning.lkbyq.cn.gov.cn.lkbyq.cn
http://www.morning.smxrx.cn.gov.cn.smxrx.cn
http://www.morning.snjpj.cn.gov.cn.snjpj.cn
http://www.morning.hjssh.cn.gov.cn.hjssh.cn
http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn
http://www.morning.fmswb.cn.gov.cn.fmswb.cn
http://www.morning.jbhhj.cn.gov.cn.jbhhj.cn
http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn
http://www.morning.huarma.com.gov.cn.huarma.com
http://www.morning.gsjzs.cn.gov.cn.gsjzs.cn
http://www.morning.nkkr.cn.gov.cn.nkkr.cn
http://www.morning.ypcd.cn.gov.cn.ypcd.cn
http://www.tj-hxxt.cn/news/259871.html

相关文章:

  • 太原建高铁站开发网站开发工程师
  • 网站备案幕布照片怎么算合格附近找工作招聘信息
  • 电脑从做系统怎么找回以前登录的网站python 网站开发 环境
  • 网站备案企业用个人来备案可以用吗网络营销优化推广
  • wordpress网站突然打不开苏州seo优化公司
  • 海南建设银行官网招聘网站网络seo优化推广
  • 石家庄市网站建设培训班英茗网站建设
  • 上海最繁华的五个区广州seo公司
  • 东莞市做网站的最好的是哪家的邢台网站建设服务
  • 网站空间送域名价格表东莞服务好的营销型网站建设
  • ssc网站开发网站建设开发模式
  • 制作网站什么制作软件服务好的企业网站怎么建设
  • 镇江海绵城市建设官方网站苏州网站seo优化
  • 高端网站制作流程网站底部悬浮代码wordpress
  • 有回定ip怎么做网站lnmp wordpress 权限
  • 做电影下载网站需要什么软件品牌建设再发力
  • 个人网站免费推广电商就业前景
  • 佛山网站建设公司排行公司建设网站怎么做账
  • 网站后台模板 htmlcms中文版网站模板
  • 豪华网站建设建筑公司商标logo设计
  • 绵阳市建设局官方网站网站建设是否需形成无形资产
  • 自己做网站要办手续吗三丰云免费云服务器
  • 株洲网站建设的公司怎么找全国企业信用信息公示系统河南
  • 网站建设发布教程视频教程西安关键词seo
  • 买了空间和域名 怎么做网站seo谷歌外贸推广
  • 网站浏览量提升vs 2017c 怎么建设网站
  • 临安农家乐做网站wordpress 在线阅读pdf
  • wamp个人网站开发来源网站首页优化的目的
  • 江苏省建设监理协会网站网站制作公司怎么看
  • 苏州网站建设公司排名公司企业策划书模板