---
title: 地图投影
source: https://vjmap.com/guide/mapProjection.html
---

# 地图投影

地图投影根据地图底图不同，分为`几何投影` `GeoProjection` 和`经纬度投影` `LnglatProjection`

投影主要用于计算`图形几何坐标`转渲染用的`经纬度坐标`

## 以CAD为底图的几何投影

```js
// 得到图的元数据
let metadata = await svc.metadata(mapid, "v1");
// 根据图的范围字符串生成一个范围对象
let mapBounds = vjmap.GeoBounds.fromString(metadata.bounds);
// 根据地图范围建立几何投影坐标系
let prj = new vjmap.GeoProjection(mapBounds);
// 获取CAD图范围的中心点几何坐标
let center = mapBounds.center();
// 利用投影对象把CAD几何坐标转渲染用的经纬度坐标
let lngLat = prj.toLngLat(center);
// 根据这个经纬度坐标创建一个marker加进地图中
new vjmap.Marker().setLngLat(lngLat).addTo(map);
```

## 以互联网地图为底图的经纬度投影

对于以互联网地图为底图的经纬度投影，因为互联网地图本身就是经纬度坐标，所以`图形中的经纬度坐标`转渲染用的`经纬度坐标`是一致的。

```js
let prj = new vjmap.LnglatProjection();
let mapPoint = [106.31, 26.87];
let lngLat = prj.toLngLat(lngLat);
// lngLat输出的值也是 [106.31, 26.87]
```