├── css
├── app.8dd87bda.css
├── chunk-37cc58a9.11c49fcf.css
├── chunk-60cf599a.e2f5547d.css
├── chunk-70c562fe.81528045.css
└── chunk-vendors.9c8e3772.css
├── favicon.ico
├── fonts
├── element-icons.2fad952a.woff
└── element-icons.6f0a7632.ttf
├── index.html
├── js
├── app.a858484d.js
├── chunk-2d0b6caf.6a9dbb1a.js
├── chunk-37cc58a9.c53354b6.js
├── chunk-60cf599a.390a25ac.js
├── chunk-70c562fe.ee23ee3b.js
└── chunk-vendors.3e5c41a5.js
├── map.json
├── map.svg
└── path.json
/css/app.8dd87bda.css:
--------------------------------------------------------------------------------
1 | body,html{height:100%;margin:0;padding:0}#app{width:100%;height:100%}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-ms-flex-direction:column}.flex-col,.flex-row{overflow:hidden;display:-ms-box;display:-ms-flexbox;display:-webkit-box;display:flex}.flex-1{-ms-flex:1;-webkit-box-flex:1;flex:1;min-width:0}.flex-2{-ms-flex:2;-webkit-box-flex:2;flex:2;min-width:0}.flex-3{-ms-flex:3;-webkit-box-flex:3;flex:3;min-width:0}.flex-4{-ms-flex:4;-webkit-box-flex:4;flex:4;min-width:0}.align-stretch{-ms-align-items:stretch;-ms-flex-align:stretch;-webkit-box-align:stretch;align-items:stretch}.align-center{-ms-align-items:center;-ms-flex-align:center;-webkit-box-align:center;align-items:center}.justify-center{-ms-box-pack:center;-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center}.child-view{position:absolute;-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);width:100%;background:#f5f5f5}.slide-left-enter,.slide-right-leave-active{opacity:0;-webkit-transform:translate(30px);transform:translate(30px)}.slide-left-leave-active,.slide-right-enter{opacity:0;-webkit-transform:translate(-30px);transform:translate(-30px)}.el{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tc{text-align:center}.m{margin:20px}.p{padding:20px}.area-wrap{position:relative;width:1000px;height:1000px;background:#fff;border:1px solid #eee}.layer{position:absolute;left:0;top:0;width:100%;height:100%}.svgPath{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzUwNkMyNERBMkJEMTFFOEI2MUJDNEFEMTU5RjRFMTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzUwNkMyNEVBMkJEMTFFOEI2MUJDNEFEMTU5RjRFMTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNTA2QzI0QkEyQkQxMUU4QjYxQkM0QUQxNTlGNEUxNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNTA2QzI0Q0EyQkQxMUU4QjYxQkM0QUQxNTlGNEUxNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqvwpAgAAAAjSURBVHjaYvz//z8DIcDIyGjMxEAkGFWIPyyB2JgYhQABBgAqaQN5UDlO1AAAAABJRU5ErkJggg==)}.svgArea{stroke-width:.4;stroke:#ec6707;fill:#f8d1b5}.svgArea.active{stroke:#000!important;stroke-width:1;stroke-dasharray:10}.svgArea.isBlock{fill:#ccc!important;stroke:#fff!important}.mapFloat{background:none;pointer-events:none;color:#333}.mapFloat:empty{z-index:-1}.mapFloat.handle{pointer-events:auto}.mapFloat ._title{position:absolute;-webkit-transform:translate3d(-2em,-14px,0);transform:translate3d(-2em,-14px,0);pointer-events:none;font-size:10px}.mapFloat ._chart{position:absolute;width:50px;height:50px;-webkit-transform:translate3d(-32px,-32px,0);transform:translate3d(-32px,-32px,0)}.mapFloat ._pin{width:64px;height:64px;background:url(/public/img/pin.png) 50% no-repeat;text-align:center;line-height:64px;color:#fff;font-size:12px;font-weight:700}.drawPoint{position:absolute;width:6px;height:6px;border-radius:6px;overflow:hidden;background:violet;-webkit-transform:translate3d(-3px,-3px,0);transform:translate3d(-3px,-3px,0);cursor:pointer}.drawPoint.active,.drawPoint:hover{-webkit-box-shadow:0 0 4px 4px brown;box-shadow:0 0 4px 4px brown}polyline.editingPath{fill:none;stroke:#ec6707;stroke-width:2}polyline.editingPath.active{stroke:#49a25a;stroke-width:4}.drawPath{cursor:crosshair}.pathList ._pathtag{margin:0 .5em .5em 0;cursor:pointer}.group-bar-right{text-align:right}
--------------------------------------------------------------------------------
/css/chunk-37cc58a9.11c49fcf.css:
--------------------------------------------------------------------------------
1 | .typeMarks[data-v-1d7fe5d4]{text-align:center;font-size:10px;padding:.5em}.typeMarks ._mark[data-v-1d7fe5d4]{position:relative;display:inline-block;margin:2em 0 0;width:5em}.typeMarks ._mark[data-v-1d7fe5d4]:before{content:"";position:absolute;width:0;height:0;left:50%;margin-left:-1em;bottom:100%;border:1em solid}
--------------------------------------------------------------------------------
/css/chunk-60cf599a.e2f5547d.css:
--------------------------------------------------------------------------------
1 | .myUpload .el-upload,.myUpload .el-upload-dragger{width:100%;height:100px}.myUpload .el-upload-dragger .el-icon-upload{margin:10px 0 0}
--------------------------------------------------------------------------------
/css/chunk-70c562fe.81528045.css:
--------------------------------------------------------------------------------
1 | .layer[data-v-60e42c00]{pointer-events:none}.typeMarks[data-v-60e42c00]{text-align:center;font-size:10px;padding:.5em}.typeMarks ._mark[data-v-60e42c00]{position:relative;display:inline-block;margin:2em 0 0;width:5em}.typeMarks ._mark[data-v-60e42c00]:before{content:"";position:absolute;width:0;height:0;left:50%;margin-left:-1em;bottom:100%;border:1em solid}
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tracesr/map-editor/be633e2c5732584a57893a9b476491dc8d3dd3d3/favicon.ico
--------------------------------------------------------------------------------
/fonts/element-icons.2fad952a.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tracesr/map-editor/be633e2c5732584a57893a9b476491dc8d3dd3d3/fonts/element-icons.2fad952a.woff
--------------------------------------------------------------------------------
/fonts/element-icons.6f0a7632.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tracesr/map-editor/be633e2c5732584a57893a9b476491dc8d3dd3d3/fonts/element-icons.6f0a7632.ttf
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
地图编辑器-觅迹
--------------------------------------------------------------------------------
/js/app.a858484d.js:
--------------------------------------------------------------------------------
1 | (function(t){function n(n){for(var o,a,s=n[0],c=n[1],l=n[2],u=0,d=[];u/g,i=t.match(o);i.length||u["default"].$notify({title:"警告",message:"svg文件异常",type:"warning"}),i.forEach(function(t){var n=/points="([^"]+)"/g,o=/title="([^"]+)"/g,i=/data-x="([^"]+)"/g,r=/data-y="([^"]+)"/g,s=n.exec(t),c=o.exec(t),l=i.exec(t),u=r.exec(t);if(null===s)return new Error('polygon without prop "points"');s=s[1].trim().split(" ").map(function(t){return t.trim().replace(/\\r\\n\\t/g,"")}).join(" ");var d=s.trim().split(" ").map(function(t){return t.trim().split(",").join(" ")});if(c=null===c?"未命名":c[1],null===l||null===u){var h,p,f,g,m=[],v=[];d.forEach(function(t){var n=t.split(" ");m.push(n[0]),v.push(n[1])}),h=Math.max.apply(null,m),p=Math.max.apply(null,v),f=Math.min.apply(null,m),g=Math.min.apply(null,v),d=d.map(function(t){return t=t.split(" ").map(function(t){return t+"px"}),t.join(" ")}),l=a()((h+f)/2),u=a()((p+g)/2)}else l=l[1],u=u[1];e.push({points:s,attrDataX:l,attrDataY:u,attrTitle:c,connectPoint:{}})}),"function"===typeof n&&n(e)},g=function(t,n){for(var e=null,o=0;o=0&&this.currentPolygon.connectPoint.connectBuildings.splice(t,1),delete this.currentPolygon.connectPoint},drawPath:function(t){v&&v.point?v={}:(null===this.$root.currentEditingPathIndex&&(this.roads.push([]),this.$root.currentEditingPathIndex=this.roads.length-1),this.roads[this.$root.currentEditingPathIndex].push({x:t.offsetX,y:t.offsetY}))},savePath:function(){var t=this;if(u["e"]("editing-roads",this.roads),this.pathDataDownloadDom){var n=this.roads.map(function(n,e){return 0===e?"["+l()(n)+",":e===t.roads.length-1?l()(n)+"]":l()(n)+","}),e=new Blob(n,{type:"application/json"});this.pathDataDownloadDom.href=window.URL.createObjectURL(e)}},updatePath:function(){var t=this;this.$nextTick(function(){t.$forceUpdate()})},unchoosePath:function(){this.$root.currentEditingPathIndex=null},resetData:function(){this.resetSvg(),this.unchoosePath(),s()(this.polygonsBackup)&&(this.polygons=u["a"](this.polygonsBackup)),s()(this.roadsBackup)&&(this.roads=u["a"](this.roadsBackup))},clearData:function(){this.reset(),this.resetSvg(),this.unchoosePath(),this.polygonsBackup=null,this.roadsBackup=null,this.polygons=[],this.roads=[]},resetSvg:function(){if(this.currentPolygon={},this.mainDom){var t=this.mainDom.querySelectorAll("polygon.active");t.forEach(function(t){t.classList.remove("active")})}},clickElement:function(t,n){this.resetSvg(),t.target.classList.add("active"),this.currentPolygon=n},reset:function(){this.currentPolygon={},this.$root.currentEditingPathIndex=null,this.mode="编辑地图",this.roadsCurrentShow=void 0},importSvg:function(t){this.polygonsBackup=t,this.polygons=u["a"](this.polygonsBackup)},importMap:function(t){this.reset(),t.forEach(function(t){t.connectPoint||(t.connectPoint={})}),this.polygonsBackup=t,this.polygons=u["a"](this.polygonsBackup),u["e"]("editing-polygons",t)},importPath:function(t){this.reset(),this.roadsBackup=t,this.roads=u["a"](this.roadsBackup),u["e"]("editing-roads",this.roads)}},created:function(){var t=this,n=u["e"]("editing-polygons");n&&(this.polygonsBackup=n,this.polygons=u["a"](this.polygonsBackup));var e=u["e"]("editing-roads");e&&(this.roadsBackup=e,this.roads=u["a"](this.roadsBackup),this.$nextTick(function(){t.savePath()})),this.$root.buildingTypes=d},mounted:function(){this.mainDom=document.getElementById("svgElements"),this.mapDataDownloadDom=document.getElementById("mapDataDownload"),this.pathDataDownloadDom=document.getElementById("pathDataDownload")}},b=P,k=(e("034f"),e("2877")),x=Object(k["a"])(b,a,i,!1,null,null,null);x.options.__file="App.vue";var D=x.exports,E=e("5c96"),B=e.n(E);e("0fae");o["default"].use(B.a),o["default"].config.productionTip=!1,new o["default"]({data:function(){return{cachePointMode:!1,buildingTypes:[],currentEditingPathIndex:null}},render:function(t){return t(D)}}).$mount("#app")},"64a9":function(t,n,e){}});
--------------------------------------------------------------------------------
/js/chunk-2d0b6caf.6a9dbb1a.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0b6caf"],{"1f59":function(e,t,n){"use strict";n.r(t);var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-form",{staticStyle:{margin:"40px 0 0"},attrs:{"label-width":"100px"}},[e.currentPolygon&&e.currentPolygon.points?[n("el-form-item",{attrs:{label:"标题"}},[n("el-input",{attrs:{id:"infoInputer"},model:{value:e.currentPolygon.attrTitle,callback:function(t){e.$set(e.currentPolygon,"attrTitle",t)},expression:"currentPolygon.attrTitle"}})],1),n("el-form-item",{attrs:{label:"描述"}},[n("el-input",{attrs:{type:"textarea"},model:{value:e.currentPolygon.desc,callback:function(t){e.$set(e.currentPolygon,"desc",t)},expression:"currentPolygon.desc"}})],1),n("el-form-item",{attrs:{label:"所属类型"}},[n("el-select",{attrs:{"value-key":"title",placeholder:"请选择"},model:{value:e.currentPolygon.type,callback:function(t){e.$set(e.currentPolygon,"type",t)},expression:"currentPolygon.type"}},e._l(e.buildingTypes,function(e){return n("el-option",{key:e.title,attrs:{label:e.title,value:e}})}),1)],1),n("el-form-item",{attrs:{label:"关联路径节点"}},[n("el-button",{attrs:{disabled:e.currentPolygon.block,icon:"el-icon-location",circle:""},on:{click:function(t){e.$root.cachePointMode=!0}}}),n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.$root.cachePointMode,expression:"$root.cachePointMode"}],on:{click:function(t){e.$root.cachePointMode=!1}}},[e._v("退出拾取")]),n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.currentPolygon.connectPoint&&e.currentPolygon.connectPoint.x,expression:"currentPolygon.connectPoint && currentPolygon.connectPoint.x"}],on:{click:function(t){e.breakConnect()}}},[e._v("清除关联")]),e.currentPolygon.connectPoint&&e.currentPolygon.connectPoint.x?n("div",[e._v("\n "+e._s(JSON.stringify(e.currentPolygon.connectPoint))+"\n ")]):e._e()],1),n("el-form-item",{attrs:{label:"忽略建筑物"}},[n("el-switch",{model:{value:e.currentPolygon.block,callback:function(t){e.$set(e.currentPolygon,"block",t)},expression:"currentPolygon.block"}})],1)]:[n("div",[e._v("从左侧地图中选择区域,单击进入编辑")])]],2)},l=[],c={props:{polygon:{type:Object}},data:function(){return{buildingTypes:this.$root.buildingTypes,currentPolygon:null}},watch:{polygon:function(e){this.currentPolygon=e,this.$nextTick(function(){document.getElementById("infoInputer")&&document.getElementById("infoInputer").focus()})}},methods:{}},r=c,i=n("2877"),u=Object(i["a"])(r,o,l,!1,null,"ab349ec2",null);u.options.__file="mapediter.vue";t["default"]=u.exports}}]);
--------------------------------------------------------------------------------
/js/chunk-37cc58a9.c53354b6.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-37cc58a9"],{"4dab":function(t,n,e){},"6d03":function(t,n,e){"use strict";e.r(n);var i=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("div",{staticClass:"m pathList"},t._l(t.roads,function(n,i){return e("el-tag",{key:"road"+i,staticClass:"_pathtag",attrs:{type:i===t.$root.currentEditingPathIndex?"success":"info"},nativeOn:{click:function(n){t.choosePath(i)}}},[t._v("路径"+t._s(i+1))])}),1),e("el-table",{ref:"currentRoadsPointsTable",staticStyle:{width:"100%"},attrs:{"empty-text":"在左侧地图上开始绘制",height:t.winHeight-360,data:t.currentPath,"highlight-current-row":!0},on:{"current-change":t.triggerCurrentFromTable}},[e("el-table-column",{attrs:{type:"index",width:"50"}}),e("el-table-column",{attrs:{label:"坐标",width:"150"},scopedSlots:t._u([{key:"default",fn:function(n){return[t._v("\n X: "+t._s(n.row.x)+" Y: "+t._s(n.row.y)+"\n ")]}}])}),e("el-table-column",{attrs:{label:"关联建筑"},scopedSlots:t._u([{key:"default",fn:function(n){return[n.row.connectBuildings?e("div",[t._v("\n "+t._s(n.row.connectBuildings.join("、"))+"\n ")]):t._e()]}}])}),e("el-table-column",{attrs:{label:"操作",width:"280",align:"center"},scopedSlots:t._u([{key:"default",fn:function(n){return[e("el-button",{attrs:{type:"primary",size:"mini"},on:{click:function(e){t.insertPoint(n.$index,-1)}}},[t._v("前添加")]),e("el-button",{attrs:{type:"primary",size:"mini"},on:{click:function(e){t.insertPoint(n.$index,1)}}},[t._v("后添加")]),e("el-button",{attrs:{type:"danger",size:"mini"},on:{click:function(e){t.deleteCurrentPathPoint(n.$index)}}},[t._v("删除")])]}}])})],1),e("div",{staticClass:"tc m"},[e("el-button",{attrs:{type:"primary",disabled:!t.currentPath||!t.currentPath.length},on:{click:t.addPath}},[t._v("保存路径")]),e("el-button",{attrs:{disabled:!t.currentPath||!t.currentPath.length},on:{click:t.clearPath}},[t._v("清除节点")]),e("el-button",{attrs:{type:"danger",disabled:!t.$root.currentEditingPathIndex},on:{click:function(n){t.deletePath(t.$root.currentEditingPathIndex)}}},[t._v("删除路径")])],1)],1)},r=[],a=e("e814"),o=e.n(a),s=e("a745"),c=e.n(s),u=e("3da7"),h={props:{roads:{type:Array},roadsCurrentShow:{default:void 0}},data:function(){return{winHeight:null}},watch:{roadsCurrentShow:function(t){this.$refs.currentRoadsPointsTable.setCurrentRow(t)}},computed:{currentPath:function(){if(c()(this.roads))return this.roads[this.$root.currentEditingPathIndex]}},methods:{triggerCurrentFromTable:function(t,n){t&&(t.active=!0),n&&delete n.active,this.$emit("update")},insertPoint:function(t,n){var e,i,r,a=this.currentPath[t];if(n<0){if(t>0)e=this.currentPath[t-1];else{var s=this.currentPath[t+1],c={x:a.x-s.x,y:a.y-s.y};e={x:a.x+c.x,y:a.y+c.y}}r=t}else{if(t===this.currentPath.length-1){var u=this.currentPath[t-1],h={x:a.x-u.x,y:a.y-u.y};e={x:a.x+h.x,y:a.y+h.y}}else e=this.currentPath[t+1];r=t+1}i={x:o()((a.x+e.x)/2),y:o()((a.y+e.y)/2)},this.roads[this.$root.currentEditingPathIndex].splice(r,0,i)},deleteCurrentPathPoint:function(t){this.roads[this.$root.currentEditingPathIndex].splice(t,1)},addPath:function(){this.$root.currentEditingPathIndex?this.roads.splice(this.$root.currentEditingPathIndex,1,u["a"](this.currentPath)):this.roads.push(u["a"](this.currentPath)),this.$root.currentEditingPathIndex=null,this.savePath()},clearPath:function(){this.$set(this.roads,this.$root.currentEditingPathIndex,[])},deletePath:function(t){var n=this;this.$confirm("删除路径"+(t+1)+"?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){n.$root.currentEditingPathIndex=null,n.roads.splice(t,1),n.savePath()})},unchoosePath:function(){this.$root.currentEditingPathIndex=null},choosePath:function(t){if(this.$root.currentEditingPathIndex===t)return this.unchoosePath();this.$root.currentEditingPathIndex=t},savePath:function(){this.$emit("savePath")}},mounted:function(){this.winHeight=window.innerHeight}},d=h,l=(e("d1f9"),e("2877")),P=Object(l["a"])(d,i,r,!1,null,"1d7fe5d4",null);P.options.__file="roadsediter.vue";n["default"]=P.exports},d1f9:function(t,n,e){"use strict";var i=e("4dab"),r=e.n(i);r.a}}]);
--------------------------------------------------------------------------------
/js/chunk-60cf599a.390a25ac.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-60cf599a"],{"1d39":function(t,a,i){"use strict";i.r(a);var n=function(){var t=this,a=t.$createElement,i=t._self._c||a;return i("el-row",{attrs:{gutter:8}},[i("el-col",{attrs:{span:8}},[i("el-upload",{staticClass:"myUpload",attrs:{drag:"",action:"",accept:"image/svg+xml","before-upload":t.getFile}},[i("i",{staticClass:"el-icon-upload"}),i("div",{staticClass:"el-upload__text"},[t._v("导入地图svg文件")])])],1),i("el-col",{attrs:{span:8}},[i("el-upload",{staticClass:"myUpload",attrs:{drag:"",action:"",accept:"application/json","before-upload":t.importMap}},[i("i",{staticClass:"el-icon-upload"}),i("div",{staticClass:"el-upload__text"},[t._v("导入地图文件(map.json)")])])],1),i("el-col",{attrs:{span:8}},[i("el-upload",{staticClass:"myUpload",attrs:{drag:"",action:"",accept:"application/json","before-upload":t.importPath}},[i("i",{staticClass:"el-icon-upload"}),i("div",{staticClass:"el-upload__text"},[t._v("导入路径文件(path.json)")])])],1)],1)},o=[],s=i("a745"),e=i.n(s),l=(i("cadf"),i("551c"),i("097d"),i("3da7")),p={methods:{getFile:function(t){var a=this;return l["d"](t,function(t){l["b"](t,function(t){a.$emit("importSvg",t)})}),!1},warningTip:function(t){this.$notify({title:"警告",message:t,type:"warning"})},importMap:function(t){var a=this;return l["d"](t,function(t){var i=t&&JSON.parse(t);return e()(i)?i.length&&!i[0].points?a.warningTip("map.json格式不正确"):void a.$emit("importMap",i):a.warningTip("map.json格式不正确")}),!1},importPath:function(t){var a=this;return l["d"](t,function(t){var i=t&&JSON.parse(t);return e()(i)?i.length&&!e()(i[0])?a.warningTip("path.json格式不正确"):void a.$emit("importPath",i):a.warningTip("path.json格式不正确")}),!1}}},r=p,c=(i("db9c"),i("2877")),u=Object(c["a"])(r,n,o,!1,null,null,null);u.options.__file="importer.vue";a["default"]=u.exports},"6f68":function(t,a,i){},db9c:function(t,a,i){"use strict";var n=i("6f68"),o=i.n(n);o.a}}]);
--------------------------------------------------------------------------------
/js/chunk-70c562fe.ee23ee3b.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-70c562fe"],{"1b91":function(t,e,i){"use strict";i.r(e);var n=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"layer"},[i("div",{staticClass:"typeMarks"},t._l(t.buildingTypes,function(e,n){return i("div",{key:"color"+n,staticClass:"_mark",style:{color:e.fill}},[t._v(t._s(e.title))])}),0)])},s=[],c=(i("cadf"),i("551c"),i("097d"),{data:function(){return{buildingTypes:this.$root.buildingTypes}}}),a=c,l=(i("c6f6"),i("2877")),r=Object(l["a"])(a,n,s,!1,null,"60e42c00",null);r.options.__file="typeMarks.vue";e["default"]=r.exports},8636:function(t,e,i){},c6f6:function(t,e,i){"use strict";var n=i("8636"),s=i.n(n);s.a}}]);
--------------------------------------------------------------------------------
/map.json:
--------------------------------------------------------------------------------
1 | [{"points":"104.333,293.667 118,241 166.333,254.333 193.667,300 185.333,316.333","attrDataX":149,"attrDataY":278,"attrTitle":"美特斯邦威","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"connectPoint":{"x":203,"y":315,"connectBuildings":["美特斯邦威"]}},{"points":"104.333,293.667 185,316.333 172,356.667 92.667,335.333","attrDataX":138,"attrDataY":325,"attrTitle":"李宁","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"connectPoint":{"x":188,"y":341,"connectBuildings":["李宁"]}},{"points":"197.333,257.667 234.333,121 283.667,135.667 247,272 215.667,288.667","attrDataX":240,"attrDataY":204,"attrTitle":"榜中榜","type":{"title":"美容美发","fill":"#e89bb6","stroke":"#ce7795"},"connectPoint":{"x":234,"y":299,"connect":true,"connectBuildings":["榜中榜"]}},{"points":"313,142.333 394.333,164.667 382.667,207.667 413.667,217.333 402,260 469,278.667 440.333,385.667 354.333,361.333 354,345 351.333,333.333 345.667,325.333 337.667,316.333 326,311 320.333,308.333 310.333,308 300,305.667 292,302 283.667,295 279.667,285 277.333,272","attrDataX":373,"attrDataY":264,"attrTitle":"标榜","type":{"title":"美容美发","fill":"#e89bb6","stroke":"#ce7795"},"desc":"美容美发美容美发美容美发美容美发美容美发","connectPoint":{"x":327,"y":329,"connectBuildings":["标榜"]}},{"points":"354.333,361.333 359.864,385.667 368.75,405.25 386.333,421 429.667,432 451,420.667 459,390.667","attrDataX":406,"attrDataY":396,"attrTitle":"冰淇凌","type":{"title":"餐饮","fill":"#f2dc66","stroke":"#cebd63"},"connectPoint":{"x":354,"y":401,"connectBuildings":["冰淇凌"]}},{"points":"440.333,385.667 459,390.667 465.667,363.667 448,357.667","attrDataX":453,"attrDataY":374,"attrTitle":"小伙干果","type":{"title":"餐饮","fill":"#f2dc66","stroke":"#cebd63"},"connectPoint":{"x":482,"y":382,"connectBuildings":["小伙干果","柒牌男装"]}},{"points":"449.667,273.333 462,230 500,240 487.667,283.667","attrDataX":474,"attrDataY":256,"attrTitle":"化妆品","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":505,"y":285,"connectBuildings":["化妆品","周生生"]}},{"points":"462,230 473.917,185.333 511,196.333 500,240","attrDataX":486,"attrDataY":212,"attrTitle":"洗护用品","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":523,"y":234,"connectBuildings":["进口食品","洗护用品"]}},{"points":"533.334,271.667 551.667,206.667 588.334,217.333 568.55,282.137","attrDataX":560,"attrDataY":244,"attrTitle":"进口食品","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":523,"y":234,"connectBuildings":["进口食品","洗护用品"]}},{"points":"533.334,271.667 515.667,340.333 570.333,355 575.667,335.667 556.667,330 568.667,281.667","attrDataX":545,"attrDataY":313,"attrTitle":"周生生","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":505,"y":285,"connectBuildings":["化妆品","周生生"]}},{"points":"515.667,340.333 491.667,427.667 506,454.333 541.667,463.333 570.333,355","attrDataX":531,"attrDataY":401,"attrTitle":"柒牌男装","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"desc":"柒牌男装柒牌男装柒牌男装柒牌男装","connectPoint":{"x":512,"y":474,"connectBuildings":["德克士","柒牌男装"]}},{"points":"575.667,335.667 622.667,348.5 629.333,328.333 663,338.417 689.333,244.167 740.333,258.667 800.667,400.333 689.667,369 671,438 659.333,434 644.334,490.667 541.667,463.333","attrDataX":671,"attrDataY":367,"attrTitle":"红辣椒","type":{"title":"餐饮","fill":"#f2dc66","stroke":"#cebd63"},"desc":"饭店饭店饭店饭店饭店","connectPoint":{"x":593,"y":499,"connectBuildings":["红辣椒","麦当劳"]}},{"points":"690,369.333 800.667,400 833,472 793.334,505.333 774.334,496.667 753.334,490.667 734.667,487.667 716.667,488 699.334,489.333 685.667,493.667 673.334,498.667 644,490.667 659.772,434.15 671,438","attrDataX":738,"attrDataY":437,"attrTitle":"鸿星尔克","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"desc":"服装鞋帽服装鞋帽服装鞋帽服装鞋帽","connectPoint":{"x":729,"y":507,"connectBuildings":["鸿星尔克"]}},{"points":"822.25,533.667 834.625,546.333 843.979,557.667 849.655,571 854.912,585 857.5,601.667 857.5,617 855.333,633.667 851.333,646 975,678.667 983,647.667 965,642 964,627 959.333,609 955.333,597 948.666,582.333 940,568 930.333,555.333 921,544.667 912.666,537 919.333,526 913.333,513.333 877.333,549.667 839,517","attrDataX":902,"attrDataY":596,"attrTitle":"不不扣","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"desc":"杂货店杂货店杂货店杂货店杂货店","connectPoint":{"x":834,"y":589,"connectBuildings":["不不扣"]}},{"points":"802.333,706.666 814,699 822.25,692.333 828.666,694.333 844.666,703 902.625,740.333 983,761 966,822.666 953.333,818.333 948,845.333 940.666,869.666 934,887 928,900.333 910.333,894.666 918.666,830 906,826.666 907.666,819.333 781.666,783.666","attrDataX":882,"attrDataY":796,"attrTitle":"耐克","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"connectPoint":{"x":804,"y":683,"connectBuildings":["耐克"]}},{"points":"667.667,718 690.333,695.667 715.667,712 736.667,717.333 759.667,719.333 784.667,714.667 762.3,799.445 690,779.333","attrDataX":726,"attrDataY":747,"attrTitle":"母婴","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":734,"y":698,"connect":true,"connectBuildings":["母婴"]}},{"points":"667.667,718 620,765 608,814 674.667,832 690,779.333","attrDataX":649,"attrDataY":775,"attrTitle":"水星家纺","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":590,"y":769,"connectBuildings":["水星家纺"]}},{"points":"690,779.333 784.667,805.667 770,857.333 674.667,832","attrDataX":729,"attrDataY":818,"attrTitle":"酒水","type":{"title":"餐饮","fill":"#f2dc66","stroke":"#cebd63"},"connectPoint":{}},{"points":"468.167,750.834 496.667,757.5 521,757.5 543,754.167 561,750.834 580.334,742.333 598.334,731 619.334,711.667 487.333,676","attrDataX":543,"attrDataY":716,"attrTitle":"Apple","type":{"title":"电子数码","fill":"#94cefd","stroke":"#8abbe3"},"desc":"Mac,Ipad,Iphone","connectPoint":{"x":551,"y":760,"connectBuildings":["Apple"]}},{"points":"524.333,685.333 543.75,614 639.333,639.333 642.333,655 649,669 656.667,678.667 619.334,711.666","attrDataX":590,"attrDataY":662,"attrTitle":"日用品","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":654,"y":653,"connectBuildings":["日用品"]}},{"points":"410.333,735.334 430.667,660 461.667,669.334 441.667,744","attrDataX":436,"attrDataY":702,"attrTitle":"OPPO","type":{"title":"电子数码","fill":"#94cefd","stroke":"#8abbe3"},"desc":"手机手机手机手机","connectPoint":{"x":400,"y":684,"connect":true,"connectBuildings":["OPPO"]}},{"points":"430.483,660.679 439.667,626 481.333,637.333 472.333,672","attrDataX":455,"attrDataY":649,"attrTitle":"才子","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"connectPoint":{"x":413,"y":632,"connectBuildings":["Vivol","才子"]}},{"points":"439.584,626.311 476.333,488.667 534,505.333 511.667,583.667 497.667,580.667 481.333,637.667","attrDataX":486,"attrDataY":563,"attrTitle":"德克士","type":{"title":"餐饮","fill":"#f2dc66","stroke":"#cebd63"},"desc":"德克士德克士德克士德克士德克士德克士","connectPoint":{"x":512,"y":474,"connectBuildings":["德克士","柒牌男装"]}},{"points":"534,505.333 643.875,534.333 654.354,544.667 658.5,557.667 658.5,569 652.667,575.333 644,592.333 638.334,603.667 637,618.333 521,586 538,518 531.049,515.684","attrDataX":589,"attrDataY":561,"attrTitle":"麦当劳","type":{"title":"餐饮","fill":"#f2dc66","stroke":"#cebd63"},"desc":"麦当劳麦当劳麦当劳麦当劳麦当劳麦当劳","connectPoint":{"x":593,"y":499,"connectBuildings":["红辣椒","麦当劳"]}},{"points":"355.333,559.334 410.333,574.334 370,722.334 337,711.666 354.333,649 332.333,644","attrDataX":371,"attrDataY":640,"attrTitle":"Vivol","type":{"title":"电子数码","fill":"#94cefd","stroke":"#8abbe3"},"desc":"Vivol手机Vivol手机Vivol手机Vivol手机","connectPoint":{"x":413,"y":632,"connectBuildings":["Vivol","才子"]}},{"points":"355.411,559.039 382,463.333 436,478 410.333,574.334","attrDataX":395,"attrDataY":518,"attrTitle":"七匹狼","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"desc":"七匹狼七匹狼七匹狼七匹狼","connectPoint":{"x":403,"y":444,"connect":true,"connectBuildings":["七匹狼"]}},{"points":"244.333,530.333 254.667,510.667 266,496.667 277.333,486 290.667,477.333 305.333,469.667 320.333,463.333 335,461 354.333,459.667 371.333,460.667 382,463.333 355.333,559.334","attrDataX":313,"attrDataY":509,"attrTitle":"肯德基","type":{"title":"餐饮","fill":"#f2dc66","stroke":"#cebd63"},"desc":"肯德基肯德基肯德基肯德基肯德基肯德基","connectPoint":{"x":303,"y":433,"connect":true,"connectBuildings":["肯德基"]}},{"points":"244.417,530 237.792,546.667 234.5,564.334 234.5,581 236.667,600.667 242.333,621 250,636.667 261.667,652.334 283.333,672 316.333,549.145","attrDataX":275,"attrDataY":601,"attrTitle":"联想","type":{"title":"电子数码","fill":"#94cefd","stroke":"#8abbe3"},"desc":"联想电脑联想电脑联想电脑联想电脑联想电脑","connectPoint":{"x":219,"y":619,"connectBuildings":["联想"]}},{"points":"205,705.667 218,662 205,640.834 196.333,618.333 193,593.333 195.333,559.334 203,530 218,502 125.333,476.333 105.667,545.667 41.333,530 8,652.333","attrDataX":113,"attrDataY":591,"attrTitle":"孩子王","type":{"title":"娱乐","fill":"#87A765","stroke":"#7eb543"},"desc":"综合娱乐综合娱乐综合娱乐综合娱乐综合娱乐","connectPoint":{"x":208,"y":574,"connectBuildings":["孩子王"]}},{"points":"174,463.333 182.333,432 270.333,455.667 254.667,465 244.333,470.667 234.5,480.667","attrDataX":222,"attrDataY":456,"attrTitle":"周大生","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":229,"y":418,"connectBuildings":["周大生"]}},{"points":"448,357.667 465.667,363.667 487.667,283.667 469,278.591","attrDataX":467,"attrDataY":321,"attrTitle":"谭木匠","type":{"title":"百货","fill":"#eacf98","stroke":"#d9b87a"},"connectPoint":{"x":492,"y":332,"connectBuildings":["谭木匠"]}},{"points":"92.667,335.333 83.333,372 65.667,436 125,452 134,418.667 162.667,427 165,393.667 172,356.667","attrDataX":118,"attrDataY":393,"attrTitle":"特步","type":{"title":"服装","fill":"#fece8b","stroke":"#e0b170"},"connectPoint":{"x":178,"y":394,"connectBuildings":["特步"]}}]
--------------------------------------------------------------------------------
/map.svg:
--------------------------------------------------------------------------------
1 |
67 |
--------------------------------------------------------------------------------
/path.json:
--------------------------------------------------------------------------------
1 | [[{"x":234,"y":299,"connect":true},{"x":203,"y":315,"connectBuildings":["美特斯邦威"],"connect":true},{"x":188,"y":341,"connectBuildings":["李宁"],"connect":true},{"x":178,"y":394,"connectBuildings":["特步"],"connect":true},{"x":229,"y":418,"connectBuildings":["周大生"]},{"x":303,"y":433,"connect":true},{"x":403,"y":444,"connect":true},{"x":457,"y":459,"connect":true},{"x":512,"y":474,"connectBuildings":["德克士","柒牌男装"]},{"x":593,"y":499,"connectBuildings":["红辣椒","麦当劳"]},{"x":680,"y":523,"connect":true},{"x":729,"y":507,"connectBuildings":["鸿星尔克"]},{"x":834,"y":589,"connectBuildings":["不不扣"],"connect":true},{"x":804,"y":683,"connectBuildings":["耐克"],"connect":true},{"x":734,"y":698,"connect":true,"connectBuildings":["母婴"]},{"x":662,"y":698,"connect":true},{"x":654,"y":653,"connectBuildings":["日用品"],"connect":true},{"x":662,"y":588,"connect":true}],[{"x":234,"y":299,"connect":true,"connectBuildings":["榜中榜"]},{"x":327,"y":329,"connectBuildings":["标榜"],"connect":true},{"x":354,"y":401,"connectBuildings":["冰淇凌"],"connect":true},{"x":403,"y":444,"connect":true,"connectBuildings":["七匹狼"]}],[{"x":662,"y":588,"connect":true},{"x":680,"y":523,"connect":true}],[{"x":523,"y":234,"connectBuildings":["进口食品","洗护用品"]},{"x":505,"y":285,"connectBuildings":["化妆品","周生生"]},{"x":492,"y":332,"connectBuildings":["谭木匠"]},{"x":482,"y":382,"connectBuildings":["小伙干果","柒牌男装"]},{"x":457,"y":459,"connect":true},{"x":439,"y":531},{"x":413,"y":632,"connectBuildings":["Vivol","才子"]},{"x":400,"y":684,"connect":true}],[{"x":303,"y":433,"connect":true,"connectBuildings":["肯德基"]},{"x":208,"y":574,"connectBuildings":["孩子王"]},{"x":219,"y":619,"connectBuildings":["联想"]},{"x":375,"y":742,"connect":true},{"x":400,"y":684,"connect":true,"connectBuildings":["OPPO"]}],[{"x":662,"y":698,"connect":true},{"x":597,"y":760,"connectBuildings":["水星家纺"]},{"x":551,"y":760,"connectBuildings":["Apple"]},{"x":375,"y":742,"connect":true}],[{"x":834,"y":589,"connectBuildings":["不不扣"],"connect":true},{"x":654,"y":653,"connectBuildings":["日用品"],"connect":true}],[{"x":662,"y":588,"connect":true},{"x":734,"y":698,"connect":true,"connectBuildings":["母婴"]}],[{"x":662,"y":588,"connect":true},{"x":804,"y":683,"connectBuildings":["耐克"],"connect":true}],[{"x":680,"y":523,"connect":true},{"x":804,"y":683,"connectBuildings":["耐克"],"connect":true}],[{"x":178,"y":394,"connectBuildings":["特步"],"connect":true},{"x":327,"y":329,"connectBuildings":["标榜"],"connect":true}],[{"x":178,"y":394,"connectBuildings":["特步"],"connect":true},{"x":354,"y":401,"connectBuildings":["冰淇凌"],"connect":true}],[{"x":354,"y":401,"connectBuildings":["冰淇凌"],"connect":true},{"x":203,"y":315,"connectBuildings":["美特斯邦威"],"connect":true}],[{"x":354,"y":401,"connectBuildings":["冰淇凌"],"connect":true},{"x":188,"y":341,"connectBuildings":["李宁"],"connect":true}],[{"x":303,"y":433,"connect":true,"connectBuildings":["肯德基"]},{"x":354,"y":401,"connectBuildings":["冰淇凌"],"connect":true}],[{"x":327,"y":329,"connectBuildings":["标榜"],"connect":true},{"x":303,"y":433,"connect":true,"connectBuildings":["肯德基"]}]]
--------------------------------------------------------------------------------