# tg-map-vue3

封装 百度地图, Google地图, Here地图(未完成) 的Vue3组件库

## 使用

```sh
pnpm install tg-map-vue3
```

## 发布

在npm上, 登录[transcode-group](https://www.npmjs.com/~transcode-group)帐号后, 可以发布该库

```sh
pnpm publish
```

## 开发

### 初始化仓库

```sh
# 拉取本仓库
git clone https://github.com/TranscodeGroup/tg-map.git
# 进入本地仓库目录
cd tg-map
# 安装依赖
pnpm install
# 往npm中注册@@transcodegroup\tg-map
pnpm link
# 进入需要依赖@transcodegroup\tg-map的仓库目录($REPO_MAIN_PATH替换成你自己的路径)
cd $REPO_MAIN_PATH
# 链接之前注册的@tg/map到该仓库
pnpm link @transcodegroup\tg-map
```

### Patch的第三方库

1. [@google/markerclusterer](node_modules/@google/markerclusterer/package.json#L48)

TypeScript/VSCode默认只会读取package.json中的main字段, 而webpack默认依次读取[brower, module, main],
Google的这个点聚合库中, main指向的是xxx.umd.js, TypeScript/VSCode并不能使用它的JSDoc生成类型信息, 故当前通过pnpm的patch功能, 把package.json中的main改成了和module相同的内容, 以获取智能提示.

### 修改VSCode配置

用户配置:

```jsonc
{
    // 统一使用项目中的TS版本
    "typescript.tsdk": "node_modules/typescript/lib",
}
```

### 构建

```sh
# 修改代码后要重新构建
pnpm run build
```

## 其他

```sh
pnpm install
```

### Compile and Hot-Reload for Development

```sh
pnpm run dev
```

### Type-Check, Compile and Minify for Production

```sh
pnpm run build
```

### Lint with [ESLint](https://eslint.org/)

```sh
pnpm run lint
```

### Customize configuration

See [Vite Configuration Reference](https://vitejs.dev/config/).

## 参考文档

- [百度Javascript API v3.0][]: 老版, [类参考][baidu_ref3]
- [百度Javascript API GL][]: 新的基于WebGL的实现, [类参考][baidu_ref]
- [Google Maps Javascript API][]: Google地图, [类参考][google_ref]

[Google Maps Javascript API]: https://developers.google.com/maps/documentation/javascript
[百度Javascript API v3.0]: https://lbsyun.baidu.com/index.php?title=jspopular3.0
[baidu_ref3]: https://mapopen-pub-jsapi.bj.bcebos.com/jsapi/reference/jsapi_reference_3_0.html
[百度Javascript API GL]: https://lbsyun.baidu.com/index.php?title=jspopularGL
[baidu_ref]: https://mapopen-pub-jsapi.bj.bcebos.com/jsapi/reference/jsapi_webgl_1_0.html
[google_ref]: https://developers.google.com/maps/documentation/javascript/reference
