1、js源码:https://github.com/proj4js/proj4js
2、引用包中dist/proj4.js文件
3、//根据自己的坐标系参数定义 proj4字符串
var wgs84 = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ';
var cgcs2000 = '+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs';
//将cgcs2000坐标转换成wgs84坐标
var xy=proj4(cgcs2000, wgs84, [item.GEO_X, item.GEO_Y]);
(其中踩坑)
由于本人非地信专业,最开始转换时出现坐标格式正确,但位置与地图重合不上的情况。
最后咨询过地信专业的同事后,发现2000的坐标系需要对应当地的中央经线。即需要修改cgcs2000中lon_0字段。
中央经线计算方法:(网上搜的,看不懂)
当地中央子午线决定于当地的直角坐标系统,首先确定您的直角坐标系统是3度带还是6度带投影,然后再根据如下公式推算。
6度带:带号N=round[(L+3)/6],即对(L+3)/6的值四舍五入取整数,L为当地经度;则中央子午线经度L0=6 × N-3。
3度带:带号N=round(L/3),即对(L/3)的值四舍五入取整数,L为当地经度;则中央子午线经度L0=3 × N。
自己的理解:
1.搜要转换的城市的经纬度
2.(经度也就是x/3)*3 (括号里取整)
3.来一个实例,以免时间长了忘记,以扬州坐标为例 x:119 y:32
119/3=39.66666
40*3=120
项目中遇到的问题,仅做记录。