首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >高德大赛「城市舒适度感知网页」开发全指南(零基础适用)

高德大赛「城市舒适度感知网页」开发全指南(零基础适用)

作者头像
用户11944663
发布2025-12-22 11:04:35
发布2025-12-22 11:04:35
1280
举报

高德大赛「城市舒适度感知网页」开发全指南(零基础适用)

从工具安装到作品提交,全程17天清晰拆解为「准备→开发→收尾」三个阶段,每步都标注具体操作入口、输入内容和验证标准。只需按步骤点击鼠标、复制代码,即可完成符合参赛要求的作品。

🔴 第一阶段:准备工作(12.5-12.6,2天)

目标:搭建开发环境+获取高德地图权限+创建项目框架
【Day1:12月5日】安装必要工具
步骤1:安装Node.js(网页运行基础)
  1. 访问地址:https://nodejs.org/zh-cn
  2. 操作:点击首页「LTS」版本按钮(如v20.18.0),下载对应系统安装包(Windows选msi,Mac选pkg)
  3. 安装:
    • Windows:双击安装包,全程点「下一步」(默认勾选「Add to PATH」),最后点「完成」
    • Mac:双击pkg文件,拖入应用程序,输入密码完成安装
  4. 验证:
    • Windows:按Win+R,输入cmd,回车后输入node -v,显示v20.xx.x即成功
    • Mac:打开「终端」,输入node -v,显示版本号即成功
步骤2:安装VS Code(代码编辑工具)
  1. 访问地址:https://code.visualstudio.com/
  2. 操作:点击「Download」下载对应系统安装包
  3. 安装:
    • Windows:双击安装包,勾选「添加到PATH」,全程「下一步」
    • Mac:解压zip,将VS Code拖到「应用程序」文件夹
  4. 验证:打开VS Code,首次启动可安装中文插件,重启后界面显示中文即成功
步骤3:获取高德地图Key(访问地图的凭证)
  1. 访问地址:https://lbs.amap.com/
  2. 操作:
    • 右上角「登录」,用支付宝/淘宝扫码登录
    • 进入「控制台→应用管理→我的应用」,点击「创建新应用」:
      • 应用名称:填写「舒适度参赛作品」
      • 应用类型:选择「Web应用」,点击「创建」
    • 点击应用后的「添加Key」:
      • Key名称:填写「web-key」
      • Key类型:选择「Web端(JS API)」
      • Referer白名单:留空,点击「提交」
  3. 验证:生成包含字母和数字的Key(如a1b2c3d4e5f6),复制保存到记事本
【Day2:12月6日】创建Vue项目框架
步骤1:创建项目文件夹
  1. 操作:在电脑桌面右键,新建文件夹,命名为city-comfort
步骤2:用VS Code打开文件夹
  1. 操作:打开VS Code,点击「文件→打开文件夹」,选择桌面city-comfort文件夹
步骤3:初始化Vue项目

操作:在VS Code顶部点击「终端→新建终端」,依次输入以下命令(每行输完按回车):

代码语言:javascript
复制
npm create vue@3  # 创建Vue3项目(所有选项按回车默认即可)
cd vue-project    # 进入项目文件夹
npm install       # 安装依赖
npm run dev       # 启动项目

验证:终端出现绿色文字Local: http://localhost:5173/,复制链接到浏览器,显示「Vue.js + Vite」欢迎页即成功

🟢 第二阶段:功能开发(12.7-12.14,8天)

目标:实现地图显示、热力图、公园标记及舒适度弹窗
【Day3:12月7日】嵌入高德地图
步骤1:引入高德JS API

操作:在VS Code左侧展开vue-project→public,双击index.html,在<head>标签内粘贴以下代码(替换「你的高德Key」):

代码语言:javascript
复制
<script src="https://webapi.amap.com/maps?v=2.0&key=你的高德Key"></script>

验证:保存文件(Ctrl+S/Command+S),无红色语法报错即成功

步骤2:创建地图组件

操作:在VS Code左侧展开vue-project→src,右键src新建文件MapView.vue,粘贴以下代码:

代码语言:javascript
复制
<template>
  <div id="map" style="width:100%; height:100vh;"></div>
