地理坐标(Geography)
LngLat
和 LngLatBounds
表示地理世界中的点和面坐标。
LngLat
LngLat 对象表示一个指定的经纬度坐标,单位为度。
为了与 GeoJSON 格式匹配,GL 使用经度、纬度(而不是纬度、经度)的坐标顺序。
创建 Marker 组件。
new LngLat(lng: number, lat: number)
参数
名称 | 类型 | 描述 |
---|---|---|
lat | Number | 必填纬度,单位为度。 |
lng | Number | 必填经度,单位为度。 |
案例
var ll = new mapmost.LngLat(-73.9749, 40.7736);
静态成员
convert
将包含两个数字的数组或有着 lng 和 lat 或 lon 和 lat 属性的对象转化为 LngLat 对象。如果传递的是一个 LngLat 对象,则该函数将其原样返回。
参数
名称 | 类型 | 描述 |
---|---|---|
input | LngLatLike | 必填待转化的包含两个数字的数组或对象,或者待返回的 LngLat 对象。 |
案例
var arr = [-73.9749, 40.7736];
var ll = mapmost.LngLat.convert(arr);
ll; // = LngLat {经度: -73.9749, 纬度: 40.7736}
实例成员
toArray
返回包含两个数字的数组坐标。
案例
var ll = new mapmost.LngLat(-73.9749, 40.7736);
ll.toArray(); // = [-73.9749, 40.7736]
toBounds
返回一个从坐标位置到指定扩展边界的 LngLatBounds。
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
radius | Number | 0 | 可选从坐标位置到扩展边界的距离(以米为单位)。 |
案例
var ll = new mapmost.LngLat(-73.9749, 40.7736);
ll.toBounds(100).toArray(); // = [[-73.97501862141328, 40.77351016847229], [-73.97478137858673, 40.77368983152771]]
toString
返回以字符串表示的坐标。
案例
var ll = new mapmost.LngLat(-73.9749, 40.7736);
ll.toString(); // = "LngLat(-73.9749, 40.7736)"
wrap
返回一个经度在(-180,180)范围内的新的 LngLat 对象。
案例
var ll = new mapmost.LngLat(286.0251, 40.7736);
var wrapped = ll.wrap();
wrapped.lng; // = -73.9749
LngLatBounds
LngLatBounds 对象表示一个地理边界框,由经纬度表示的西南和东北点来定义。
如果没有给构造函数提供参数,则创建一个 null 边界框。
new LngLatBounds(sw: LngLatLike?, ne: LngLatLike?)
参数
名称 | 类型 | 描述 |
---|---|---|
sw | LngLatLike | 必填范围框的西南角。 |
ne | LngLatLike | 必填范围框的东北角。 |
案例
var sw = new mapmost.LngLat(-73.9876, 40.7661);
var ne = new mapmost.LngLat(-73.9397, 40.8002);
var llb = new mapmost.LngLatBounds(sw, ne);
静态成员
convert
将数组转换为 LngLatBounds 对象。如果传递的参数是一个 LngLatBounds 对象,则该函数将其原样返回。
该函数会在内部调用 LngLat#convert 函数,将数组转换为 LngLat 值。
参数
名称 | 类型 | 描述 |
---|---|---|
input | LngLatBoundsLike | 必填待转换的包含两个坐标的数组,或者待返回的 LngLatBounds 对象。 |
案例
var arr = [[-73.9876, 40.7661], [-73.9397, 40.8002]];
var llb = mapmost.LngLatBounds.convert(arr);
llb; // = LngLatBounds {_sw: LngLat {经度: -73.9876, 纬度: 40.7661}, _ne: LngLat {经度: -73.9397, 纬度: 40.8002}}
实例成员
extend
扩展边界要包括指定的 LngLat 或 LngLatBounds。
参数
名称 | 类型 | 描述 |
---|---|---|
obj | LngLat|LngLatBounds | 必填扩展边界的对象。 |
案例
const sw = new mapmost.LngLat(-73.9876, 40.7661);
const ne = new mapmost.LngLat(-73.9397, 40.8002);
const llb = new mapmost.LngLatBounds(sw, ne);
llb.extend([-72.9876, 42.2661]);
getCenter
返回一个到范围框四角距离相等的地理坐标。
案例
var llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getCenter(); // = LngLat {经度: -73.96365, 纬度: 40.78315}
getEast
返回范围框的东部边界。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getEast(); // -73.9397
getNorth
返回范围框的北部边界。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getNorth(); // 40.8002
getNorthEast
返回范围框的东北角。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getNorthEast(); // LngLat {经度: -73.9397, 纬度: 40.8002}
getNorthWest
返回范围框的西北角。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getNorthWest(); // LngLat {经度: -73.9876, 纬度: 40.8002}
getSouth
返回范围框的南部边界。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getSouth(); // 40.7661
getSouthEast
返回范围框的东南角。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getSouthEast(); // LngLat {经度: -73.9397, 纬度: 40.7661}
getSouthWest
返回范围框的西南角。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getSouthWest(); // LngLat {经度: -73.9876, 纬度: 40.7661}
getWest
返回范围框的西部边界。
案例
const llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.getWest(); // -73.9876
isEmpty
检查范围框是否为空。
案例
const llb = new mapmost.LngLatBounds();
llb.isEmpty(); // true
llb.setNorthEast([-73.9876, 40.7661]);
llb.setSouthWest([-73.9397, 40.8002]);
llb.isEmpty(); // false
setNorthEast
设置范围框的东北角。
参数
名称 | 类型 | 描述 |
---|---|---|
ne | LngLatLike | 必填范围框的东北角。 |
案例
const sw = new mapmost.LngLat(-73.9876, 40.7661);
const ne = new mapmost.LngLat(-73.9397, 40.8002);
const llb = new mapmost.LngLatBounds(sw, ne);
llb.setNorthEast([-73.9397, 42.8002]);
setSouthWest
设置范围框的西南角。
参数
名称 | 类型 | 描述 |
---|---|---|
sw | LngLatLike | 必填范围框的西南角。 |
案例
const sw = new mapmost.LngLat(-73.9876, 40.7661);
const ne = new mapmost.LngLat(-73.9397, 40.8002);
const llb = new mapmost.LngLatBounds(sw, ne);
llb.setSouthWest([-73.9876, 40.2661]);
toArray
返回以数组形式表示的范围框。
案例
var llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.toArray(); // = [[-73.9876, 40.7661], [-73.9397, 40.8002]]
toString
返回以字符串形式表示的范围框。
案例
var llb = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
llb.toString(); // = "LngLatBounds(LngLat(-73.9876, 40.7661), LngLat(-73.9397, 40.8002))"
LngLatBoundsLike
一个 LngLatBounds 对象,或者是一个 LngLatLike 对象的数组以 [西南,东北] 为顺序, 也可以是一个数字组成的数组以 [西,南,东,北] 为顺序。
案例
var v1 = new mapmost.LngLatBounds(
new mapmost.LngLat(-73.9876, 40.7661),
new mapmost.LngLat(-73.9397, 40.8002)
);
var v2 = new mapmost.LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002])
var v3 = [[-73.9876, 40.7661], [-73.9397, 40.8002]];
LngLatLike
一个 LngLat 对象,或者是表示经度和纬度的两个数字组成的数组, 也可以是一个具有 lng 和 lat 或者 lon 和 lat 属性的对象。
案例
var v1 = new mapmost.LngLat(-122.420679, 37.772537);
var v2 = [-122.420679, 37.772537];
var v3 = {lon: -122.420679, lat: 37.772537};
MercatorCoordinate
一个 MercatorCoordinate
实例表示一个三维投影坐标。
MercatorCoordinate
使用 Web 墨卡托投影 (EPSG:3857) ,但在单位处理上略微不同:
- 单位1表示投影后世界的宽度而不是原来定义的墨卡托坐标中的米
- 坐标空间的原点为西北角而不是原来的中心点
new MercatorCoordinate(x: number, y: number, z: number)
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
x | Number | 必填x轴上的位置。 | |
y | Number | 必填y轴上的位置。 | |
z | Number | 0 | 可选z轴上的位置。 |
案例
var nullIsland = new mapmost.MercatorCoordinate(0.5, 0.5, 0);
静态成员
fromLngLat
将 LngLat 投影转换为 MercatorCoordinate。
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
lngLatLike | LngLatLike | 必填待转换的经纬度。 | |
altitude | Number | 0 | 可选该位置点的海拔高度,单位为米。 |
案例
var coord = mapmost.MercatorCoordinate.fromLngLat({ lng: 0, lat: 0}, 0);
coord; // MercatorCoordinate(0.5, 0.5, 0)
实例成员
toAltitude
返回该坐标的海拔高度,单位为米。
案例
var coord = new mapmost.MercatorCoordinate(0, 0, 0.02);
coord.toAltitude(); // 6914.281956295339
toLngLat
返回该坐标的经纬度 LngLat 。
案例
var coord = new mapmost.MercatorCoordinate(0.5, 0.5, 0);
var latLng = coord.toLngLat(); // 经纬度坐标 (0, 0)