TRAE MCP 实践:用高德地图搭建旅游攻略系统

本文作者:摘星,TRAE 开发者用户

摘要

近期我使用 TRAE AI IDE 结合高德 MCP 2.0 协议,开发了一个智能化的武汉旅游攻略系统。这次实践让我深深感受到了 AI 与传统地图服务结合的巨大潜力。

作为一名长期关注 AI 开发工具的技术爱好者,我一直在寻找能够真正提高开发效率的工具。当我接触到 TRAE 这款 AI IDE 时,它的自然语言编程能力就深深吸引了我。而高德地图推出的 MCP 2.0 协议,更是为 AI 应用提供了标准化的地理信息服务接口,这让我看到了无限的可能性。

在这次武汉国庆旅游项目中,我仅仅通过自然语言描述需求,TRAE 就能自动生成包含路线规划、天气查询、POI 搜索等功能的完整网页应用。整个开发过程就像是在与一位经验丰富的开发伙伴对话,我只需要描述想要什么功能,它就能理解我的意图并转化为具体的代码实现。

最让我印象深刻的是,这个系统不仅能够规划出科学合理的旅游路线,还能实时考虑天气因素、交通状况、景点开放时间等多维度信息,真正做到了智能化的旅行规划。从地理编码到路径规划,从 POI 搜索到天气查询,高德 MCP 2.0 提供的 14 项核心能力覆盖了出行场景的方方面面,而 TRAE 则将这些能力完美地整合到了用户友好的界面中。

效果演示

edgeone pages 部署的在线地址:

武汉四天三夜旅行攻略:mcp.edgeone.site/share/ttob_...

TRAE AI IDE:重新定义开发体验

1. 工具概述

TRAE (TRAE - The Real AI Engineer) www.trae.cn/

shell 复制代码
# TRAE安装非常简单
# 1. 访问官网 https://www.TRAE.cn/
# 2. 根据操作系统下载对应版本
# 3. 按照安装向导完成安装
# 4. 启动后即可开始AI驱动的开发体验

2. 核心特性

TRAE 的核心优势在于它能够理解开发者的自然语言意图,并将其转化为具体的代码实现:

javascript 复制代码
// 传统开发方式需要手写大量代码
function createTravelRoute(startPoint, endPoint) {
    // 复杂的路径规划逻辑
    // 地理编码处理
    // API调用封装
    // 错误处理
    // ...数百行代码
}
 
// 在TRAE中,只需要描述需求:
// "创建一个武汉旅游路线规划功能,包含景点推荐、路径优化、天气查询"
// AI会自动生成完整的实现代码

图 1:TRAE 与高德 MCP 技术架构图 - 展示了 AI IDE 与地图服务的深度集成架构

高德 MCP 2.0:AI 时代的地图服务革命

1. 高德 MCP 介绍

高德 MCP2.0 简介

高德 MCP2.0 实际上是大模型+高德 MCP1.0 的组合体,是真正的给 AI 装上了翅膀。

真正让高德贯穿你的行前-行中-行后始终,让每个人都能轻松拥有一个"真正懂你的出行秘书"。

高德 MCP2.0 架构

高德 MCP 采用的标准的 MCP 协议以及 CS 架构,用户在 AI IDE 中 Client 输入自然语言需求,发送到 MCP Server 进行处理。

高德 MCP2.0 能力介绍