</template>

<script setup>
import { onMounted } from 'vue'

onMounted(() => {
  // 初始化地图(默认显示苏州区域)
  const map = new AMap.Map('map', {
    zoom: 14,          // 缩放级别
    center: [120.6196, 31.2994], // 苏州中心坐标
    viewMode: '3D'     // 3D模式
  })
})
</script>

验证:保存文件,无红色报错即成功

步骤3:显示地图组件

操作:在VS Code左侧展开vue-project→src,双击App.vue,删除原有内容,粘贴以下代码:

代码语言:javascript
复制
<template>
  <MapView />
</template>

<script setup>
import MapView from './MapView.vue'
</script>

验证:刷新浏览器http://localhost:5173,显示全屏高德地图(苏州区域)即成功

【Day4:12月8日】添加热力图与公园标记
步骤1:完善地图组件功能

操作:打开MapView.vue,替换为以下完整代码:

代码语言:javascript
复制
<template>
  <div id="map" style="width:100%; height:100vh;"></div>
</template>

<script setup>
import { onMounted } from 'vue'

// 生成模拟热力点数据
function generateHeatData(center, num = 80) {
  const data = []
  for (let i = 0; i < num; i++) {
    const lng = center[0] + (Math.random() - 0.5) * 0.03
    const lat = center[1] + (Math.random() - 0.5) * 0.03
    const count = Math.floor(Math.random() * 100) + 20
    data.push({ lng, lat, count })
  }
  return data
}

// 计算舒适度分数(人流越少分数越高)
function calculateComfort(heat) {
  let score = 100 - heat * 60
  return Math.max(30, Math.min(100, Math.round(score)))
}

onMounted(() => {
  const center = [120.6196, 31.2994] // 苏州中心坐标
  // 初始化地图
  const map = new AMap.Map('map', {
    zoom: 14,
    center: center,
    viewMode: '3D'
  })

  // 添加热力图
  const heatmap = new AMap.Heatmap(map, {
    radius: 25,
    opacity: [0, 0.8],
    gradient: { 0.5: 'blue', 0.8: 'yellow', 1: 'red' }
  })
  heatmap.setDataSet({ data: generateHeatData(center), max: 100 })

  // 模拟公园数据
  const parks = [
    { name: '金鸡湖景区', lng: 120.7231, lat: 31.3125 },
    { name: '白塘生态园', lng: 120.6723, lat: 31.3567 },
    { name: '上方山森林公园', lng: 120.5678, lat: 31.2789 },
    { name: '独墅湖公园', lng: 120.7456, lat: 31.2890 }
  ]

  // 添加公园标记和点击弹窗
  parks.forEach(park => {
    const marker = new AMap.Marker({
      position: [park.lng, park.lat],
      title: park.name
    })
    marker.setMap(map)

    const heat = Math.random() // 随机人流热度(0-1)
    const comfortScore = calculateComfort(heat)

    // 点击标记显示舒适度信息
    marker.on('click', () => {
      const color = comfortScore > 70 ? 'green' : comfortScore > 40 ? 'orange' : 'red'
      const advice = comfortScore > 70 ? '适合停留' : comfortScore > 40 ? '一般' : '建议避开'

      const infoWindow = new AMap.InfoWindow({
        content: `
          <div style="padding:12px; font-size:14px;">
            <h3 style="margin:0; font-size:16px;">${park.name}</h3>
            <p style="margin:8px 0;">舒适度:<strong style="color:${color}">${comfortScore}分</strong></p>
            <p style="margin:0; font-size:12px;">建议:${advice}</p>
          </div>
        `,
        offset: new AMap.Pixel(0, -30)
      })
      infoWindow.open(map, [park.lng, park.lat])
    })
  })
})
</script>

验证:刷新浏览器,地图显示热力图(红蓝黄渐变)和公园标记,点击标记弹出含舒适度分数的弹窗即成功

【Day5-10:12月9-14日】优化细节与准备素材
可选优化(按需调整):
  • 更换城市:修改center坐标(如北京:116.403874, 39.914885)
  • 增加地点:在parks数组添加更多地点的名称和坐标
  • 调整评分规则:修改calculateComfort函数的计算公式
