# 地图投影

地图投影根据地图底图不同,分为几何投影 GeoProjection经纬度投影 LnglatProjection

投影主要用于计算图形几何坐标转渲染用的经纬度坐标

# 以CAD为底图的几何投影

// 得到图的元数据
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);
1
2
3
4
5
6
7
8
9
10
11
12

# 以互联网地图为底图的经纬度投影

对于以互联网地图为底图的经纬度投影,因为互联网地图本身就是经纬度坐标,所以图形中的经纬度坐标转渲染用的经纬度坐标是一致的。

let prj = new vjmap.LnglatProjection();
let mapPoint = [106.31, 26.87];
let lngLat = prj.toLngLat(lngLat);
// lngLat输出的值也是 [106.31, 26.87]
1
2
3
4