功能 描述 输入 输出
生成专属地图小程序 将出行规划方案导入高德地图,生成专属(旅行)地图小程序 行程名称、行程详情(每日行程描述、行程途径点位) 专属小程序跳转链接
导航到目的地 根据用户传入经纬度,启动导航 目的地经纬度 高德导航跳转链接
打车 根据用户输入起终经纬度坐标,发起打车请求 origin (起点经纬度),destination (终点经纬度) 高德打车唤端链接
地理编码 将详细的结构化地址转换为经纬度坐标 address (位置信息),city (城市信息,非必须) location (位置经纬度)
逆地理编码 将一个高德经纬度坐标转换为行政区划地址信息 location (位置经纬度) location (位置经纬度) addressComponent (位置信息,包括省市区等信息)
IP 定位 根据用户输入的 IP 地址,定位 IP 的所在位置 IP province (省),city (城市),adcode (城市编码)
天气查询 根据城市名称或者标准 adcode 查询指定城市的天气 city (城市名称或城市 adcode) forecasts (预报天气)
骑行路径规划 规划骑行通勤方案,最大支持 500km origin (起点经纬度),destination (终点经纬度) distance (规划距离),duration (规划时间),steps (规划步骤信息)
步行路径规划 规划 100km 以内的步行通勤方案 origin (起点经纬度),destination (终点经纬度 origin (起点信息),destination (终点信息),paths (规划具体信息)
驾车路径规划 规划以小客车、轿车通勤出行的方案 origin (起点经纬度),destination (终点经纬度) origin (起点信息),destination (终点信息),paths (规划具体信息)
公交路径规划 规划综合各类公共交通方式的通勤方案 origin (起点经纬度),destination (终点经纬度),city (起点城市),cityd (终点城市) origin (起点信息),destination (终点信息),distance (规划距离),transits (规划具体信息)
距离测量 测量两个经纬度坐标之间的距离 origin (起点经纬度),destination (终点经纬度) origin_id (起点信息),dest_id (终点信息),distance (规划距离),duration (时间)
关键词搜索 根据用户传入关键词,搜索相关的 POI(兴趣点)地点信息 keywords (搜索关键词),city (查询城市,非必须) suggestion (搜索建议),pois (地点信息列表)
周边搜索 搜索指定坐标周围半径范围内的 POI 地点信息 keywords (搜索关键词),location (中心点经度纬度),radius (搜索半径,非必须) pois (地点信息列表)
详情搜索 查询 POI ID 的详细信息 id (关键词搜或周边搜获取的 poiid) 地点详情信息:location (地点经纬度),address (地址),business_area (商圈),city(城市),type (地点类型) 等

2. 访问高德地图开发平台

1. 访问高德开发平台:

开发 | 高德地图 API:lbs.amap.com/api

2. 查看高德 MCP Servers 文档

概述-MCP Server | 高德地图 API:lbs.amap.com/api/mcp-ser...

3. 参考高德官方给出的示例进行 MCP 的配置

3. 创建高德 API KEY

登录高德开发者平台控制台

首页 | 高德控制台: console.amap.com/dev/index

进入应用管理

我的应用 | 高德控制台: console.amap.com/dev/key/app

创建 API KEY

4. 配置高德 MCP

直接复制下方的 json,导入到 TRAE 中

json 复制代码
{
  "mcpServers": {
    "amap-maps-streamableHTTP": {
      "url": "https://mcp.amap.com/mcp?key=您的密钥"
    }
  }
}

可以看到高德地图提供的工具,如此现实便是配置成功

武汉旅游项目实战开发

1. 项目需求分析

这次实践的目标是为国庆节制作一个武汉 4 天旅游攻略,具体需求包括:

"在快速发展的 AI 时代,最重要的不是掌握所有技术细节,而是学会如何与 AI 协作,让技术为创意服务。"

------ 摘星

图 2:用户交互时序图 - 展示从需求输入到攻略生成的完整流程

2. 设计好 AI Coding 提示词

参考官方的提示词案例,根据你的具体业务需求设计出 AI Coding 提示词:

css 复制代码
制定一个十一计划去武汉游玩4天的旅行攻略。 
1、帮我制作旅行攻略,考虑出行时间和路线,以及天气状况路线规划。 
2、制作网页地图自定义绘制旅游路线和位置。 网页使用现代美学页面风格,景区图片以卡片展示。 
3、行程规划结果在高德地图app展示,并集成到h5页面中。 
4、同一天行程景区之间我想打车前往。 
5、生成文件名 kmTravel.html。

3. TRAE 根据提示词开发

将设计好的提示词输入到 TRAE 中,TRAE 就会自动设计出网页,并且调用高德 MCP2.0 中提供的功能设计好路线规划,并且会在网页中展示:

4. 迭代开发

在开发的过程中会遇到各种各样的问题,这时候需要我们指导 AI,根据我们想要的内容进行改正:

5. 部署上线

为了演示效果,我才用了 EdgeOne Pages 将本页面部署上线,这样大家就可以继续预览访问了

复制代码
调用edgeone pages mcp将本项目部署为在线网页

6. 武汉旅游攻略开发流程图

图 3:武汉旅游攻略开发流程图 -展示从需求分析到系统部署的完整开发流程

部署与上线

1. EdgeOne Pages 部署与上线

项目最终部署到了腾讯云 EdgeOne Pages 平台,实现了全球 CDN 加速:

shell 复制代码
# 部署配置
# 项目文件:kmTravel.html
# 部署平台:EdgeOne Pages
# 访问地址:https://mcp.edgeone.site/share/ttob_xJRB8TOxiYYkIt1z
 
# 部署步骤:
# 1. 构建优化后的HTML文件
# 2. 配置CDN加速节点
# 3. 设置SSL证书
# 4. 绑定自定义域名

2. 项目源码

代码块 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>武汉四天三夜旅行攻略</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <!-- 请替换为您的高德地图API密钥 -->
    <script src="https://webapi.amap.com/maps?v=1.4.15&key=您的高德地图API密钥"></script>
    <style>
      @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
      body {
        font-family: 'Inter', sans-serif;
      }
    </style>
    <style>
      @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
      body {
        font-family: 'Inter', sans-serif;
      }
      .hero-bg {
        background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://picsum.photos/id/1036/1920/1080');
        background-size: cover;
        background-position: center;
      }
      .card-hover {
        transition: transform 0.3s ease, box-shadow 0.3s ease;
      }
      .card-hover:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
      }
      .map-container {
        height: 400px;
        width: 100%;
      }
      .itinerary-day {
        scroll-margin-top: 80px;
      }
    </style>
  </head>
  <body class="bg-gray-50 text-gray-800">
    <!-- 导航栏 -->
    <nav class="fixed top-0 left-0 right-0 bg-white shadow-md z-50 transition-all duration-300" id="navbar">
      <div class="container mx-auto px-4 py-3 flex justify-between items-center">
        <a href="#" class="flex items-center space-x-2">
          <i class="fa fa-map-o text-red-500 text-2xl"></i>
          <span class="font-bold text-xl text-red-500">武汉旅行攻略</span>
        </a>
        <div class="hidden md:flex space-x-6">
          <a href="#overview" class="hover:text-red-500 transition-colors">行程概览</a>
          <a href="#day1" class="hover:text-red-500 transition-colors">第一天</a>
          <a href="#day2" class="hover:text-red-500 transition-colors">第二天</a>
          <a href="#day3" class="hover:text-red-500 transition-colors">第三天</a>
          <a href="#day4" class="hover:text-red-500 transition-colors">第四天</a>
          <a href="#map" class="hover:text-red-500 transition-colors">旅行地图</a>
        </div>
        <button class="md:hidden text-gray-700" id="menu-toggle">
          <i class="fa fa-bars text-xl"></i>
        </button>
      </div>
      <!-- 移动端菜单 -->
      <div class="md:hidden hidden bg-white w-full" id="mobile-menu">
        <div class="container mx-auto px-4 py-2 flex flex-col space-y-3">
          <a href="#overview" class="hover:text-red-500 transition-colors py-2 border-b border-gray-100">行程概览</a>
                <a href="#day1" class="hover:text-red-500 transition-colors py-2 border-b border-gray-100">第一天</a>
                <a href="#day2" class="hover:text-red-500 transition-colors py-2 border-b border-gray-100">第二天</a>
                <a href="#day3" class="hover:text-red-500 transition-colors py-2 border-b border-gray-100">第三天</a>
                <a href="#day4" class="hover:text-red-500 transition-colors py-2 border-b border-gray-100">第四天</a>
                <a href="#map" class="hover:text-red-500 transition-colors py-2">旅行地图</a>
            </div>
        </div>
    </nav>
 
    <!-- 英雄区域 -->
    <header class="hero-bg h-screen flex items-center justify-center text-white pt-16">
        <div class="container mx-auto px-4 text-center">
            <h1 class="text-4xl md:text-6xl font-bold mb-4 animate-fade-in">武汉四天三夜旅行攻略</h1>
            <p class="text-xl md:text-2xl mb-8 max-w-3xl mx-auto">探索江城武汉的历史文化与自然风光,体验独特的荆楚魅力</p>
            <a href="#overview" class="inline-block bg-red-500 hover:bg-red-600 text-white font-medium py-3 px-8 rounded-full transition-all duration-300 transform hover:scale-105">开始探索</a>
        </div>
    </header>
 
    <!-- 行程概览 -->
    <section id="overview" class="py-16 bg-white">
        <div class="container mx-auto px-4">
            <h2 class="text-3xl font-bold mb-2 text-center">行程概览</h2>
            <p class="text-gray-600 text-center mb-12 max-w-2xl mx-auto">2024年10月1日至4日,武汉之旅</p>
 
            <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-12">
                <!-- 天气卡片 -->
                <div class="bg-blue-50 rounded-xl p-6 shadow-sm card-hover">
                    <div class="flex justify-between items-center mb-4">
                        <h3 class="font-semibold text-lg">天气状况</h3>
                        <i class="fa fa-sun-o text-yellow-500 text-xl"></i>
                    </div>
                    <ul class="space-y-3">
                        <li class="flex justify-between"><span>10月1日</span><span class="font-medium">多云到晴天 15-26°C</span></li>
                        <li class="flex justify-between"><span>10月2日</span><span class="font-medium">晴天 12-24°C</span></li>
                        <li class="flex justify-between"><span>10月3日</span><span class="font-medium">晴天到多云 12-24°C</span></li>
                        <li class="flex justify-between"><span>10月4日</span><span class="font-medium">晴天到多云 13-24°C</span></li>
                    </ul>
                </div>
 
                <!-- 交通卡片 -->
                <div class="bg-green-50 rounded-xl p-6 shadow-sm card-hover">
                    <div class="flex justify-between items-center mb-4">
                        <h3 class="font-semibold text-lg">交通方式</h3>
                        <i class="fa fa-taxi text-green-500 text-xl"></i>
                    </div>
                    <p class="mb-4">市内主要景点之间均选择打车前往,方便快捷</p>
                    <div class="flex items-center text-sm text-gray-600">
                        <i class="fa fa-info-circle text-blue-500 mr-2"></i>
                        <span>高峰期可能会有拥堵,请预留充足时间</span>
                    </div>
                </div>
 
                <!-- 景点卡片 -->
                <div class="bg-purple-50 rounded-xl p-6 shadow-sm card-hover">
                    <div class="flex justify-between items-center mb-4">
                        <h3 class="font-semibold text-lg">主要景点</h3>
                        <i class="fa fa-map-marker text-purple-500 text-xl"></i>
                    </div>
                    <ul class="space-y-2 text-sm">
                        <li>• 黄鹤楼</li>
                        <li>• 东湖风景区</li>
                        <li>• 湖北省博物馆</li>
                        <li>• 汉口江滩</li>
                        <li>• 知音号</li>
                        <li>• 归元寺</li>
                    </ul>
                </div>
 
                <!-- 美食卡片 -->
                <div class="bg-red-50 rounded-xl p-6 shadow-sm card-hover">
                    <div class="flex justify-between items-center mb-4">
                        <h3 class="font-semibold text-lg">特色美食</h3>
                        <i class="fa fa-cutlery text-red-500 text-xl"></i>
                    </div>
                    <ul class="space-y-2 text-sm">
                        <li>• 热干面</li>
                        <li>• 豆皮</li>
                        <li>• 鸭脖</li>
                        <li>• 武昌鱼</li>
                        <li>• 糊汤粉</li>
                        <li>• 烧卖</li>
                    </ul>
                </div>
 
                <!-- 住宿建议卡片 -->
                <div class="bg-indigo-50 rounded-xl p-6 shadow-sm card-hover">
                    <div class="flex justify-between items-center mb-4">
                        <h3 class="font-semibold text-lg">住宿建议</h3>
                        <i class="fa fa-bed text-indigo-500 text-xl"></i>
                    </div>
                    <ul class="space-y-2 text-sm">
                        <li>• 武昌区:靠近黄鹤楼、户部巷等景点</li>
                        <li>• 江汉区:商业中心,交通便利</li>
                        <li>• 汉口江滩附近:夜景优美</li>
                        <li>• 建议提前1-2周预订酒店</li>
                        <li>• 推荐连锁酒店或特色民宿</li>
                    </ul>
                </div>
            </div>
        </div>
    </section>
 
    <!-- 第一天行程 -->
    <section id="day1" class="itinerary-day py-16 bg-gray-50">
        <div class="container mx-auto px-4">
            <div class="flex items-center mb-8">
                <div class="bg-red-500 text-white font-bold rounded-full w-12 h-12 flex items-center justify-center mr-4">1</div>
                <h2 class="text-3xl font-bold">第一天 (10月1日)</h2>
            </div>
            <p class="text-gray-600 mb-8">多云到晴天,偏北风4-5级,15-26°C</p>
 
            <div class="grid grid-cols-1 md:grid-cols-3 gap-8 mb-12">
                <!-- 景点1 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1037/600/400" alt="黄鹤楼" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">黄鹤楼</h3>
                            <span class="bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded">上午</span>
                        </div>
                        <p class="text-gray-600 mb-4">武汉的标志性建筑之一,位于蛇山之巅,登上黄鹤楼可以俯瞰武汉三镇的美景。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 8:00-18:00</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 70元/人</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点2 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1038/600/400" alt="户部巷" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">户部巷</h3>
                            <span class="bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded">中午</span>
                        </div>
                        <p class="text-gray-600 mb-4">武汉著名的小吃街,这里有各种各样的美食,如热干面、豆皮、鸭脖等。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 全天</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 免费</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点3 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1039/600/400" alt="长江大桥" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">长江大桥</h3>
                            <span class="bg-blue-100 text-blue-800 text-xs font-medium px-2.5 py-0.5 rounded">下午</span>
                        </div>
                        <p class="text-gray-600 mb-4">横跨长江的第一座大桥,也是武汉的标志性建筑之一,可以在桥上散步,欣赏江景。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 全天</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 免费</span>
                        </div>
                    </div>
                </div>
            </div>
 
            <div class="bg-white rounded-xl p-6 shadow-sm">
                <h3 class="text-xl font-semibold mb-4">行程路线</h3>
                <div class="flex items-start space-x-4">
                    <div class="flex flex-col items-center mt-1">
                        <div class="bg-orange-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">1</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-orange-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">2</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-orange-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">3</div>
                    </div>
                    <div class="flex-1 space-y-6">
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">黄鹤楼</h4>
                                <p class="text-sm text-gray-600 mt-1">上午9:00-11:30游览黄鹤楼,欣赏武汉全景</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2.5小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往户部巷</span>
                            <span>约5公里,车程15分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">户部巷</h4>
                                <p class="text-sm text-gray-600 mt-1">中午12:00-13:30在户部巷品尝武汉特色美食</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约1.5小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往长江大桥</span>
                            <span>约2公里,车程10分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">长江大桥</h4>
                                <p class="text-sm text-gray-600 mt-1">下午14:00-16:00漫步长江大桥,欣赏江景</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2小时</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
 
    <!-- 第二天行程 -->
    <section id="day2" class="itinerary-day py-16 bg-white">
        <div class="container mx-auto px-4">
            <div class="flex items-center mb-8">
                <div class="bg-red-500 text-white font-bold rounded-full w-12 h-12 flex items-center justify-center mr-4">2</div>
                <h2 class="text-3xl font-bold">第二天 (10月2日)</h2>
            </div>
            <p class="text-gray-600 mb-8">晴天,偏北风3-4级,12-24°C</p>
 
            <div class="grid grid-cols-1 md:grid-cols-3 gap-8 mb-12">
                <!-- 景点1 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/250/600/400" alt="湖北省博物馆" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">湖北省博物馆</h3>
                            <span class="bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded">上午</span>
                        </div>
                        <p class="text-gray-600 mb-4">馆内收藏了大量的历史文物和艺术品,如曾侯乙编钟、越王勾践剑等。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 9:00-17:00(周一闭馆)</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 免费(需提前预约)</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点2 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1041/600/400" alt="东湖风景区" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">东湖风景区</h3>
                            <span class="bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded">中午</span>
                        </div>
                        <p class="text-gray-600 mb-4">是中国最大的城中湖,景色秀丽,可以乘船游览湖光山色,也可以骑行或散步。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 全天</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 免费(部分景点收费)</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点3 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1042/600/400" alt="武汉大学" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">武汉大学</h3>
                            <span class="bg-blue-100 text-blue-800 text-xs font-medium px-2.5 py-0.5 rounded">下午</span>
                        </div>
                        <p class="text-gray-600 mb-4">中国最美丽的大学之一,校园内有许多古老的建筑和美丽的花园。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 全天</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 免费</span>
                        </div>
                    </div>
                </div>
            </div>
 
            <div class="bg-white rounded-xl p-6 shadow-sm">
                <h3 class="text-xl font-semibold mb-4">行程路线</h3>
                <div class="flex items-start space-x-4">
                    <div class="flex flex-col items-center mt-1">
                        <div class="bg-orange-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">1</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-orange-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">2</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-orange-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">3</div>
                    </div>
                    <div class="flex-1 space-y-6">
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">湖北省博物馆</h4>
                                <p class="text-sm text-gray-600 mt-1">上午9:00-11:30参观湖北省博物馆,欣赏珍贵文物</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2.5小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往东湖风景区</span>
                            <span>约3公里,车程10分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">东湖风景区</h4>
                                <p class="text-sm text-gray-600 mt-1">中午12:00-14:30在东湖风景区游览,可选择骑行或乘船</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2.5小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往武汉大学</span>
                            <span>约5公里,车程15分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">武汉大学</h4>
                                <p class="text-sm text-gray-600 mt-1">下午15:00-17:00漫步武大校园,欣赏古老建筑</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2小时</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
 
    <!-- 第三天行程 -->
    <section id="day3" class="itinerary-day py-16 bg-gray-50">
        <div class="container mx-auto px-4">
            <div class="flex items-center mb-8">
                <div class="bg-red-500 text-white font-bold rounded-full w-12 h-12 flex items-center justify-center mr-4">3</div>
                <h2 class="text-3xl font-bold">第三天 (10月3日)</h2>
            </div>
            <p class="text-gray-600 mb-8">晴天到多云,偏北风3-4级转2-3级,12-24°C</p>
 
            <div class="grid grid-cols-1 md:grid-cols-3 gap-8 mb-12">
                <!-- 景点1 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1058/600/400" alt="江汉路步行街" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">江汉路步行街</h3>
                            <span class="bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded">上午</span>
                        </div>
                        <p class="text-gray-600 mb-4">武汉最繁华的商业街之一,有许多商场、餐厅和娱乐场所。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 全天</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 免费</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点2 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1044/600/400" alt="汉口江滩" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">汉口江滩</h3>
                            <span class="bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded">中午</span>
                        </div>
                        <p class="text-gray-600 mb-4">武汉的滨江公园,这里有美丽的江景和休闲设施,可以在江边散步、放风筝。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 全天</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 免费</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点3 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1045/600/400" alt="知音号" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">知音号</h3>
                            <span class="bg-purple-100 text-purple-800 text-xs font-medium px-2.5 py-0.5 rounded">晚上</span>
                        </div>
                        <p class="text-gray-600 mb-4">一艘复古的轮船,晚上可以乘坐知音号游览长江,欣赏夜景和表演。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>演出时间: 19:30-21:00</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 228元/人起</span>
                        </div>
                    </div>
                </div>
            </div>
 
            <div class="bg-white rounded-xl p-6 shadow-sm">
                <h3 class="text-xl font-semibold mb-4">行程路线</h3>
                <div class="flex items-start space-x-4">
                    <div class="flex flex-col items-center mt-1">
                        <div class="bg-red-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">1</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-red-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">2</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-red-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">3</div>
                    </div>
                    <div class="flex-1 space-y-6">
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">江汉路步行街</h4>
                                <p class="text-sm text-gray-600 mt-1">上午9:30-11:30在江汉路步行街购物、观光</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往汉口江滩</span>
                            <span>约2公里,车程10分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">汉口江滩</h4>
                                <p class="text-sm text-gray-600 mt-1">中午12:00-14:30在汉口江滩游览,欣赏江景</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2.5小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往知音号码头</span>
                            <span>约3公里,车程15分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">知音号</h4>
                                <p class="text-sm text-gray-600 mt-1">晚上19:00-21:30乘坐知音号,欣赏长江夜景和表演</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2.5小时</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
 
    <!-- 第四天行程 -->
    <section id="day4" class="itinerary-day py-16 bg-white">
        <div class="container mx-auto px-4">
            <div class="flex items-center mb-8">
                <div class="bg-red-500 text-white font-bold rounded-full w-12 h-12 flex items-center justify-center mr-4">4</div>
                <h2 class="text-3xl font-bold">第四天 (10月4日)</h2>
            </div>
            <p class="text-gray-600 mb-8">晴天到多云,偏北风2-3级,13-24°C</p>
 
            <div class="grid grid-cols-1 md:grid-cols-3 gap-8 mb-12">
                <!-- 景点1 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/164/600/400" alt="归元寺" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">归元寺</h3>
                            <span class="bg-yellow-100 text-yellow-800 text-xs font-medium px-2.5 py-0.5 rounded">上午</span>
                        </div>
                        <p class="text-gray-600 mb-4">武汉著名的佛教寺庙,寺内有许多古老的建筑和佛像。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 8:00-17:00</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 10元/人</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点2 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1080/600/400" alt="午餐" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">特色午餐</h3>
                            <span class="bg-green-100 text-green-800 text-xs font-medium px-2.5 py-0.5 rounded">中午</span>
                        </div>
                        <p class="text-gray-600 mb-4">品尝武汉特色美食,如热干面、豆皮、武昌鱼等。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>建议时间: 11:30-13:00</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-map-marker mr-2"></i>
                            <span>推荐地点: 归元寺周边餐厅</span>
                        </div>
                    </div>
                </div>
 
                <!-- 景点3 -->
                <div class="bg-white rounded-xl overflow-hidden shadow-sm card-hover">
                    <div class="h-48 overflow-hidden">
                        <img src="https://picsum.photos/id/1047/600/400" alt="古琴台" class="w-full h-full object-cover transform hover:scale-110 transition-transform duration-500">
                    </div>
                    <div class="p-6">
                        <div class="flex justify-between items-center mb-2">
                            <h3 class="text-xl font-semibold">古琴台</h3>
                            <span class="bg-blue-100 text-blue-800 text-xs font-medium px-2.5 py-0.5 rounded">下午</span>
                        </div>
                        <p class="text-gray-600 mb-4">又名俞伯牙台,是中国音乐文化古迹之一。</p>
                        <div class="flex items-center text-sm text-gray-500 mb-4">
                            <i class="fa fa-clock-o mr-2"></i>
                            <span>开放时间: 8:30-17:30</span>
                        </div>
                        <div class="flex items-center text-sm text-gray-500">
                            <i class="fa fa-ticket mr-2"></i>
                            <span>门票: 15元/人</span>
                        </div>
                    </div>
                </div>
            </div>
 
            <div class="bg-white rounded-xl p-6 shadow-sm">
                <h3 class="text-xl font-semibold mb-4">行程路线</h3>
                <div class="flex items-start space-x-4">
                    <div class="flex flex-col items-center mt-1">
                        <div class="bg-red-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">1</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-red-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">2</div>
                        <div class="w-0.5 h-full bg-gray-200 my-2"></div>
                        <div class="bg-red-500 rounded-full w-8 h-8 flex items-center justify-center text-white font-medium">3</div>
                    </div>
                    <div class="flex-1 space-y-6">
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">归元寺</h4>
                                <p class="text-sm text-gray-600 mt-1">上午9:00-11:00参观归元寺,感受佛教文化</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往午餐地点</span>
                            <span>约1公里,车程5分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">特色午餐</h4>
                                <p class="text-sm text-gray-600 mt-1">中午11:30-13:00品尝武汉特色美食</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约1.5小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500">
                            <span>打车前往古琴台</span>
                            <span>约4公里,车程15分钟</span>
                        </div>
                        <div class="flex items-start">
                            <div class="flex-1">
                                <h4 class="font-medium">古琴台</h4>
                                <p class="text-sm text-gray-600 mt-1">下午14:00-16:00游览古琴台,了解音乐文化</p>
                            </div>
                            <div class="text-right whitespace-nowrap">
                                <span class="text-sm bg-gray-100 text-gray-800 px-2 py-1 rounded">约2小时</span>
                            </div>
                        </div>
                        <div class="flex items-center justify-between text-sm text-gray-500 mt-8 pt-4 border-t border-gray-100">
                            <span class="font-medium">返程</span>
                            <span>下午16:30后可根据航班/火车时间安排返程</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
 
    <!-- 地图部分 -->
    <section id="map" class="py-16 bg-gray-50">
        <div class="container mx-auto px-4">
            <h2 class="text-3xl font-bold mb-2 text-center">旅行地图</h2>
            <p class="text-gray-600 text-center mb-12 max-w-2xl mx-auto">查看所有景点的位置和路线</p>
 
            <div class="bg-white rounded-xl shadow-sm overflow-hidden mb-8">
                <div class="map-container" id="travelMap"></div>
            </div>
 
            <div class="flex justify-center">
                <button id="openGaodeMap" class="bg-blue-500 hover:bg-blue-600 text-white font-medium py-3 px-8 rounded-full transition-all duration-300 flex items-center space-x-2">
                    <i class="fa fa-map-marker"></i>
                    <span>在高德地图中打开</span>
                </button>
            </div>
        </div>
    </section>
 
    <!-- 页脚 -->
    <footer class="bg-gray-800 text-white py-12">
        <div class="container mx-auto px-4">
            <div class="grid grid-cols-1 md:grid-cols-3 gap-8 mb-8">
                <div>
                    <h3 class="text-xl font-semibold mb-4 flex items-center space-x-2">
                        <i class="fa fa-map-o text-red-500"></i>
                        <span>武汉旅行攻略</span>
                    </h3>
                    <p class="text-gray-400 mb-4">探索江城武汉的历史文化与自然风光,体验独特的荆楚魅力。</p>
                    <div class="flex space-x-4">
                        <a href="#" class="text-gray-400 hover:text-white transition-colors"><i class="fa fa-weibo text-xl"></i></a>
                        <a href="#" class="text-gray-400 hover:text-white transition-colors"><i class="fa fa-wechat text-xl"></i></a>
                        <a href="#" class="text-gray-400 hover:text-white transition-colors"><i class="fa fa-instagram text-xl"></i></a>
                    </div>
                </div>
                <div>
                    <h3 class="text-lg font-semibold mb-4">快速导航</h3>
                    <ul class="space-y-2">
                        <li><a href="#overview" class="text-gray-400 hover:text-white transition-colors">行程概览</a></li>
                        <li><a href="#day1" class="text-gray-400 hover:text-white transition-colors">第一天</a></li>
                        <li><a href="#day2" class="text-gray-400 hover:text-white transition-colors">第二天</a></li>
                        <li><a href="#day3" class="text-gray-400 hover:text-white transition-colors">第三天</a></li>
                        <li><a href="#day4" class="text-gray-400 hover:text-white transition-colors">第四天</a></li>
                        <li><a href="#map" class="text-gray-400 hover:text-white transition-colors">旅行地图</a></li>
                    </ul>
                </div>
                <div>
                    <h3 class="text-lg font-semibold mb-4">实用信息</h3>
                    <ul class="space-y-2 text-gray-400">
                        <li class="flex items-start space-x-2">
                            <i class="fa fa-phone mt-1"></i>
                            <span>旅游咨询: 027-12301</span>
                        </li>
                        <li class="flex items-start space-x-2">
                            <i class="fa fa-hospital-o mt-1"></i>
                            <span>急救: 120</span>
                        </li>
                        <li class="flex items-start space-x-2">
                            <i class="fa fa-police mt-1"></i>
                            <span>报警: 110</span>
                        </li>
                    </ul>
                </div>
            </div>
            <div class="border-t border-gray-700 pt-8 text-center text-gray-400">
                <p>&copy; 2024 武汉旅行攻略 | 版权所有</p>
            </div>
        </div>
    </footer>
 
    <script>
        // 导航栏滚动效果
        window.addEventListener('scroll', function() {
            const navbar = document.getElementById('navbar');
            if (window.scrollY > 50) {
                navbar.classList.add('py-2', 'shadow-lg');
                navbar.classList.remove('py-3', 'shadow-md');
            } else {
                navbar.classList.add('py-3', 'shadow-md');
                navbar.classList.remove('py-2', 'shadow-lg');
            }
        });
 
        // 移动端菜单切换
        document.getElementById('menu-toggle').addEventListener('click', function() {
            const mobileMenu = document.getElementById('mobile-menu');
            mobileMenu.classList.toggle('hidden');
        });
 
        // 平滑滚动
        document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function (e) {
                e.preventDefault();
                const targetId = this.getAttribute('href');
                const targetElement = document.querySelector(targetId);
                if (targetElement) {
                    window.scrollTo({
                        top: targetElement.offsetTop - 80,
                        behavior: 'smooth'
                    });
                    // 关闭移动端菜单
                    document.getElementById('mobile-menu').classList.add('hidden');
                }
            });
        });
 
        // 初始化地图 - 使用懒加载优化性能
        function initMap() {
            // 请替换为您的高德地图API密钥
            const apiKey = '您的高德地图API密钥';
 
            // 景点坐标(示例坐标,实际需替换)
            const attractions = [
                { name: '黄鹤楼', position: [114.298574, 30.592855] },
                { name: '户部巷', position: [114.303144, 30.590639] },
                { name: '长江大桥', position: [114.283843, 30.590931] },
                { name: '湖北省博物馆', position: [114.319507, 30.546004] },
                { name: '东湖风景区', position: [114.330397, 30.543851] },
                { name: '武汉大学', position: [114.360426, 30.543279] },
                { name: '江汉路步行街', position: [114.276881, 30.615411] },
                { name: '汉口江滩', position: [114.270975, 30.625122] },
                { name: '知音号', position: [114.274556, 30.623277] },
                { name: '归元寺', position: [114.252793, 30.560929] },
                { name: '古琴台', position: [114.255047, 30.567161] }
            ];
 
            // 尝试初始化地图
            try {
                const map = new AMap.Map('travelMap', {
                    resizeEnable: true,
                    zoom: 11,
                    center: [114.305558, 30.592771],
                    // 简化地图样式,提高加载速度
                    features: ['road', 'point']
                });
 
                // 添加标记
                attractions.forEach(attraction => {
                    const marker = new AMap.Marker({
                        position: attraction.position,
                        title: attraction.name,
                        map: map
                    });
 
                    // 添加信息窗口
                    const infoWindow = new AMap.InfoWindow({
                        content: `<h3>${attraction.name}</h3>`,
                        offset: new AMap.Pixel(0, -30)
                    });
 
                    marker.on('click', function() {
                        infoWindow.open(map, marker.getPosition());
                    });
                });
 
                // 第一天路线
                const day1Route = [
                    [114.298574, 30.592855], // 黄鹤楼
                    [114.303144, 30.590639], // 户部巷
                    [114.283843, 30.590931]  // 长江大桥
                ];
 
                // 绘制第一天路线
                const polyline1 = new AMap.Polyline({
                    path: day1Route,
                    strokeColor: '#FF0000',
                    strokeWeight: 5,
                    strokeOpacity: 0.7,
                    map: map
                });
 
                // 第二天路线
                const day2Route = [
                    [114.319507, 30.546004], // 湖北省博物馆
                    [114.330397, 30.543851], // 东湖风景区
                    [114.360426, 30.543279]  // 武汉大学
                ];
 
                // 绘制第二天路线
                const polyline2 = new AMap.Polyline({
                    path: day2Route,
                    strokeColor: '#0080FF',
                    strokeWeight: 5,
                    strokeOpacity: 0.7,
                    map: map
                });
 
                // 第三天路线
                const day3Route = [
                    [114.276881, 30.615411], // 江汉路步行街
                    [114.270975, 30.625122], // 汉口江滩
                    [114.274556, 30.623277]  // 知音号
                ];
 
                // 绘制第三天路线
                const polyline3 = new AMap.Polyline({
                    path: day3Route,
                    strokeColor: '#00B42A',
                    strokeWeight: 5,
                    strokeOpacity: 0.7,
                    map: map
                });
 
                // 第四天路线
                const day4Route = [
                    [114.252793, 30.560929], // 归元寺
                    [114.255047, 30.567161]  // 古琴台
                ];
 
                // 绘制第四天路线
                const polyline4 = new AMap.Polyline({
                    path: day4Route,
                    strokeColor: '#FF7D00',
                    strokeWeight: 5,
                    strokeOpacity: 0.7,
                    map: map
                });
 
                // 调整地图视野
                map.setFitView([polyline1, polyline2, polyline3, polyline4]);
 
            } catch (error) {
                console.error('地图初始化失败:', error);
                document.getElementById('travelMap').innerHTML = '<div class="flex items-center justify-center h-full text-gray-500"><i class="fa fa-map-o text-5xl mr-4"></i><p>地图加载失败,请检查您的API密钥是否正确</p></div>';
            }
        }
 
        // 打开高德地图按钮
        document.getElementById('openGaodeMap').addEventListener('click', function() {
            // 这里使用高德地图的URL Scheme,实际使用时需替换为正确的坐标
            const gaodeUrl = 'https://uri.amap.com/marker?position=114.305558,30.592771&name=武汉旅行攻略&src=webapp&coordinate=gaode';
            window.open(gaodeUrl, '_blank');
        });
 
        // 懒加载地图
        function lazyLoadMap() {
            const mapContainer = document.getElementById('travelMap');
            const rect = mapContainer.getBoundingClientRect();
            const windowHeight = window.innerHeight || document.documentElement.clientHeight;
 
            // 当地图容器进入视口时初始化地图
            if (rect.top <= windowHeight && rect.bottom >= 0) {
                initMap();
                window.removeEventListener('scroll', lazyLoadMap);
                window.removeEventListener('resize', lazyLoadMap);
                window.removeEventListener('orientationchange', lazyLoadMap);
            }
        }
 
        // 注册事件监听
        window.addEventListener('scroll', lazyLoadMap);
        window.addEventListener('resize', lazyLoadMap);
        window.addEventListener('orientationchange', lazyLoadMap);
 
        // 初始检查
        window.addEventListener('load', lazyLoadMap);
    </script>
