跳到主要内容
版本:9.4.1

地理坐标(Geography)

LngLatLngLatBounds 表示地理世界中的点和面坐标。

LngLat

LngLat 对象表示一个指定的经纬度坐标,单位为度。
为了与 GeoJSON 格式匹配,GL 使用经度、纬度(而不是纬度、经度)的坐标顺序。 创建 Marker 组件。

new LngLat(lng: number, lat: number)

参数

名称类型描述
latNumber必填纬度,单位为度。
lngNumber必填经度,单位为度。

案例

var ll = new mapmost.LngLat(-73.9749, 40.7736);

静态成员

convert

将包含两个数字的数组或有着 lng 和 lat 或 lon 和 lat 属性的对象转化为 LngLat 对象。如果传递的是一个 LngLat 对象,则该函数将其原样返回。

参数
名称类型描述
inputLngLatLike必填待转化的包含两个数字的数组或对象,或者待返回的 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。

参数
名称类型默认值描述
radiusNumber0可选从坐标位置到扩展边界的距离(以米为单位)。
案例
  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?)

参数

名称类型描述
swLngLatLike必填范围框的西南角。
neLngLatLike必填范围框的东北角。

案例

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 值。
参数
名称类型描述
inputLngLatBoundsLike必填待转换的包含两个坐标的数组,或者待返回的 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。

参数
名称类型描述
objLngLat|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

设置范围框的东北角。

参数
名称类型描述
neLngLatLike必填范围框的东北角。
案例
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

设置范围框的西南角。

参数
名称类型描述
swLngLatLike必填范围框的西南角。
案例
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)

参数

名称类型默认值描述
xNumber必填x轴上的位置。
yNumber必填y轴上的位置。
zNumber0可选z轴上的位置。

案例

var nullIsland = new mapmost.MercatorCoordinate(0.5, 0.5, 0);

静态成员

fromLngLat

将 LngLat 投影转换为 MercatorCoordinate。

参数
名称类型默认值描述
lngLatLikeLngLatLike必填待转换的经纬度。
altitudeNumber0可选该位置点的海拔高度,单位为米。
案例
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)