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

vue中json-server及mockjs后端接口模拟

一、接口配置

1.安装json-server;

pnpm i json-server@0.17.3 -D

2.安装mockjs;

pnpm i mockjs -D

3.把json数据放在合适的位置,在根目录下创建mock.js文件,引入json数据;

4.在package.json中添加

"mock": "json-server -w mock.js -p 3000"

删除

 "type": "module",

 5.启动服务;

pnpm mock

 二、axios请求数据

 1.安装axios;

pnpm i axios

2.在src文件夹下创建api文件夹,创建接口文件index.js,封装接口;

3.使用数据

<script setup>
import { getWuhanBuildings,getWuhanRoads } from '@/api';
import { inject,onMounted, onBeforeUnmount} from 'vue'
const {map,scene} = inject('mapScene')
onMounted(async() => {
    map.flyTo({
        center: [114.299987, 30.58518],
        zoom: 15,
        pitch:45,
    }) 
    //加载城市建筑和道路数据
    const { data: buildingsData } = await getWuhanBuildings();
    const { data: roadsData } = await getWuhanRoads();
    console.log(buildingsData,roadsData)
})

onBeforeUnmount(() => {})
</script>
<template>
  <div></div>
</template>

<script setup>
import { getWuhanBuildings, getWuhanRoads } from '@/api'
import { inject, onMounted, onBeforeUnmount } from 'vue'
import { CityBuildingLayer, LineLayer, LayerSwitch } from '@antv/l7'
const { map, scene } = inject('mapScene')
let buildingsLayer, roadsLayer, layerSwitch
onMounted(async () => {
  map.flyTo({
    center: [114.299987, 30.58518],
    zoom: 15,
    pitch: 45,
  })
  //加载城市建筑和道路数据
  const { data: buildingsData } = await getWuhanBuildings()
  const { data: roadsData } = await getWuhanRoads()
  //console.log(buildingsData,roadsData)
  buildingsLayer = new CityBuildingLayer({
    name: '建筑',
  })
  buildingsLayer
    .source(buildingsData)
    .size('Elevation', (e) => {
      return e
    })
    .filter('Elevation', (e) => {
      return e > 50
    })
    .color('rgb(240,240,240)')
    .animate(true)
    .active(true)
    .style({
      opacity: 0.7,
      baseColor: 'rgb(16, 16, 16)',
      windowColor: 'rgb(30, 60, 89)',
      brightColor: 'rgb(255, 176, 38)',
      sweep: {
        enable: true,
        sweepRadius: 2,
        sweepColor: '#1990FF',
        sweepSpeed: 0.5,
        sweepCenter: [114.406325, 30.465113],
      },
    })
  scene.addLayer(buildingsLayer)
  //加载道路数据
  roadsLayer = new LineLayer({
    name: '道路',
  })
  roadsLayer
    .source(roadsData)
    .shape('line')
    .color('type', (type) => {
      switch (type) {
        case 'motorway':
          return '#F9D371'
        case 'motorway_link':
          return '#3DB2FF'
        case 'trunk':
          return 'green'
        case 'trunk_link':
          return '#6E85B2'
        case 'primary':
          return '#F47340'
        case 'primary_link':
          return '#F6A9A9'
        case 'secondary':
          return '#EF2F88'
        case 'secondary_link':
          return '#5F7A61'
        case 'tertiary':
          return '#1ee3cf'
        case 'tertiary_link':
          return '#C2F784'
        case 'pedestrian':
          return '#FFF89A'
        case 'residential':
          return 'rgba(22, 119, 255, .5)'
        case 'road':
          return '#93FFD8'
        case 'path':
          return '#BAFFB4'
        case 'unclassified':
          return '#D3DEDC'
        case 'service':
          return '#AEFEFF'
        case 'living_street':
          return '#9B0000'
        case 'track':
          return '#F5F5F5'
        case 'highway':
          return 'red'
        case 'rail':
          return '#08ffc8'
        default:
          return '#FFE3E3'
      }
    })
    .active(true)
    .size(1)
    .style({
      opacity: 0.5,
    })
    .animate({
      interval: 1, // 间隔
      duration: 1, // 持续时间,延时
      trailLength: 2, // 流线长度
    })
  scene.addLayer(roadsLayer)
  layerSwitch = new LayerSwitch({
    layers: [buildingsLayer, roadsLayer],
  })
  scene.addControl(layerSwitch)
})

onBeforeUnmount(() => {
  scene.removeLayer(buildingsLayer)
  scene.removeLayer(roadsLayer)
  scene.removeControl(layerSwitch)
})
</script>

<style scoped></style>

相关文章:

  • 第4章 信息系统架构(二)
  • 【Linux专栏】find命令+同步 实验
  • 机器学习(1)安装Pytorch
  • C#项目05-猜数字多线程
  • kotlin Java 使用ArrayList.add() ,set()前面所有值被 覆盖 的问题
  • 运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
  • STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失
  • AI IDE - Trae -学习与实践
  • 简单认识一下-Redis
  • 揭秘区块链隐私黑科技:零知识证明如何改变未来
  • springboot024-玩具租赁系统
  • nushell排查磁盘空间使用情况
  • FFmpeg 基本语法全面介绍
  • 利用pico4ultra提高生产力与学习效率的可行性方案
  • electron下载文件,弹窗选择下载路径,并通知下载进度
  • 初识MyBatis
  • Java IO
  • 【深度学习】分布偏移纠正
  • PHP场地预定小程序源码
  • 多表关联查询的优化
  • 大良网站建设市场/关键词收录
  • 企业自助网站建设/seo网站优化方案案例
  • 怎么做本地化网站/搜索引擎最佳化
  • 北京市网站备案/杭州网站seo推广软件
  • 清流县建设局网站/做外贸有哪些网站平台
  • 最友善的建设网站技术/热搜榜排名今日第一