Summary
Methods:
fromString |
把坐标系定义的字符串转换为json对象。 |
forward |
从地理坐标转换到投影坐标,针对投影坐标系有效,如果Crs是地理坐标系返回地理坐标本身。 |
getCrsType |
获取坐标系的类型 |
getDegreePerMeter |
计算某纬度处一米代表多少度 |
getExtent |
获取坐标系的范围 |
getFlattening | |
getMeterPerDegree |
计算在某纬度附近时一经度代表多少米 |
getName |
获取坐标系名称 |
getRadius |
获取坐标系使用椭球体的地球半径 |
getSemiMajorAxis |
获取坐标系采用的椭球体的长半轴长度 |
getSemiMinorAxis |
获取坐标系采用椭球体的短半轴长度 |
getSrid |
获取坐标系的空间参考标识srid |
getUnit |
获取当前坐标系的单位,米或者度 |
init |
初始化投影坐标系需要赋值的参数 |
inverse |
从投影坐标转换到地理坐标,针对投影坐标系有效,如果Crs是地理坐标系返回坐标本身。 |
Constructor
new Crs(srid, options)
构造函数
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
srid |
String | Number | 必选项,坐标系在EPSG中的唯一标识,比如srid为4326,3857等 |
||||||||||||||||||||||||||||||
options |
Object | String | 坐标系定义需要的参数。
|
Throws:
当第一个参数srid没有提供时,抛出异常:'The param srid must be supplied!'
Example
let crs1 = new hmap.proj.Crs('4326');
let crs2 = new hmap.proj.Crs('3857');
或者
let options = {
a: 6378137,
b: 6378137,
datumCode: "none",
k0: 1,
lat_ts: 0,
long0: 0,
no_defs: true,
projName: "merc",
title: "WGS 84 / Pseudo-Mercator",
units: "m",
x0: 0,
y0: 0
}
let crs3 = new hmap.proj.Crs('1234',options);
defs['EPSG:4214'] = "+proj=longlat +ellps=krass +datum=Beijing54 +no_defs"//Beijing54
let crs4 = new hmap.proj.Crs('4214');
Methods
-
static fromString(defString) → {Object}
-
把坐标系定义的字符串转换为json对象。
Parameters:
Name Type Description defString
String 字符串格式的坐标系定义,参考http://epsg.io网站上坐标系中Proj4js格式的坐标系定义。
Returns:
Object -返回json格式的坐标系定义。
Example
const crsStr = "+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"; let crsJson = hmap.proj.Crs.fromString(crsStr);
-
forward(coord) → {module:basetype~Coordinate}
-
从地理坐标转换到投影坐标,针对投影坐标系有效,如果Crs是地理坐标系返回地理坐标本身。
Parameters:
Name Type Description coord
module:basetype~Coordinate 地理坐标对象
-
getCrsType() → {String}
-
获取坐标系的类型
Returns:
String -若是地理坐标系,返回"GeoCRS";若是投影坐标系,返回"ProjCRS"。
-
getDegreePerMeter(atLat) → {Number}
-
计算某纬度处一米代表多少度
Parameters:
Name Type Description atLat
Number 所在的纬度,单位是度,可选参数,纬度范围为-90 ~ 90,当不传时按纬度为0进行计算。
Returns:
Number -每一米代表多少度
-
getExtent() → {module:basetype~Extent}
-
获取坐标系的范围
-
getFlattening(a, b) → {Number}
-
Parameters:
Name Type Description a
Number 长轴
b
Number 短轴
获取坐标系采用椭球体的扁率Returns:
Number -扁率
-
getMeterPerDegree(atLat) → {Number}
-
计算在某纬度附近时一经度代表多少米
Parameters:
Name Type Default Description atLat
Number 0 所在的纬度,单位是度,可选参数,纬度范围为-90 ~ 90,当不传时按纬度为0进行计算。
由于地球为球状,故不同纬度状态下度和米的转换关系并不相同。整体趋势为由赤道向两极每度转换为米的数值越来越小,不建议使用默认值。Returns:
Number -指定纬度处每一经度代表多少米
Example
//假设地图对象坐标系为4326 let lat=map.getCenter().getOrdinate("Y");//获取地图的中心点的纬度 let crs=new hmap.proj.Crs("4326");//坐标系对象,不同坐标系使用椭球体的地球半径不同 let m=crs.getMeterPerDegree(lat);//计算当前地图中心点对应纬度的每度对应的米
-
getName() → {String}
-
获取坐标系名称
Returns:
String -坐标系名称
-
getRadius() → {Number}
-
获取坐标系使用椭球体的地球半径
Returns:
Number -地球半径
-
getSemiMajorAxis() → {Number}
-
获取坐标系采用的椭球体的长半轴长度
Returns:
Number -长半轴长度
-
getSemiMinorAxis() → {Number}
-
获取坐标系采用椭球体的短半轴长度
Returns:
Number -短半轴长度
-
getSrid() → {String}
-
获取坐标系的空间参考标识srid
Returns:
String -唯一标识srid
-
getUnit() → {String}
-
获取当前坐标系的单位,米或者度
Returns:
String -坐标系的单位
-
init()
-
初始化投影坐标系需要赋值的参数
-
inverse(coord) → {module:basetype~Coordinate}
-
从投影坐标转换到地理坐标,针对投影坐标系有效,如果Crs是地理坐标系返回坐标本身。
Parameters:
Name Type Description coord
module:basetype~Coordinate 投影坐标对象