</body>
</html>
代码块 复制代码
// 导航栏滚动效果
window.addEventListener('scroll', function() {
const navbar = document.getElementById('navbar');
if (window.scrollY > 50) {
  navbar.classList.add('py-2', 'shadow-lg');
  navbar.classList.remove('py-3', 'shadow-md');
} else {
  navbar.classList.add('py-3', 'shadow-md');
  navbar.classList.remove('py-2', 'shadow-lg');
}
});

// 移动端菜单切换
document.getElementById('menu-toggle').addEventListener('click', function() {
const mobileMenu = document.getElementById('mobile-menu');
mobileMenu.classList.toggle('hidden');
});

// 平滑滚动
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
  e.preventDefault();
  const targetId = this.getAttribute('href');
  const targetElement = document.querySelector(targetId);
  if (targetElement) {
    window.scrollTo({
      top: targetElement.offsetTop - 80,
      behavior: 'smooth'
    });
    // 关闭移动端菜单
    document.getElementById('mobile-menu').classList.add('hidden');
  }
});
});

// 初始化地图 - 使用懒加载优化性能
function initMap() {
// 请替换为您的高德地图API密钥
const apiKey = '您的高德地图API密钥';

// 景点坐标(示例坐标,实际需替换)
const attractions = [
  { name: '黄鹤楼', position: [114.298574, 30.592855] },
  { name: '户部巷', position: [114.303144, 30.590639] },
  { name: '长江大桥', position: [114.283843, 30.590931] },
  { name: '湖北省博物馆', position: [114.319507, 30.546004] },
  { name: '东湖风景区', position: [114.330397, 30.543851] },
  { name: '武汉大学', position: [114.360426, 30.543279] },
  { name: '江汉路步行街', position: [114.276881, 30.615411] },
  { name: '汉口江滩', position: [114.270975, 30.625122] },
  { name: '知音号', position: [114.274556, 30.623277] },
  { name: '归元寺', position: [114.252793, 30.560929] },
  { name: '古琴台', position: [114.255047, 30.567161] }
];

// 尝试初始化地图
try {
  const map = new AMap.Map('travelMap', {
    resizeEnable: true,
    zoom: 11,
    center: [114.305558, 30.592771],
    // 简化地图样式,提高加载速度
    features: ['road', 'point']
  });

  // 添加标记
  attractions.forEach(attraction => {
    const marker = new AMap.Marker({
      position: attraction.position,
      title: attraction.name,
      map: map
    });

    // 添加信息窗口
    const infoWindow = new AMap.InfoWindow({
      content: `<h3>${attraction.name}</h3>`,
      offset: new AMap.Pixel(0, -30)
    });

    marker.on('click', function() {
      infoWindow.open(map, marker.getPosition());
    });
  });

  // 第一天路线
  const day1Route = [
    [114.298574, 30.592855], // 黄鹤楼
    [114.303144, 30.590639], // 户部巷
    [114.283843, 30.590931]  // 长江大桥
  ];

  // 绘制第一天路线
  const polyline1 = new AMap.Polyline({
          path: day1Route,
          strokeColor: '#FF0000',
          strokeWeight: 5,
          strokeOpacity: 0.7,
          map: map
      });

      // 第二天路线
      const day2Route = [
          [114.319507, 30.546004], // 湖北省博物馆
          [114.330397, 30.543851], // 东湖风景区
          [114.360426, 30.543279]  // 武汉大学
      ];

      // 绘制第二天路线
      const polyline2 = new AMap.Polyline({
          path: day2Route,
          strokeColor: '#0080FF',
          strokeWeight: 5,
          strokeOpacity: 0.7,
          map: map
      });

      // 第三天路线
      const day3Route = [
          [114.276881, 30.615411], // 江汉路步行街
          [114.270975, 30.625122], // 汉口江滩
          [114.274556, 30.623277]  // 知音号
      ];

      // 绘制第三天路线
      const polyline3 = new AMap.Polyline({
          path: day3Route,
          strokeColor: '#00B42A',
          strokeWeight: 5,
          strokeOpacity: 0.7,
          map: map
      });

      // 第四天路线
      const day4Route = [
          [114.252793, 30.560929], // 归元寺
          [114.255047, 30.567161]  // 古琴台
      ];

      // 绘制第四天路线
      const polyline4 = new AMap.Polyline({
          path: day4Route,
          strokeColor: '#FF7D00',
          strokeWeight: 5,
          strokeOpacity: 0.7,
          map: map
      });

      // 调整地图视野
      map.setFitView([polyline1, polyline2, polyline3, polyline4]);

  } catch (error) {
      console.error('地图初始化失败:', error);
      document.getElementById('travelMap').innerHTML = '<div class="flex items-center justify-center h-full text-gray-500"><i class="fa fa-map-o text-5xl mr-4"></i><p>地图加载失败,请检查您的API密钥是否正确</p></div>';
  }
}