核心任务:

录制演示视频(2-3分钟):

  • 工具:Windows用Win+G,Mac用QuickTime
  • 内容:打开网页→展示地图和热力图→点击2-3个公园→说明舒适度功能

制作作品介绍PDF:

工具:Word或金山文档(https://www.kdocs.cn/)

内容模板:

代码语言:javascript
复制
# 城市舒适度感知系统
## 1. 项目背景
为市民提供公共空间舒适度参考,辅助出行决策。
## 2. 技术实现
- 高德JS API:地图、热力图、标记点、信息窗口
- Vue3:前端框架
- 自定义算法:基于人流热度计算舒适度
## 3. 功能说明
- 3D地图展示城市区域
- 热力图直观呈现人流分布
- 点击公园标记查看舒适度评分及建议
## 4. 高德API使用清单
- AMap.Map:初始化地图
- AMap.Heatmap:展示热力图
- AMap.Marker:标记公园位置
- AMap.InfoWindow:显示舒适度信息
## 5. 创新点
将地理信息与环境舒适度结合,提升出行体验。

导出为PDF,命名为「城市舒适度-团队名-作品介绍.pdf」

🟡 第三阶段:收尾提交(12.15-12.21,7天)

目标:打包项目、部署上线、提交参赛材料
【Day11:12月15日】打包项目
  1. 操作:在VS Code终端(确保在vue-project目录下)输入npm run build,按回车
  2. 验证:项目文件夹下生成dist文件夹,包含打包后的网页文件即成功
【Day12-14:12月16-18日】免费部署上线
  1. 访问地址:https://vercel.com/
  2. 操作:
    • 用GitHub账号登录(无账号需注册)
    • 点击「New Project→Import Folder」,选择vue-project下的dist文件夹
    • 点击「Deploy」,等待部署完成
  3. 验证:生成在线网址(如https://city-comfort.vercel.app),打开后地图正常显示即成功
【Day15-21:12月19-21日】整理并提交材料
步骤1:整理提交文件

创建文件夹,包含以下内容:

  • 作品介绍PDF:「城市舒适度-团队名-作品介绍.pdf」
  • 演示视频:「城市舒适度-团队名-演示视频.mp4」
  • 符合性声明PDF:按大赛模板填写、签名后转PDF
  • 代码包(可选):vue-project文件夹压缩为ZIP
  • 在线网址:部署后的链接(保存为TXT)
步骤2:提交作品
  1. 关注高德大赛官方通知,等待提交通道开放
  2. 按要求上传整理好的文件夹,确认无误后提交

🚨 避坑指南(新手必看)

问题

解决方法

地图空白/Key无效

检查高德Key类型是否为「Web端(JS API)」,重新复制Key

热力图不显示

确认高德API版本为v2.0,热力数据格式是否为{lng,lat,count}

点击标记无弹窗

按F12打开浏览器控制台,查看是否有语法错误,检查InfoWindow代码

部署后地图不显示

在高德控制台的Key管理中,将*.vercel.app添加到Referer白名单

npm命令报错

重启终端、重新安装Node.js或切换网络(如手机热点)

💡 注意事项

  1. 所有代码可直接复制使用,无需理解底层逻辑,能正常运行即可参赛
  2. 若遇报错,截图终端或浏览器控制台的错误信息,便于排查问题
  3. 17天时间充足,关键是按步骤操作,不跳过验证环节

如需完整代码包或自定义修改(如更换城市),可随时说明需求获取帮助!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 高德大赛「城市舒适度感知网页」开发全指南(零基础适用)
    • 🔴 第一阶段:准备工作(12.5-12.6,2天)
      • 目标:搭建开发环境+获取高德地图权限+创建项目框架
    • 🟢 第二阶段:功能开发(12.7-12.14,8天)
      • 目标:实现地图显示、热力图、公园标记及舒适度弹窗
    • 🟡 第三阶段:收尾提交(12.15-12.21,7天)
      • 目标:打包项目、部署上线、提交参赛材料
    • 🚨 避坑指南(新手必看)
    • 💡 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档