Summary
Methods:
add |
添加一种坐标系到转换器中 |
GCJ02ToWGS84 |
将加密后的坐标还原成原始的WGS84坐标,即将GCJ02坐标系下的坐标转换为WGS84坐标系下的坐标。当经纬度坐标在中国国内时进行转换,在国外时原样返回,不进行转换。 |
get |
根据srid获取转换器中对应的坐标系 |
remove |
移除指定的坐标系 |
transform |
将一个坐标系的坐标转换到在另一种坐标系中的坐标值。目前支持4326和3857之间的相互转换,如果需要支持其他转换请先通过add方法添加坐标系。 |
WebMercatorToWGS84 |
将Web Mercator(Web墨卡托,EPSG:3857或EPSG:900913)坐标系下的坐标转换为WGS84(EPSG:4326)坐标系下的坐标。调用该方法相当于先调用然后使用transform方法从Web Mercator(EPSG:3857)转到WGS84(EPSG:4326),然后使用GCJ02ToWGS84进行坐标解密 |
WGS84ToGCJ02 |
将wgs84的坐标值进行加密,即转换为GCJ02坐标系下对应的坐标。当经纬度坐标在中国国内时进行加密,在国外时原样返回,不进行加密。 |
WGS84ToWebMercator |
将WGS84(EPSG:4326)坐标系下的坐标转换为Web Mercator(Web墨卡托,EPSG:3857或EPSG:900913)坐标系下的坐标。调用该方法相当于先调用了WGS84ToGCJ02进行坐标加密,然后使用transform方法从WGS84(EPSG:4326)转到Web Mercator(EPSG:3857) |
Constructor
new Transformer()
Methods
-
static add(crs) → {module:proj~Transformer}
-
添加一种坐标系到转换器中
Parameters:
Name Type Description crs
module:proj~Crs | String | Number 坐标系对象或坐标系的srid。
Example
const crs1 = new hmap.proj.Crs('4479'); hmap.proj.Transformer.add(crs); const srid1 = '900913'; hmap.proj.Transformer.add(srid1);
-
static GCJ02ToWGS84(coord) → {Array.<Number>|module:basetype~Coordinate}
-
将加密后的坐标还原成原始的WGS84坐标,即将GCJ02坐标系下的坐标转换为WGS84坐标系下的坐标。当经纬度坐标在中国国内时进行转换,在国外时原样返回,不进行转换。
Parameters:
Name Type Description coord
Array.<Number> | module:basetype~Coordinate 待转换的坐标,可以是经度和纬度组成的数组,或Coordinate对象。
Returns:
Array.<Number> | module:basetype~Coordinate -纠偏后的坐标,类型与入参坐标一致(入参为经纬度数组,则返回经纬度数组;入参为Coordinate,则也返回Coordinate)
Example
const coord = hmap.proj.Transformer.GCJ02ToWGS84(new hmap.basetype.Coordinate(120.99,30.89,-1.5));
-
static get(srid) → {module:proj~Crs}
-
根据srid获取转换器中对应的坐标系
Parameters:
Name Type Description srid
String | Number 坐标系的srid值
Throws:
当参数srid类型不是数字和字符串时,抛出异常:"the srid should be string or number."
-
static remove(srid) → {Number}
-
移除指定的坐标系
Parameters:
Name Type Description srid
String | Number 坐标系的id
Throws:
当参数srid类型不是数字和字符串时,抛出异常:"the srid should be string or number."
Returns:
Number -删除成功返回1,未删除返回0.
-
static transform(coord, source, dest) → {module:basetype~Coordinate}
-
将一个坐标系的坐标转换到在另一种坐标系中的坐标值。目前支持4326和3857之间的相互转换,如果需要支持其他转换请先通过add方法添加坐标系。
Parameters:
Name Type Description coord
module:basetype~Coordinate 需要转换的坐标对象
source
module:proj~Crs | String | Number 源坐标系或源坐标系对应的srid
dest
module:proj~Crs | String | Number 目标坐标系或目标坐标系对应的srid
Throws:
当source源坐标系或dest目标坐标系不是4326、3857、900913,且没有执行add方法时,抛出异常:source/dest " is not in hmap.proj.Transformer.CrsList, please add first."
Example
const coord = hmap.proj.Transformer.transform(new hmap.basetype.Coordinate(120.99,30.8886,-1.5), 4326, 3857);
-
static WebMercatorToWGS84(coord, decryption) → {module:basetype~Coordinate}
-
将Web Mercator(Web墨卡托,EPSG:3857或EPSG:900913)坐标系下的坐标转换为WGS84(EPSG:4326)坐标系下的坐标。调用该方法相当于先调用然后使用transform方法从Web Mercator(EPSG:3857)转到WGS84(EPSG:4326),然后使用GCJ02ToWGS84进行坐标解密
Parameters:
Name Type Default Description coord
module:basetype~Coordinate 待转换的坐标
decryption
Boolean true 是否纠偏,默认纠偏。true为纠偏,false为不纠偏
Example
const decryptedWebMercatorCoord = hmap.proj.Transformer.WebMercatorToWGS84(new hmap.basetype.Coordinate(13372229.01,3532854.45,0));
-
static WGS84ToGCJ02(coord) → {Array.<Number>|module:basetype~Coordinate}
-
将wgs84的坐标值进行加密,即转换为GCJ02坐标系下对应的坐标。当经纬度坐标在中国国内时进行加密,在国外时原样返回,不进行加密。
Parameters:
Name Type Description coord
Array.<Number> | module:basetype~Coordinate 由经度和纬度组成的数组
Returns:
Array.<Number> | module:basetype~Coordinate -加偏之后的坐标,类型与入参坐标一致(入参为经纬度数组,则返回经纬度数组;入参为Coordinate,则也返回Coordinate)
Example
const coord = hmap.proj.Transformer.WGS84ToGCJ02(new hmap.basetype.Coordinate(120.99,30.8886,-1.5));
-
static WGS84ToWebMercator(coord, encryption) → {module:basetype~Coordinate}
-
将WGS84(EPSG:4326)坐标系下的坐标转换为Web Mercator(Web墨卡托,EPSG:3857或EPSG:900913)坐标系下的坐标。调用该方法相当于先调用了WGS84ToGCJ02进行坐标加密,然后使用transform方法从WGS84(EPSG:4326)转到Web Mercator(EPSG:3857)
Parameters:
Name Type Default Description coord
module:basetype~Coordinate 待转换的坐标
encryption
Boolean true 是否加偏,默认加偏。true为加偏,false为不加偏
Example
const encryptedWebMercatorCoord = hmap.proj.Transformer.WGS84ToWebMercator(new hmap.basetype.Coordinate(120.12,30.23));