// 打开高德地图按钮
document.getElementById('openGaodeMap').addEventListener('click', function() {
  // 这里使用高德地图的URL Scheme,实际使用时需替换为正确的坐标
  const gaodeUrl = 'https://uri.amap.com/marker?position=114.305558,30.592771&name=武汉旅行攻略&src=webapp&coordinate=gaode';
  window.open(gaodeUrl, '_blank');
});

// 懒加载地图
function lazyLoadMap() {
  const mapContainer = document.getElementById('travelMap');
  const rect = mapContainer.getBoundingClientRect();
  const windowHeight = window.innerHeight || document.documentElement.clientHeight;

  // 当地图容器进入视口时初始化地图
  if (rect.top <= windowHeight && rect.bottom >= 0) {
      initMap();
      window.removeEventListener('scroll', lazyLoadMap);
      window.removeEventListener('resize', lazyLoadMap);
      window.removeEventListener('orientationchange', lazyLoadMap);
  }
}

// 注册事件监听
window.addEventListener('scroll', lazyLoadMap);
window.addEventListener('resize', lazyLoadMap);
window.addEventListener('orientationchange', lazyLoadMap);

// 初始检查
window.addEventListener('load', lazyLoadMap);
代码块 复制代码
.hero-bg {
  background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://picsum.photos/id/1036/1920/1080');
  background-size: cover;
  background-position: center;
}
.card-hover {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card-hover:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.map-container {
  height: 400px;
  width: 100%;
}
.itinerary-day {
  scroll-margin-top: 80px;
}

技术创新点与价值分析

1. 技术创新

  • AI 驱动开发: 通过自然语言即可生成复杂的地图应用

  • 标准化协议: MCP 2.0 提供了统一的地理信息服务接口

  • 智能决策: 结合天气、交通等多维度信息进行智能推荐

  • 无缝集成: AI IDE 与地图服务的深度融合

2. 性能对比

指标 传统开发方式 TRAE + MCP 方式 提升比例
开发时间 2-3 天 2-3 小时 90%+
代码量 1000+行 100-200 行 80%+
功能完整度 基础功能 智能化功能 200%+
维护成本 70%+
用户体验 一般 优秀 150%+

3. 商业价值

这种开发模式的商业价值体现在:

  • 降低开发门槛: 非专业开发者也能创建复杂应用

  • 提高开发效率: 大幅缩短项目交付周期

  • 增强创新能力: 开发者可以专注于创意而非技术细节

  • 标准化服务: MCP 协议为行业建立了统一标准

总结

这次技术实践让我深刻体验了AI开发的革命性变化。通过TRAE AI IDE的自然语言编程能力,结合高德MCP 2.0地理信息服务,我在几小时内完成了功能完整的旅游攻略系统。

这重新定义了开发者价值:从代码编写者转变为创意实现者和体验设计师。AI成为得力助手,我们专注于理解需求、设计方案、优化体验。

高德MCP 2.0标志着地图服务进入AI原生时代,不仅是API升级,更是服务模式变革。最感动的是技术的温度------AI理解了我为朋友制作贴心攻略的情感需求,自动考虑天气、交通等人性化因素。

未来,AI驱动开发将普及,技术门槛降低,每个人都可能成为应用创造者。让我们拥抱AI与人类协作的时代。

相关推荐
兵临天下api3 小时前
淘宝自定义 API 操作深度分析及 Python 实现
trae
用户458203153177 小时前
使用Trae做一个简单的天狗食日动画效果试试
前端·trae
兵临天下api1 天前
虾皮 item_search_shop 接口深度分析及 Python 实现
trae
兵临天下api1 天前
虾皮 item_review 接口深度分析及 Python 实现
trae
用户4099322502121 天前
需求驱动测试:你的代码真的在按需行事吗?
后端·ai编程·trae
豆包MarsCode1 天前
零代码部署工业数据平台:TRAE + TDengine IDMP 实践
trae
大侠Luffy2 天前
我用Trae从0到1上架了个Chrome插件,并开源了代码
ai编程·trae
兵临天下api2 天前
1688 item_search_best 接口深度分析及 Python 实现
trae
兵临天下api2 天前
淘宝 item_review_show 接口深度分析 接口功能与定位
trae