# map-serve
**Repository Path**: hfuuwy/map-serve
## Basic Information
- **Project Name**: map-serve
- **Description**: 腾讯地图+threejs+vr+3d建模+日照模拟练习项目
- **Primary Language**: TypeScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-16
- **Last Updated**: 2026-01-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
根据项目结构和代码地图,该项目是一个基于 Vue 3、TypeScript 和 Vite 的地图服务应用,主要功能是集成腾讯地图 API 并提供地图显示、操作和事件处理等功能。以下是该项目的 README 内容:
---
# 地图服务应用
一个基于 Vue 3、TypeScript 和 Vite 构建的地图服务应用,集成了腾讯地图 API。
## 功能特性
- 集成腾讯地图 API,支持地图显示、缩放、平移等基础操作
- 基于 Vue 3 组合式 API 和 TypeScript 开发
- 使用 Vite 作为构建工具,提供快速的开发体验
- 支持环境变量配置,方便切换不同环境的 API 密钥
## 快速开始
### 环境要求
- Node.js >= 20.0.0
- npm >= 9.0.0
### 安装依赖
```bash
npm install
```
### 配置环境变量
创建或修改 `.env` 文件,配置以下环境变量:
```env
# 腾讯地图 API 密钥
VITE_TENCENT_MAP_KEY=YOUR_MAP_KEY_HERE
# 开发服务器配置
VITE_DEV_PORT=8089
# 应用名称
VITE_APP_NAME=地图服务应用
# API 基础 URL
VITE_API_BASE_URL=http://localhost:3000/api
```
> 注意:你需要替换 `YOUR_MAP_KEY_HERE` 为你自己的腾讯地图 API 密钥。如果没有密钥,可以在[腾讯地图开放平台](https://lbs.qq.com/)申请。
### 开发模式
```bash
npm run dev
```
应用将在 `http://localhost:8089` 启动。
### 构建生产版本
```bash
npm run build
```
构建后的文件将生成在 `dist` 目录中。
### 预览生产版本
```bash
npm run preview
```
## 地图组件使用说明
### 组件引入
```vue
```
### Props 说明
| 属性名 | 类型 | 默认值 | 说明 |
|-------|------|-------|------|
| options | Object | `{ center: [113.27, 23.13], zoom: 12, mapStyleId: 'style1' }` | 地图初始化配置选项 |
| options.center | [number, number] | `[113.27, 23.13]` (广州坐标) | 地图中心点坐标,格式为 [经度, 纬度] |
| options.zoom | number | `12` | 地图缩放级别 |
| options.mapStyleId | string | `'style1'` | 地图样式 ID |
### 暴露的方法
| 方法名 | 返回类型 | 说明 |
|-------|---------|------|
| getMapInstance | TMapInstance \| null | 获取地图实例,可以用于进行更多的地图操作 |
## 项目结构
```
├── src/
│ ├── components/ # Vue 组件
│ │ └── Map.vue # 地图组件
│ ├── types/ # TypeScript 类型定义
│ │ └── tmap.d.ts # 腾讯地图 API 类型声明
│ ├── unils/ # 工具函数
│ │ └── index.ts # 地图加载器等工具函数
│ ├── App.vue # 应用入口组件
│ ├── main.ts # 应用入口文件
│ └── style.css # 全局样式
├── .env # 环境变量配置
├── vite.config.ts # Vite 配置
└── package.json # 项目依赖和脚本
```
## 腾讯地图 API 加载器
项目提供了一个 `TMapLoader` 函数,用于动态加载腾讯地图 API:
```typescript
import { TMapLoader } from '@/unils/index';
// 加载地图 API
const TMap = await TMapLoader('YOUR_MAP_KEY_HERE');
// 创建地图实例
const map = new TMap.Map('map-container', {
center: new TMap.LatLng(39.90923, 116.397428),
zoom: 12
});
```
## 注意事项
1. 确保你有有效的腾讯地图 API 密钥,并且已经在 `.env` 文件中正确配置
2. 地图组件需要一个有明确宽高的容器来显示地图
3. 开发时,请确保网络连接正常,以便能够加载腾讯地图 API
4. 在生产环境中,建议使用 CDN 加速地图 API 的加载
## 常见问题
### Q: 地图不显示怎么办?
**A:** 检查以下几点:
1. 确保你有有效的腾讯地图 API 密钥
2. 检查地图容器是否有明确的宽高
3. 检查浏览器控制台是否有错误信息
### Q: 如何获取地图点击事件?
**A:** 可以通过获取地图实例来添加事件监听:
```typescript
const mapInstance = mapRef.value?.getMapInstance();
if (mapInstance) {
mapInstance.on('click', (evt) => {
const { lat, lng } = evt.latLng;
console.log('点击位置:', { lng, lat });
});
}
```
## License
MIT